Mercurial > pidgin
annotate src/protocols/msn/msn.c @ 13794:ecfd8fb02c19
[gaim-migrate @ 16206]
We don't really need to pop up an error if the sound file doesn't exist
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Tue, 30 May 2006 17:02:27 +0000 |
| parents | 967ef719cb62 |
| children | a9ff4499d9ce |
| rev | line source |
|---|---|
|
4542
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
1 /** |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
2 * @file msn.c The MSN protocol plugin |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
3 * |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
4 * gaim |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
5 * |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
6 * Gaim is the legal property of its developers, whose names are too numerous |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 * to list here. Please refer to the COPYRIGHT file distributed with this |
|
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 * source distribution. |
|
6701
b7e113a59b51
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
9 * |
|
4542
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
10 * This program is free software; you can redistribute it and/or modify |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
11 * it under the terms of the GNU General Public License as published by |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
12 * the Free Software Foundation; either version 2 of the License, or |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
13 * (at your option) any later version. |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
14 * |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
15 * This program is distributed in the hope that it will be useful, |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
18 * GNU General Public License for more details. |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
19 * |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
20 * You should have received a copy of the GNU General Public License |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
21 * along with this program; if not, write to the Free Software |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
23 */ |
| 9243 | 24 #define PHOTO_SUPPORT 1 |
| 25 | |
|
6827
1cfbb731aa1f
[gaim-migrate @ 7372]
Christian Hammond <chipx86@chipx86.com>
parents:
6801
diff
changeset
|
26 #include <glib.h> |
|
1cfbb731aa1f
[gaim-migrate @ 7372]
Christian Hammond <chipx86@chipx86.com>
parents:
6801
diff
changeset
|
27 |
|
4542
86b0a0243be8
[gaim-migrate @ 4821]
Christian Hammond <chipx86@chipx86.com>
parents:
4508
diff
changeset
|
28 #include "msn.h" |
|
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
29 #include "accountopt.h" |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
30 #include "msg.h" |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
31 #include "page.h" |
| 8713 | 32 #include "pluginpref.h" |
|
5626
6275ac113622
[gaim-migrate @ 6033]
Christian Hammond <chipx86@chipx86.com>
parents:
5567
diff
changeset
|
33 #include "prefs.h" |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
34 #include "session.h" |
|
5361
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
35 #include "state.h" |
|
13628
5773f46e6bdf
[gaim-migrate @ 16015]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
13627
diff
changeset
|
36 #include "util.h" |
| 11321 | 37 #include "cmds.h" |
| 9713 | 38 #include "prpl.h" |
|
13628
5773f46e6bdf
[gaim-migrate @ 16015]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
13627
diff
changeset
|
39 #include "msn-utils.h" |
| 9943 | 40 #include "version.h" |
|
4546
a951bb590857
[gaim-migrate @ 4825]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4542
diff
changeset
|
41 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
42 #include "switchboard.h" |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
43 #include "notification.h" |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
44 #include "sync.h" |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
45 #include "slplink.h" |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
46 |
| 9243 | 47 #if PHOTO_SUPPORT |
| 48 #include "imgstore.h" | |
| 49 #endif | |
| 50 | |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
51 typedef struct |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
52 { |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
53 GaimConnection *gc; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
54 const char *passport; |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
55 |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
56 } MsnMobileData; |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
57 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
58 typedef struct |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
59 { |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
60 GaimConnection *gc; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
61 char *name; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
62 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
63 } MsnGetInfoData; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
64 |
| 9243 | 65 typedef struct |
| 66 { | |
| 67 MsnGetInfoData *info_data; | |
| 68 char *stripped; | |
| 69 char *url_buffer; | |
| 70 GString *s; | |
| 71 char *photo_url_text; | |
| 72 char *tooltip_text; | |
| 9510 | 73 const char *title; |
| 9243 | 74 |
| 75 } MsnGetInfoStepTwoData; | |
| 76 | |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
77 static const char * |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
78 msn_normalize(const GaimAccount *account, const char *str) |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
79 { |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
80 static char buf[BUF_LEN]; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
81 char *tmp; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
82 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
83 g_return_val_if_fail(str != NULL, NULL); |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
84 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
85 g_snprintf(buf, sizeof(buf), "%s%s", str, |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
86 (strchr(str, '@') ? "" : "@hotmail.com")); |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
87 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
88 tmp = g_utf8_strdown(buf, -1); |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
89 strncpy(buf, tmp, sizeof(buf)); |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
90 g_free(tmp); |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
91 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
92 return buf; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
93 } |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
94 |
| 11321 | 95 static GaimCmdRet |
| 96 msn_cmd_nudge(GaimConversation *conv, const gchar *cmd, gchar **args, gchar **error, void *data) | |
| 97 { | |
| 98 GaimAccount *account = gaim_conversation_get_account(conv); | |
| 99 GaimConnection *gc = gaim_account_get_connection(account); | |
| 100 MsnMessage *msg; | |
| 101 MsnSession *session; | |
| 102 MsnSwitchBoard *swboard; | |
| 103 | |
| 104 msg = msn_message_new_nudge(); | |
| 105 session = gc->proto_data; | |
| 106 swboard = msn_session_get_swboard(session, gaim_conversation_get_name(conv), MSN_SB_FLAG_IM); | |
| 107 | |
| 13634 | 108 if (swboard == NULL) |
| 11321 | 109 return GAIM_CMD_RET_FAILED; |
| 110 | |
| 111 msn_switchboard_send_msg(swboard, msg, TRUE); | |
| 112 | |
| 113 gaim_conversation_write(conv, NULL, _("You have just sent a Nudge!"), GAIM_MESSAGE_SYSTEM, time(NULL)); | |
| 114 | |
| 115 return GAIM_CMD_RET_OK; | |
| 116 } | |
| 117 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
118 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
119 msn_act_id(GaimConnection *gc, const char *entry) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
120 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
121 MsnCmdProc *cmdproc; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
122 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
123 GaimAccount *account; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
124 const char *alias; |
| 2086 | 125 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
126 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
127 cmdproc = session->notification->cmdproc; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
128 account = gaim_connection_get_account(gc); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
129 |
|
10069
7cbe12859d3a
[gaim-migrate @ 11045]
Luke Schierer <lschiere@pidgin.im>
parents:
10068
diff
changeset
|
130 if(entry && strlen(entry)) |
|
7cbe12859d3a
[gaim-migrate @ 11045]
Luke Schierer <lschiere@pidgin.im>
parents:
10068
diff
changeset
|
131 alias = gaim_url_encode(entry); |
|
7cbe12859d3a
[gaim-migrate @ 11045]
Luke Schierer <lschiere@pidgin.im>
parents:
10068
diff
changeset
|
132 else |
|
7cbe12859d3a
[gaim-migrate @ 11045]
Luke Schierer <lschiere@pidgin.im>
parents:
10068
diff
changeset
|
133 alias = ""; |
| 3171 | 134 |
|
8333
85dbaac926a7
[gaim-migrate @ 9057]
Christian Hammond <chipx86@chipx86.com>
parents:
8298
diff
changeset
|
135 if (strlen(alias) > BUDDY_ALIAS_MAXLEN) |
|
85dbaac926a7
[gaim-migrate @ 9057]
Christian Hammond <chipx86@chipx86.com>
parents:
8298
diff
changeset
|
136 { |
|
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5382
diff
changeset
|
137 gaim_notify_error(gc, NULL, |
|
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5382
diff
changeset
|
138 _("Your new MSN friendly name is too long."), NULL); |
|
2738
01f0497fe6c8
[gaim-migrate @ 2751]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2688
diff
changeset
|
139 return; |
|
01f0497fe6c8
[gaim-migrate @ 2751]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2688
diff
changeset
|
140 } |
|
01f0497fe6c8
[gaim-migrate @ 2751]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2688
diff
changeset
|
141 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
142 msn_cmdproc_send(cmdproc, "REA", "%s %s", |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
143 gaim_account_get_username(account), |
|
10069
7cbe12859d3a
[gaim-migrate @ 11045]
Luke Schierer <lschiere@pidgin.im>
parents:
10068
diff
changeset
|
144 alias); |
| 2086 | 145 } |
| 146 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
147 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
148 msn_set_prp(GaimConnection *gc, const char *type, const char *entry) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
149 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
150 MsnCmdProc *cmdproc; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
151 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
152 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
153 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
154 cmdproc = session->notification->cmdproc; |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
155 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
156 if (entry == NULL || *entry == '\0') |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
157 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
158 msn_cmdproc_send(cmdproc, "PRP", "%s", type); |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
159 } |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
160 else |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
161 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
162 msn_cmdproc_send(cmdproc, "PRP", "%s %s", type, |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
163 gaim_url_encode(entry)); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
164 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
165 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
166 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
167 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
168 msn_set_home_phone_cb(GaimConnection *gc, const char *entry) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
169 { |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
170 msn_set_prp(gc, "PHH", entry); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
171 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
172 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
173 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
174 msn_set_work_phone_cb(GaimConnection *gc, const char *entry) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
175 { |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
176 msn_set_prp(gc, "PHW", entry); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
177 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
178 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
179 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
180 msn_set_mobile_phone_cb(GaimConnection *gc, const char *entry) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
181 { |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
182 msn_set_prp(gc, "PHM", entry); |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
183 } |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
184 |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
185 static void |
|
5793
952710ac6635
[gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
186 enable_msn_pages_cb(GaimConnection *gc) |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
187 { |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
188 msn_set_prp(gc, "MOB", "Y"); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
189 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
190 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
191 static void |
|
5793
952710ac6635
[gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
192 disable_msn_pages_cb(GaimConnection *gc) |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
193 { |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
194 msn_set_prp(gc, "MOB", "N"); |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
195 } |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
196 |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
197 static void |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
198 send_to_mobile(GaimConnection *gc, const char *who, const char *entry) |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
199 { |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
200 MsnTransaction *trans; |
|
8646
1e211dde3cae
[gaim-migrate @ 9398]
Christian Hammond <chipx86@chipx86.com>
parents:
8595
diff
changeset
|
201 MsnSession *session; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
202 MsnCmdProc *cmdproc; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
203 MsnPage *page; |
|
8646
1e211dde3cae
[gaim-migrate @ 9398]
Christian Hammond <chipx86@chipx86.com>
parents:
8595
diff
changeset
|
204 char *payload; |
|
1e211dde3cae
[gaim-migrate @ 9398]
Christian Hammond <chipx86@chipx86.com>
parents:
8595
diff
changeset
|
205 size_t payload_len; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
206 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
207 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
208 cmdproc = session->notification->cmdproc; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
209 |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
210 page = msn_page_new(); |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
211 msn_page_set_body(page, entry); |
|
8646
1e211dde3cae
[gaim-migrate @ 9398]
Christian Hammond <chipx86@chipx86.com>
parents:
8595
diff
changeset
|
212 |
|
9092
9e5a709c30a8
[gaim-migrate @ 9869]
Christian Hammond <chipx86@chipx86.com>
parents:
9091
diff
changeset
|
213 payload = msn_page_gen_payload(page, &payload_len); |
|
8646
1e211dde3cae
[gaim-migrate @ 9398]
Christian Hammond <chipx86@chipx86.com>
parents:
8595
diff
changeset
|
214 |
| 10225 | 215 trans = msn_transaction_new(cmdproc, "PGD", "%s 1 %d", who, payload_len); |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
216 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
217 msn_transaction_set_payload(trans, payload, payload_len); |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
218 |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
219 msn_page_destroy(page); |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
220 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
221 msn_cmdproc_send_trans(cmdproc, trans); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
222 } |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
223 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
224 static void |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
225 send_to_mobile_cb(MsnMobileData *data, const char *entry) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
226 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
227 send_to_mobile(data->gc, data->passport, entry); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
228 g_free(data); |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
229 } |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
230 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
231 static void |
|
5793
952710ac6635
[gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
232 close_mobile_page_cb(MsnMobileData *data, const char *entry) |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
233 { |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
234 g_free(data); |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
235 } |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
236 |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
237 /* -- */ |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
238 |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
239 static void |
| 9015 | 240 msn_show_set_friendly_name(GaimPluginAction *action) |
| 2086 | 241 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
242 GaimConnection *gc; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
243 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
244 gc = (GaimConnection *) action->context; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
245 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
246 gaim_request_input(gc, NULL, _("Set your friendly name."), |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
247 _("This is the name that other MSN buddies will " |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
248 "see you as."), |
| 8697 | 249 gaim_connection_get_display_name(gc), FALSE, FALSE, NULL, |
|
5481
084147a0d9e4
[gaim-migrate @ 5877]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
250 _("OK"), G_CALLBACK(msn_act_id), |
|
084147a0d9e4
[gaim-migrate @ 5877]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
251 _("Cancel"), NULL, gc); |
| 2086 | 252 } |
| 253 | |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
254 static void |
| 9015 | 255 msn_show_set_home_phone(GaimPluginAction *action) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
256 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
257 GaimConnection *gc; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
258 MsnSession *session; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
259 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
260 gc = (GaimConnection *) action->context; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
261 session = gc->proto_data; |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
262 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
263 gaim_request_input(gc, NULL, _("Set your home phone number."), NULL, |
| 8697 | 264 msn_user_get_home_phone(session->user), FALSE, FALSE, NULL, |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
265 _("OK"), G_CALLBACK(msn_set_home_phone_cb), |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
266 _("Cancel"), NULL, gc); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
267 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
268 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
269 static void |
| 9015 | 270 msn_show_set_work_phone(GaimPluginAction *action) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
271 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
272 GaimConnection *gc; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
273 MsnSession *session; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
274 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
275 gc = (GaimConnection *) action->context; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
276 session = gc->proto_data; |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
277 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
278 gaim_request_input(gc, NULL, _("Set your work phone number."), NULL, |
| 8697 | 279 msn_user_get_work_phone(session->user), FALSE, FALSE, NULL, |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
280 _("OK"), G_CALLBACK(msn_set_work_phone_cb), |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
281 _("Cancel"), NULL, gc); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
282 } |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
283 |
|
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
284 static void |
| 9015 | 285 msn_show_set_mobile_phone(GaimPluginAction *action) |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
286 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
287 GaimConnection *gc; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
288 MsnSession *session; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
289 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
290 gc = (GaimConnection *) action->context; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
291 session = gc->proto_data; |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
292 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
293 gaim_request_input(gc, NULL, _("Set your mobile phone number."), NULL, |
| 8697 | 294 msn_user_get_mobile_phone(session->user), FALSE, FALSE, NULL, |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
295 _("OK"), G_CALLBACK(msn_set_mobile_phone_cb), |
|
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
296 _("Cancel"), NULL, gc); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
297 } |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
298 |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
299 static void |
| 9015 | 300 msn_show_set_mobile_pages(GaimPluginAction *action) |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
301 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
302 GaimConnection *gc; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
303 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
304 gc = (GaimConnection *) action->context; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
305 |
|
5496
b7c0be69c749
[gaim-migrate @ 5892]
Christian Hammond <chipx86@chipx86.com>
parents:
5491
diff
changeset
|
306 gaim_request_action(gc, NULL, _("Allow MSN Mobile pages?"), |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
307 _("Do you want to allow or disallow people on " |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
308 "your buddy list to send you MSN Mobile pages " |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
309 "to your cell phone or other mobile device?"), |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
310 -1, gc, 3, |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
311 _("Allow"), G_CALLBACK(enable_msn_pages_cb), |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
312 _("Disallow"), G_CALLBACK(disable_msn_pages_cb), |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
313 _("Cancel"), NULL); |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
314 } |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
315 |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
316 static void |
| 11321 | 317 msn_show_hotmail_inbox(GaimPluginAction *action) |
| 318 { | |
| 319 GaimConnection *gc; | |
| 320 MsnSession *session; | |
| 321 | |
| 322 gc = (GaimConnection *) action->context; | |
| 323 session = gc->proto_data; | |
| 324 | |
| 325 if (session->passport_info.file == NULL) | |
| 326 { | |
| 327 gaim_notify_error(gc, NULL, | |
| 328 _("This Hotmail account may not be active."), NULL); | |
| 329 return; | |
| 330 } | |
| 331 | |
| 332 gaim_notify_uri(gc, session->passport_info.file); | |
| 333 } | |
| 334 | |
| 335 static void | |
| 9030 | 336 show_send_to_mobile_cb(GaimBlistNode *node, gpointer ignored) |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
337 { |
| 9030 | 338 GaimBuddy *buddy; |
| 339 GaimConnection *gc; | |
| 9042 | 340 MsnSession *session; |
| 341 MsnMobileData *data; | |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
342 |
| 9030 | 343 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
| 344 | |
| 345 buddy = (GaimBuddy *) node; | |
| 346 gc = gaim_account_get_connection(buddy->account); | |
| 347 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
348 session = gc->proto_data; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
349 |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
350 data = g_new0(MsnMobileData, 1); |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
351 data->gc = gc; |
| 9030 | 352 data->passport = buddy->name; |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
353 |
|
5491
4bcae8503866
[gaim-migrate @ 5887]
Christian Hammond <chipx86@chipx86.com>
parents:
5481
diff
changeset
|
354 gaim_request_input(gc, NULL, _("Send a mobile message."), NULL, |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
355 NULL, TRUE, FALSE, NULL, |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
356 _("Page"), G_CALLBACK(send_to_mobile_cb), |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
357 _("Close"), G_CALLBACK(close_mobile_page_cb), |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
358 data); |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
359 } |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
360 |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
361 static void |
| 9030 | 362 initiate_chat_cb(GaimBlistNode *node, gpointer data) |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
363 { |
| 9030 | 364 GaimBuddy *buddy; |
| 365 GaimConnection *gc; | |
| 366 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
367 MsnSession *session; |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
368 MsnSwitchBoard *swboard; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
369 |
| 9030 | 370 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
371 |
| 9030 | 372 buddy = (GaimBuddy *) node; |
| 373 gc = gaim_account_get_connection(buddy->account); | |
| 374 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
375 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
376 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
377 swboard = msn_switchboard_new(session); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
378 msn_switchboard_request(swboard); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
379 msn_switchboard_request_add_user(swboard, buddy->name); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
380 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
381 /* TODO: This might move somewhere else, after USR might be */ |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
382 swboard->chat_id = session->conv_seq++; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
383 swboard->conv = serv_got_joined_chat(gc, swboard->chat_id, "MSN Chat"); |
| 10773 | 384 swboard->flag = MSN_SB_FLAG_IM; |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
385 |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
386 gaim_conv_chat_add_user(GAIM_CONV_CHAT(swboard->conv), |
| 9846 | 387 gaim_account_get_username(buddy->account), NULL, GAIM_CBFLAGS_NONE, TRUE); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
388 } |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
389 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
390 static void |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
391 t_msn_xfer_init(GaimXfer *xfer) |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
392 { |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
393 MsnSlpLink *slplink; |
| 10102 | 394 const char *filename; |
| 395 FILE *fp; | |
| 396 | |
| 397 filename = gaim_xfer_get_local_filename(xfer); | |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
398 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
399 slplink = xfer->data; |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
400 |
|
10589
0f7452b1f777
[gaim-migrate @ 11994]
Daniel Atallah <daniel.atallah@gmail.com>
parents:
10568
diff
changeset
|
401 if ((fp = g_fopen(filename, "rb")) == NULL) |
| 10102 | 402 { |
| 403 GaimAccount *account; | |
| 404 const char *who; | |
| 405 char *msg; | |
| 406 | |
| 407 account = slplink->session->account; | |
| 408 who = slplink->remote_user; | |
| 409 | |
| 410 msg = g_strdup_printf(_("Error reading %s: \n%s.\n"), | |
| 411 filename, strerror(errno)); | |
| 10654 | 412 gaim_xfer_error(gaim_xfer_get_type(xfer), account, xfer->who, msg); |
| 10102 | 413 gaim_xfer_cancel_local(xfer); |
| 414 g_free(msg); | |
| 415 | |
| 416 return; | |
| 417 } | |
| 418 fclose(fp); | |
| 419 | |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
420 msn_slplink_request_ft(slplink, xfer); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
421 } |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
422 |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
423 static GaimXfer* |
|
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
424 msn_new_xfer(GaimConnection *gc, const char *who) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
425 { |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
426 MsnSession *session; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
427 MsnSlpLink *slplink; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
428 GaimXfer *xfer; |
| 12161 | 429 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
430 session = gc->proto_data; |
| 12161 | 431 |
| 9466 | 432 xfer = gaim_xfer_new(gc->account, GAIM_XFER_SEND, who); |
| 12161 | 433 |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
434 slplink = msn_session_get_slplink(session, who); |
| 12161 | 435 |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
436 xfer->data = slplink; |
| 12161 | 437 |
| 438 gaim_xfer_set_init_fnc(xfer, t_msn_xfer_init); | |
| 439 | |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
440 return xfer; |
|
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
441 } |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
442 |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
443 static void |
|
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
444 msn_send_file(GaimConnection *gc, const char *who, const char *file) |
|
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
445 { |
|
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
446 GaimXfer *xfer = msn_new_xfer(gc, who); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
447 |
| 9466 | 448 if (file) |
| 449 gaim_xfer_request_accepted(xfer, file); | |
| 450 else | |
| 451 gaim_xfer_request(xfer); | |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
452 } |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
453 |
| 10116 | 454 static gboolean |
| 455 msn_can_receive_file(GaimConnection *gc, const char *who) | |
| 456 { | |
| 457 GaimAccount *account; | |
| 458 char *normal; | |
| 459 gboolean ret; | |
| 460 | |
| 461 account = gaim_connection_get_account(gc); | |
| 462 | |
| 463 normal = g_strdup(msn_normalize(account, gaim_account_get_username(account))); | |
| 464 | |
| 465 ret = strcmp(normal, msn_normalize(account, who)); | |
| 466 | |
| 467 g_free(normal); | |
| 468 | |
| 469 return ret; | |
| 470 } | |
| 471 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
472 /************************************************************************** |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
473 * Protocol Plugin ops |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
474 **************************************************************************/ |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
475 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
476 static const char * |
| 6695 | 477 msn_list_icon(GaimAccount *a, GaimBuddy *b) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
478 { |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
479 return "msn"; |
| 2993 | 480 } |
| 481 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
482 static void |
| 9953 | 483 msn_list_emblems(GaimBuddy *b, const char **se, const char **sw, |
| 484 const char **nw, const char **ne) | |
| 2086 | 485 { |
|
5372
fa0217bec87e
[gaim-migrate @ 5748]
Christian Hammond <chipx86@chipx86.com>
parents:
5369
diff
changeset
|
486 MsnUser *user; |
| 9967 | 487 GaimPresence *presence; |
| 9953 | 488 const char *emblems[4] = { NULL, NULL, NULL, NULL }; |
|
10068
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
489 int i = 0; |
|
5361
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
490 |
|
5372
fa0217bec87e
[gaim-migrate @ 5748]
Christian Hammond <chipx86@chipx86.com>
parents:
5369
diff
changeset
|
491 user = b->proto_data; |
| 9967 | 492 presence = gaim_buddy_get_presence(b); |
|
5372
fa0217bec87e
[gaim-migrate @ 5748]
Christian Hammond <chipx86@chipx86.com>
parents:
5369
diff
changeset
|
493 |
| 9967 | 494 if (!gaim_presence_is_online(presence)) |
|
10068
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
495 emblems[i++] = "offline"; |
| 9967 | 496 else if (gaim_presence_is_status_active(presence, "busy") || |
| 497 gaim_presence_is_status_active(presence, "phone")) | |
|
5361
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
498 emblems[i++] = "occupied"; |
| 10451 | 499 else if (!gaim_presence_is_available(presence)) |
|
5361
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
500 emblems[i++] = "away"; |
|
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
501 |
|
10068
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
502 if (user == NULL) |
|
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
503 { |
|
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
504 emblems[0] = "offline"; |
|
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
505 } |
| 10275 | 506 else |
| 507 { | |
| 508 if (user->mobile) | |
| 509 emblems[i++] = "wireless"; | |
| 510 if (!(user->list_op & (1 << MSN_LIST_RL))) | |
| 511 emblems[i++] = "nr"; | |
| 512 } | |
|
10068
f948913f3c33
[gaim-migrate @ 11044]
Luke Schierer <lschiere@pidgin.im>
parents:
10063
diff
changeset
|
513 |
|
5361
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
514 *se = emblems[0]; |
|
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
515 *sw = emblems[1]; |
|
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
516 *nw = emblems[2]; |
|
953aa05279f4
[gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
5351
diff
changeset
|
517 *ne = emblems[3]; |
| 2086 | 518 } |
| 519 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
520 static char * |
| 9951 | 521 msn_status_text(GaimBuddy *buddy) |
| 2086 | 522 { |
| 10044 | 523 GaimPresence *presence; |
| 524 GaimStatus *status; | |
| 525 | |
| 526 presence = gaim_buddy_get_presence(buddy); | |
| 527 status = gaim_presence_get_active_status(presence); | |
| 9951 | 528 |
|
10057
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
529 if (!gaim_presence_is_available(presence) && !gaim_presence_is_idle(presence)) |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
530 { |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
531 return g_strdup(gaim_status_get_name(status)); |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
532 } |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
533 |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
534 return NULL; |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
535 } |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
536 |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
537 static void |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
538 msn_tooltip_text(GaimBuddy *buddy, GString *str, gboolean full) |
|
10057
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
539 { |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
540 MsnUser *user; |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
541 GaimPresence *presence = gaim_buddy_get_presence(buddy); |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
542 GaimStatus *status = gaim_presence_get_active_status(presence); |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
543 |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
544 user = buddy->proto_data; |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
545 |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
546 if (gaim_presence_is_online(presence)) |
| 10044 | 547 { |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
548 g_string_append_printf(str, _("\n<b>%s:</b> %s"), _("Status"), |
|
10057
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
549 gaim_presence_is_idle(presence) ? |
|
5d2a08d82e7a
[gaim-migrate @ 11022]
Luke Schierer <lschiere@pidgin.im>
parents:
10049
diff
changeset
|
550 _("Idle") : gaim_status_get_name(status)); |
| 10044 | 551 } |
| 2086 | 552 |
|
12948
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
553 if (full && user) |
| 10093 | 554 { |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
555 g_string_append_printf(str, _("\n<b>%s:</b> %s"), _("Has you"), |
| 10093 | 556 (user->list_op & (1 << MSN_LIST_RL)) ? |
| 557 _("Yes") : _("No")); | |
|
12948
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
558 |
|
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
559 /* XXX: This is being shown in non-full tooltips because the |
|
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
560 * XXX: blocked icon overlay isn't always accurate for MSN. |
|
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
561 * XXX: This can die as soon as gaim_privacy_check() knows that |
|
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
562 * XXX: this prpl always honors both the allow and deny lists. */ |
|
563fb4f1e9fc
[gaim-migrate @ 15301]
Richard Laager <rlaager@wiktel.com>
parents:
12943
diff
changeset
|
563 if (user) |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
564 g_string_append_printf(str, _("\n<b>%s:</b> %s"), _("Blocked"), |
| 10275 | 565 (user->list_op & (1 << MSN_LIST_BL)) ? |
| 566 _("Yes") : _("No")); | |
| 10093 | 567 } |
| 2086 | 568 } |
| 569 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
570 static GList * |
| 9951 | 571 msn_status_types(GaimAccount *account) |
| 2086 | 572 { |
| 9967 | 573 GaimStatusType *status; |
| 9951 | 574 GList *types = NULL; |
| 575 | |
| 9967 | 576 status = gaim_status_type_new_full(GAIM_STATUS_AVAILABLE, |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
577 NULL, NULL, FALSE, TRUE, FALSE); |
| 9967 | 578 types = g_list_append(types, status); |
| 2086 | 579 |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
580 status = gaim_status_type_new_full(GAIM_STATUS_AWAY, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
581 NULL, NULL, FALSE, TRUE, FALSE); |
| 9967 | 582 types = g_list_append(types, status); |
| 583 | |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
584 status = gaim_status_type_new_full(GAIM_STATUS_AWAY, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
585 "brb", _("Be Right Back"), FALSE, TRUE, FALSE); |
| 9967 | 586 types = g_list_append(types, status); |
| 587 | |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
588 status = gaim_status_type_new_full(GAIM_STATUS_UNAVAILABLE, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
589 "busy", _("Busy"), FALSE, TRUE, FALSE); |
| 9967 | 590 types = g_list_append(types, status); |
| 591 | |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
592 status = gaim_status_type_new_full(GAIM_STATUS_UNAVAILABLE, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
593 "phone", _("On the Phone"), FALSE, TRUE, FALSE); |
| 9967 | 594 types = g_list_append(types, status); |
| 595 | |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
596 status = gaim_status_type_new_full(GAIM_STATUS_AWAY, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
597 "lunch", _("Out to Lunch"), FALSE, TRUE, FALSE); |
| 9967 | 598 types = g_list_append(types, status); |
| 599 | |
|
12595
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
600 status = gaim_status_type_new_full(GAIM_STATUS_INVISIBLE, |
|
3169cd6727ad
[gaim-migrate @ 14925]
Richard Laager <rlaager@wiktel.com>
parents:
12489
diff
changeset
|
601 NULL, NULL, FALSE, TRUE, FALSE); |
| 9967 | 602 types = g_list_append(types, status); |
| 9951 | 603 |
| 12658 | 604 status = gaim_status_type_new_full(GAIM_STATUS_OFFLINE, |
| 605 NULL, NULL, FALSE, TRUE, FALSE); | |
| 606 types = g_list_append(types, status); | |
| 607 | |
| 9951 | 608 return types; |
| 2086 | 609 } |
| 610 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
611 static GList * |
| 9015 | 612 msn_actions(GaimPlugin *plugin, gpointer context) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
613 { |
| 11321 | 614 GaimConnection *gc = (GaimConnection *)context; |
| 615 GaimAccount *account; | |
| 616 const char *user; | |
| 617 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
618 GList *m = NULL; |
| 9015 | 619 GaimPluginAction *act; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
620 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
621 act = gaim_plugin_action_new(_("Set Friendly Name..."), |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
622 msn_show_set_friendly_name); |
| 9015 | 623 m = g_list_append(m, act); |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
624 m = g_list_append(m, NULL); |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
625 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
626 act = gaim_plugin_action_new(_("Set Home Phone Number..."), |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
627 msn_show_set_home_phone); |
| 9015 | 628 m = g_list_append(m, act); |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
629 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
630 act = gaim_plugin_action_new(_("Set Work Phone Number..."), |
| 9015 | 631 msn_show_set_work_phone); |
| 632 m = g_list_append(m, act); | |
|
5363
ebebc833cf77
[gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents:
5361
diff
changeset
|
633 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
634 act = gaim_plugin_action_new(_("Set Mobile Phone Number..."), |
| 9015 | 635 msn_show_set_mobile_phone); |
| 636 m = g_list_append(m, act); | |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
637 m = g_list_append(m, NULL); |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
638 |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
639 #if 0 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
640 act = gaim_plugin_action_new(_("Enable/Disable Mobile Devices..."), |
| 9015 | 641 msn_show_set_mobile_support); |
| 642 m = g_list_append(m, act); | |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
643 #endif |
|
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
644 |
|
12243
d3cb077caf3e
[gaim-migrate @ 14545]
Richard Laager <rlaager@wiktel.com>
parents:
12216
diff
changeset
|
645 act = gaim_plugin_action_new(_("Allow/Disallow Mobile Pages..."), |
| 9015 | 646 msn_show_set_mobile_pages); |
| 647 m = g_list_append(m, act); | |
|
5364
379beab3d157
[gaim-migrate @ 5740]
Christian Hammond <chipx86@chipx86.com>
parents:
5363
diff
changeset
|
648 |
| 11321 | 649 account = gaim_connection_get_account(gc); |
| 650 user = msn_normalize(account, gaim_account_get_username(account)); | |
| 651 | |
| 652 if (strstr(user, "@hotmail.com") != NULL) | |
| 653 { | |
| 654 m = g_list_append(m, NULL); | |
| 655 act = gaim_plugin_action_new(_("Open Hotmail Inbox"), | |
| 656 msn_show_hotmail_inbox); | |
| 657 m = g_list_append(m, act); | |
| 658 } | |
| 659 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
660 return m; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
661 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
662 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
663 static GList * |
| 9030 | 664 msn_buddy_menu(GaimBuddy *buddy) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
665 { |
|
5372
fa0217bec87e
[gaim-migrate @ 5748]
Christian Hammond <chipx86@chipx86.com>
parents:
5369
diff
changeset
|
666 MsnUser *user; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
667 |
| 9030 | 668 GList *m = NULL; |
|
12919
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
669 GaimMenuAction *act; |
|
6858
885c6528843b
[gaim-migrate @ 7403]
Christian Hammond <chipx86@chipx86.com>
parents:
6842
diff
changeset
|
670 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
671 g_return_val_if_fail(buddy != NULL, NULL); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
672 |
| 9030 | 673 user = buddy->proto_data; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
674 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
675 if (user != NULL) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
676 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
677 if (user->mobile) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
678 { |
|
12919
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
679 act = gaim_menu_action_new(_("Send to Mobile"), |
|
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
680 GAIM_CALLBACK(show_send_to_mobile_cb), |
|
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
681 NULL, NULL); |
| 9030 | 682 m = g_list_append(m, act); |
|
5382
b18332105302
[gaim-migrate @ 5758]
Christian Hammond <chipx86@chipx86.com>
parents:
5379
diff
changeset
|
683 } |
|
5369
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
684 } |
|
a87818e9dc54
[gaim-migrate @ 5745]
Christian Hammond <chipx86@chipx86.com>
parents:
5364
diff
changeset
|
685 |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
686 if (g_ascii_strcasecmp(buddy->name, |
|
13020
72300c551dc2
[gaim-migrate @ 15373]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12970
diff
changeset
|
687 gaim_account_get_username(buddy->account))) |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
688 { |
|
12919
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
689 act = gaim_menu_action_new(_("Initiate _Chat"), |
|
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
690 GAIM_CALLBACK(initiate_chat_cb), |
|
248b8b39c671
[gaim-migrate @ 15272]
Etan Reisner <pidgin@unreliablesource.net>
parents:
12886
diff
changeset
|
691 NULL, NULL); |
| 9030 | 692 m = g_list_append(m, act); |
|
6148
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
693 } |
|
82e7eaa67406
[gaim-migrate @ 6622]
Christian Hammond <chipx86@chipx86.com>
parents:
6059
diff
changeset
|
694 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
695 return m; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
696 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
697 |
| 9030 | 698 static GList * |
| 699 msn_blist_node_menu(GaimBlistNode *node) | |
| 700 { | |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
701 if(GAIM_BLIST_NODE_IS_BUDDY(node)) |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
702 { |
| 9030 | 703 return msn_buddy_menu((GaimBuddy *) node); |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
704 } |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
705 else |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
706 { |
| 9030 | 707 return NULL; |
| 708 } | |
| 709 } | |
| 710 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
711 static void |
| 11837 | 712 msn_login(GaimAccount *account) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
713 { |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
714 GaimConnection *gc; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
715 MsnSession *session; |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
716 const char *username; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
717 const char *host; |
|
7288
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
718 gboolean http_method = FALSE; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
719 int port; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
720 |
|
7277
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
721 gc = gaim_account_get_connection(account); |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
722 |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
723 if (!gaim_ssl_is_supported()) |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
724 { |
| 10914 | 725 gc->wants_to_die = TRUE; |
|
7277
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
726 gaim_connection_error(gc, |
|
8499
467b01d02f9c
[gaim-migrate @ 9235]
Christian Hammond <chipx86@chipx86.com>
parents:
8475
diff
changeset
|
727 _("SSL support is needed for MSN. Please install a supported " |
|
467b01d02f9c
[gaim-migrate @ 9235]
Christian Hammond <chipx86@chipx86.com>
parents:
8475
diff
changeset
|
728 "SSL library. See http://gaim.sf.net/faq-ssl.php for more " |
|
467b01d02f9c
[gaim-migrate @ 9235]
Christian Hammond <chipx86@chipx86.com>
parents:
8475
diff
changeset
|
729 "information.")); |
|
7277
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
730 |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
731 return; |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
732 } |
|
2972dad4438b
[gaim-migrate @ 7856]
Christian Hammond <chipx86@chipx86.com>
parents:
7262
diff
changeset
|
733 |
|
7288
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
734 if (gaim_account_get_bool(account, "http_method", FALSE)) |
|
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
735 http_method = TRUE; |
|
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
736 |
| 10463 | 737 host = gaim_account_get_string(account, "server", MSN_SERVER); |
| 10481 | 738 port = gaim_account_get_int(account, "port", MSN_PORT); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
739 |
| 10481 | 740 session = msn_session_new(account); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
741 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
742 gc->proto_data = session; |
| 9775 | 743 gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_FORMATTING_WBFO | GAIM_CONNECTION_NO_BGCOLOR | GAIM_CONNECTION_NO_FONTSIZE | GAIM_CONNECTION_NO_URLDESC; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
744 |
| 10481 | 745 msn_session_set_login_step(session, MSN_LOGIN_STEP_START); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
746 |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
747 /* Hmm, I don't like this. */ |
| 10481 | 748 /* XXX shx: Me neither */ |
| 7322 | 749 username = msn_normalize(account, gaim_account_get_username(account)); |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
750 |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
751 if (strcmp(username, gaim_account_get_username(account))) |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
752 gaim_account_set_username(account, username); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
753 |
| 10568 | 754 if (!msn_session_connect(session, host, port, http_method)) |
| 755 gaim_connection_error(gc, _("Failed to connect to server.")); | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
756 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
757 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
758 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
759 msn_close(GaimConnection *gc) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
760 { |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
761 MsnSession *session; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
762 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
763 session = gc->proto_data; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
764 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
765 g_return_if_fail(session != NULL); |
|
8298
c719f9a181d4
[gaim-migrate @ 9022]
Christian Hammond <chipx86@chipx86.com>
parents:
8291
diff
changeset
|
766 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
767 msn_session_destroy(session); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
768 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
769 gc->proto_data = NULL; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
770 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
771 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
772 static int |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
773 msn_send_im(GaimConnection *gc, const char *who, const char *message, |
| 12216 | 774 GaimMessageFlags flags) |
| 2086 | 775 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
776 GaimAccount *account; |
| 10275 | 777 MsnMessage *msg; |
| 778 char *msgformat; | |
| 779 char *msgtext; | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
780 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
781 account = gaim_connection_get_account(gc); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
782 |
| 10275 | 783 msn_import_html(message, &msgformat, &msgtext); |
| 784 | |
| 785 if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) | |
| 786 { | |
| 787 g_free(msgformat); | |
| 788 g_free(msgtext); | |
| 789 | |
| 790 return -E2BIG; | |
| 791 } | |
| 792 | |
| 793 msg = msn_message_new_plain(msgtext); | |
| 794 msn_message_set_attr(msg, "X-MMS-IM-Format", msgformat); | |
| 795 | |
| 796 g_free(msgformat); | |
| 797 g_free(msgtext); | |
| 798 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
799 if (g_ascii_strcasecmp(who, gaim_account_get_username(account))) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
800 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
801 MsnSession *session; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
802 MsnSwitchBoard *swboard; |
|
8595
1d5e31e518fc
[gaim-migrate @ 9346]
Christian Hammond <chipx86@chipx86.com>
parents:
8591
diff
changeset
|
803 |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
804 session = gc->proto_data; |
| 10773 | 805 swboard = msn_session_get_swboard(session, who, MSN_SB_FLAG_IM); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
806 |
| 10481 | 807 msn_switchboard_send_msg(swboard, msg, TRUE); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
808 } |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
809 else |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
810 { |
| 10275 | 811 char *body_str, *body_enc, *pre, *post; |
| 812 const char *format; | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
813 /* |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
814 * In MSN, you can't send messages to yourself, so |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
815 * we'll fake like we received it ;) |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
816 */ |
| 10275 | 817 body_str = msn_message_to_string(msg); |
|
10732
c4cb90065e1d
[gaim-migrate @ 12334]
Luke Schierer <lschiere@pidgin.im>
parents:
10716
diff
changeset
|
818 body_enc = g_markup_escape_text(body_str, -1); |
| 10275 | 819 g_free(body_str); |
| 820 | |
| 821 format = msn_message_get_attr(msg, "X-MMS-IM-Format"); | |
| 822 msn_parse_format(format, &pre, &post); | |
| 10568 | 823 body_str = g_strdup_printf("%s%s%s", pre ? pre : "", |
| 824 body_enc ? body_enc : "", post ? post : ""); | |
| 10346 | 825 g_free(body_enc); |
| 10275 | 826 g_free(pre); |
| 827 g_free(post); | |
| 828 | |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
829 serv_got_typing_stopped(gc, who); |
| 10275 | 830 serv_got_im(gc, who, body_str, flags, time(NULL)); |
| 831 g_free(body_str); | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
832 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
833 |
| 10275 | 834 msn_message_destroy(msg); |
| 835 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
836 return 1; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
837 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
838 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
839 static int |
| 6059 | 840 msn_send_typing(GaimConnection *gc, const char *who, int typing) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
841 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
842 GaimAccount *account; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
843 MsnSession *session; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
844 MsnSwitchBoard *swboard; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
845 MsnMessage *msg; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
846 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
847 account = gaim_connection_get_account(gc); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
848 session = gc->proto_data; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
849 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
850 if (!typing) |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
851 return 0; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
852 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
853 if (!g_ascii_strcasecmp(who, gaim_account_get_username(account))) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
854 { |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
855 /* We'll just fake it, since we're sending to ourself. */ |
|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5793
diff
changeset
|
856 serv_got_typing(gc, who, MSN_TYPING_RECV_TIMEOUT, GAIM_TYPING); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
857 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
858 return MSN_TYPING_SEND_TIMEOUT; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
859 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
860 |
| 10621 | 861 swboard = msn_session_find_swboard(session, who); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
862 |
| 10481 | 863 if (swboard == NULL || !msn_switchboard_can_send(swboard)) |
| 10346 | 864 return 0; |
| 865 | |
| 10773 | 866 swboard->flag |= MSN_SB_FLAG_IM; |
| 867 | |
| 10225 | 868 msg = msn_message_new(MSN_MSG_TYPING); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
869 msn_message_set_content_type(msg, "text/x-msmsgscontrol"); |
|
5505
870207a49f2f
[gaim-migrate @ 5904]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
870 msn_message_set_flag(msg, 'U'); |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
871 msn_message_set_attr(msg, "TypingUser", |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
872 gaim_account_get_username(account)); |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
873 msn_message_set_bin_data(msg, "\r\n", 2); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
874 |
| 10481 | 875 msn_switchboard_send_msg(swboard, msg, FALSE); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
876 |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
877 msn_message_destroy(msg); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
878 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
879 return MSN_TYPING_SEND_TIMEOUT; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
880 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
881 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
882 static void |
| 9967 | 883 msn_set_status(GaimAccount *account, GaimStatus *status) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
884 { |
| 9967 | 885 GaimConnection *gc; |
| 11992 | 886 MsnSession *session; |
| 9967 | 887 |
| 888 gc = gaim_account_get_connection(account); | |
| 889 | |
| 11028 | 890 if (gc != NULL) |
| 11992 | 891 { |
| 10646 | 892 session = gc->proto_data; |
| 11992 | 893 msn_change_status(session); |
| 894 } | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
895 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
896 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
897 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
898 msn_set_idle(GaimConnection *gc, int idle) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
899 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
900 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
901 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
902 session = gc->proto_data; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
903 |
| 11992 | 904 msn_change_status(session); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
905 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
906 |
| 11992 | 907 #if 0 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
908 static void |
| 10044 | 909 fake_userlist_add_buddy(MsnUserList *userlist, |
| 910 const char *who, int list_id, | |
| 911 const char *group_name) | |
| 912 { | |
| 913 MsnUser *user; | |
| 914 static int group_id_c = 1; | |
| 915 int group_id; | |
| 916 | |
| 917 group_id = -1; | |
| 918 | |
| 919 if (group_name != NULL) | |
| 920 { | |
| 921 MsnGroup *group; | |
| 922 group = msn_group_new(userlist, group_id_c, group_name); | |
| 923 group_id = group_id_c++; | |
| 924 } | |
| 925 | |
| 926 user = msn_userlist_find_user(userlist, who); | |
| 927 | |
| 928 if (user == NULL) | |
| 929 { | |
| 930 user = msn_user_new(userlist, who, NULL); | |
| 931 msn_userlist_add_user(userlist, user); | |
| 932 } | |
| 933 else | |
| 934 if (user->list_op & (1 << list_id)) | |
| 935 { | |
| 936 if (list_id == MSN_LIST_FL) | |
| 937 { | |
| 938 if (group_id >= 0) | |
| 939 if (g_list_find(user->group_ids, | |
| 940 GINT_TO_POINTER(group_id))) | |
| 941 return; | |
| 942 } | |
| 943 else | |
| 944 return; | |
| 945 } | |
| 946 | |
| 947 if (group_id >= 0) | |
| 948 { | |
| 949 user->group_ids = g_list_append(user->group_ids, | |
| 950 GINT_TO_POINTER(group_id)); | |
| 951 } | |
| 952 | |
| 953 user->list_op |= (1 << list_id); | |
| 954 } | |
| 11992 | 955 #endif |
| 10044 | 956 |
| 957 static void | |
| 9285 | 958 msn_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
959 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
960 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
961 MsnUserList *userlist; |
| 7261 | 962 const char *who; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
963 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
964 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
965 userlist = session->userlist; |
| 9285 | 966 who = msn_normalize(gc->account, buddy->name); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
967 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
968 if (!session->logged_in) |
| 10044 | 969 { |
| 11992 | 970 #if 0 |
| 10044 | 971 fake_userlist_add_buddy(session->sync_userlist, who, MSN_LIST_FL, |
| 972 group ? group->name : NULL); | |
| 11992 | 973 #else |
| 974 gaim_debug_error("msn", "msn_add_buddy called before connected\n"); | |
| 975 #endif | |
| 10044 | 976 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
977 return; |
| 10044 | 978 } |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
979 |
| 10044 | 980 #if 0 |
|
9290
2e5faf12a24c
[gaim-migrate @ 10093]
Christian Hammond <chipx86@chipx86.com>
parents:
9285
diff
changeset
|
981 if (group != NULL && group->name != NULL) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
982 gaim_debug_info("msn", "msn_add_buddy: %s, %s\n", who, group->name); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
983 else |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
984 gaim_debug_info("msn", "msn_add_buddy: %s\n", who); |
| 10044 | 985 #endif |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
986 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
987 #if 0 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
988 /* Which is the max? */ |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
989 if (session->fl_users_count >= 150) |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
990 { |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
991 gaim_debug_info("msn", "Too many buddies\n"); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
992 /* Buddy list full */ |
| 9285 | 993 /* TODO: gaim should be notified of this */ |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
994 return; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
995 } |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
996 #endif |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
997 |
| 10044 | 998 /* XXX - Would group ever be NULL here? I don't think so... |
| 999 * shx: Yes it should; MSN handles non-grouped buddies, and this is only | |
| 1000 * internal. */ | |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1001 msn_userlist_add_buddy(userlist, who, MSN_LIST_FL, |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1002 group ? group->name : NULL); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1003 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1004 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1005 static void |
| 9285 | 1006 msn_rem_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1007 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1008 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1009 MsnUserList *userlist; |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1010 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1011 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1012 userlist = session->userlist; |
|
9091
97a1fb329cd2
[gaim-migrate @ 9868]
Christian Hammond <chipx86@chipx86.com>
parents:
9086
diff
changeset
|
1013 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1014 if (!session->logged_in) |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1015 return; |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1016 |
| 9285 | 1017 /* XXX - Does buddy->name need to be msn_normalize'd here? --KingAnt */ |
| 1018 msn_userlist_rem_buddy(userlist, buddy->name, MSN_LIST_FL, group->name); | |
| 2086 | 1019 } |
| 1020 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1021 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1022 msn_add_permit(GaimConnection *gc, const char *who) |
| 2086 | 1023 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1024 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1025 MsnUserList *userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1026 MsnUser *user; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1027 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1028 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1029 userlist = session->userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1030 user = msn_userlist_find_user(userlist, who); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1031 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1032 if (!session->logged_in) |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1033 return; |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1034 |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1035 if (user != NULL && user->list_op & MSN_LIST_BL_OP) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1036 msn_userlist_rem_buddy(userlist, who, MSN_LIST_BL, NULL); |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1037 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1038 msn_userlist_add_buddy(userlist, who, MSN_LIST_AL, NULL); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1039 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1040 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1041 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1042 msn_add_deny(GaimConnection *gc, const char *who) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1043 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1044 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1045 MsnUserList *userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1046 MsnUser *user; |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1047 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1048 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1049 userlist = session->userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1050 user = msn_userlist_find_user(userlist, who); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1051 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1052 if (!session->logged_in) |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1053 return; |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1054 |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1055 if (user != NULL && user->list_op & MSN_LIST_AL_OP) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1056 msn_userlist_rem_buddy(userlist, who, MSN_LIST_AL, NULL); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1057 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1058 msn_userlist_add_buddy(userlist, who, MSN_LIST_BL, NULL); |
| 2086 | 1059 } |
| 1060 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1061 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1062 msn_rem_permit(GaimConnection *gc, const char *who) |
| 2086 | 1063 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1064 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1065 MsnUserList *userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1066 MsnUser *user; |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1067 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1068 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1069 userlist = session->userlist; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1070 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1071 if (!session->logged_in) |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1072 return; |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1073 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1074 user = msn_userlist_find_user(userlist, who); |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1075 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1076 msn_userlist_rem_buddy(userlist, who, MSN_LIST_AL, NULL); |
| 2086 | 1077 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1078 if (user != NULL && user->list_op & MSN_LIST_RL_OP) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1079 msn_userlist_add_buddy(userlist, who, MSN_LIST_BL, NULL); |
| 2086 | 1080 } |
| 1081 | |
|
12323
fc464a0abccc
[gaim-migrate @ 14627]
Richard Laager <rlaager@wiktel.com>
parents:
12318
diff
changeset
|
1082 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1083 msn_rem_deny(GaimConnection *gc, const char *who) |
| 2086 | 1084 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1085 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1086 MsnUserList *userlist; |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1087 MsnUser *user; |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1088 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1089 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1090 userlist = session->userlist; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1091 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1092 if (!session->logged_in) |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1093 return; |
|
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1094 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1095 user = msn_userlist_find_user(userlist, who); |
|
2213
a226ebf4be47
[gaim-migrate @ 2223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2210
diff
changeset
|
1096 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1097 msn_userlist_rem_buddy(userlist, who, MSN_LIST_BL, NULL); |
|
7563
cb9c3b6d6de9
[gaim-migrate @ 8179]
Christian Hammond <chipx86@chipx86.com>
parents:
7469
diff
changeset
|
1098 |
|
9363
997c28571364
[gaim-migrate @ 10171]
Christian Hammond <chipx86@chipx86.com>
parents:
9318
diff
changeset
|
1099 if (user != NULL && user->list_op & MSN_LIST_RL_OP) |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1100 msn_userlist_add_buddy(userlist, who, MSN_LIST_AL, NULL); |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1101 } |
|
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1102 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1103 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1104 msn_set_permit_deny(GaimConnection *gc) |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1105 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1106 GaimAccount *account; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1107 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1108 MsnCmdProc *cmdproc; |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1109 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1110 account = gaim_connection_get_account(gc); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1111 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1112 cmdproc = session->notification->cmdproc; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1113 |
| 8175 | 1114 if (account->perm_deny == GAIM_PRIVACY_ALLOW_ALL || |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1115 account->perm_deny == GAIM_PRIVACY_DENY_USERS) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1116 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1117 msn_cmdproc_send(cmdproc, "BLP", "%s", "AL"); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1118 } |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1119 else |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1120 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1121 msn_cmdproc_send(cmdproc, "BLP", "%s", "BL"); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1122 } |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1123 } |
|
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1124 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1125 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1126 msn_chat_invite(GaimConnection *gc, int id, const char *msg, |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1127 const char *who) |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1128 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1129 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1130 MsnSwitchBoard *swboard; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1131 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1132 session = gc->proto_data; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1133 |
| 10621 | 1134 swboard = msn_session_find_swboard_with_id(session, id); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1135 |
| 10533 | 1136 if (swboard == NULL) |
| 1137 { | |
| 1138 /* if we have no switchboard, everyone else left the chat already */ | |
| 1139 swboard = msn_switchboard_new(session); | |
| 1140 msn_switchboard_request(swboard); | |
| 1141 swboard->chat_id = id; | |
| 1142 swboard->conv = gaim_find_chat(gc, id); | |
| 1143 } | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1144 |
| 10773 | 1145 swboard->flag |= MSN_SB_FLAG_IM; |
| 1146 | |
| 10533 | 1147 msn_switchboard_request_add_user(swboard, who); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1148 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1149 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1150 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1151 msn_chat_leave(GaimConnection *gc, int id) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1152 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1153 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1154 MsnSwitchBoard *swboard; |
| 10621 | 1155 GaimConversation *conv; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1156 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1157 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1158 |
| 10621 | 1159 swboard = msn_session_find_swboard_with_id(session, id); |
| 10533 | 1160 |
| 1161 /* if swboard is NULL we were the only person left anyway */ | |
| 1162 if (swboard == NULL) | |
| 1163 return; | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1164 |
| 10621 | 1165 conv = swboard->conv; |
| 1166 | |
| 10773 | 1167 msn_switchboard_release(swboard, MSN_SB_FLAG_IM); |
| 10621 | 1168 |
| 1169 /* If other switchboards managed to associate themselves with this | |
| 1170 * conv, make sure they know it's gone! */ | |
| 1171 if (conv != NULL) | |
| 1172 { | |
| 1173 while ((swboard = msn_session_find_swboard_with_conv(session, conv)) != NULL) | |
| 1174 swboard->conv = NULL; | |
| 1175 } | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1176 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1177 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1178 static int |
| 12216 | 1179 msn_chat_send(GaimConnection *gc, int id, const char *message, GaimMessageFlags flags) |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1180 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1181 GaimAccount *account; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1182 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1183 MsnSwitchBoard *swboard; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1184 MsnMessage *msg; |
| 8922 | 1185 char *msgformat; |
| 1186 char *msgtext; | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1187 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1188 account = gaim_connection_get_account(gc); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1189 session = gc->proto_data; |
| 10621 | 1190 swboard = msn_session_find_swboard_with_id(session, id); |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1191 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1192 if (swboard == NULL) |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1193 return -EINVAL; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1194 |
| 10345 | 1195 if (!swboard->ready) |
| 1196 return 0; | |
| 10274 | 1197 |
| 10773 | 1198 swboard->flag |= MSN_SB_FLAG_IM; |
| 1199 | |
| 10345 | 1200 msn_import_html(message, &msgformat, &msgtext); |
| 10274 | 1201 |
| 10345 | 1202 if (strlen(msgtext) + strlen(msgformat) + strlen(VERSION) > 1564) |
| 1203 { | |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1204 g_free(msgformat); |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1205 g_free(msgtext); |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1206 |
| 10345 | 1207 return -E2BIG; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1208 } |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1209 |
| 10345 | 1210 msg = msn_message_new_plain(msgtext); |
| 1211 msn_message_set_attr(msg, "X-MMS-IM-Format", msgformat); | |
| 10481 | 1212 msn_switchboard_send_msg(swboard, msg, FALSE); |
| 10345 | 1213 msn_message_destroy(msg); |
| 1214 | |
| 1215 g_free(msgformat); | |
| 1216 g_free(msgtext); | |
| 1217 | |
| 1218 serv_got_chat_in(gc, id, gaim_account_get_username(account), 0, | |
| 1219 message, time(NULL)); | |
| 1220 | |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1221 return 0; |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1222 } |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1223 |
|
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1224 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1225 msn_keepalive(GaimConnection *gc) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1226 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1227 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1228 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1229 session = gc->proto_data; |
| 10481 | 1230 |
| 10602 | 1231 if (!session->http_method) |
| 1232 { | |
| 1233 MsnCmdProc *cmdproc; | |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1234 |
| 10602 | 1235 cmdproc = session->notification->cmdproc; |
| 1236 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1237 msn_cmdproc_send_quick(cmdproc, "PNG", NULL, NULL); |
| 10602 | 1238 } |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1239 } |
|
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1240 |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1241 static void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5518
diff
changeset
|
1242 msn_group_buddy(GaimConnection *gc, const char *who, |
|
5518
bf2a7a7b739d
[gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents:
5507
diff
changeset
|
1243 const char *old_group_name, const char *new_group_name) |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1244 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1245 MsnSession *session; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1246 MsnUserList *userlist; |
|
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
1247 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1248 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1249 userlist = session->userlist; |
|
5518
bf2a7a7b739d
[gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents:
5507
diff
changeset
|
1250 |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1251 msn_userlist_move_buddy(userlist, who, old_group_name, new_group_name); |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1252 } |
|
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1253 |
|
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1254 static void |
| 9285 | 1255 msn_rename_group(GaimConnection *gc, const char *old_name, |
| 1256 GaimGroup *group, GList *moved_buddies) | |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1257 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1258 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1259 MsnCmdProc *cmdproc; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1260 int old_gid; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1261 const char *enc_new_group_name; |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1262 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1263 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1264 cmdproc = session->notification->cmdproc; |
| 9285 | 1265 enc_new_group_name = gaim_url_encode(group->name); |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1266 |
| 9285 | 1267 old_gid = msn_userlist_find_group_id(session->userlist, old_name); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1268 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1269 if (old_gid >= 0) |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1270 { |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1271 msn_cmdproc_send(cmdproc, "REG", "%d %s 0", old_gid, |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1272 enc_new_group_name); |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1273 } |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1274 else |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1275 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1276 msn_cmdproc_send(cmdproc, "ADG", "%s 0", enc_new_group_name); |
|
5318
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1277 } |
|
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1278 } |
|
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1279 |
|
bd98232872a3
[gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
1280 static void |
| 6059 | 1281 msn_convo_closed(GaimConnection *gc, const char *who) |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1282 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1283 MsnSession *session; |
|
5309
e2e53316a21d
[gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
5221
diff
changeset
|
1284 MsnSwitchBoard *swboard; |
| 10621 | 1285 GaimConversation *conv; |
|
6026
01dd6b652c22
[gaim-migrate @ 6476]
Christian Hammond <chipx86@chipx86.com>
parents:
6024
diff
changeset
|
1286 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1287 session = gc->proto_data; |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1288 |
| 10621 | 1289 swboard = msn_session_find_swboard(session, who); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1290 |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1291 /* |
| 10602 | 1292 * Don't perform an assertion here. If swboard is NULL, then the |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1293 * switchboard was either closed by the other party, or the person |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1294 * is talking to himself. |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1295 */ |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1296 if (swboard == NULL) |
|
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1297 return; |
| 4349 | 1298 |
| 10621 | 1299 conv = swboard->conv; |
| 1300 | |
| 10773 | 1301 msn_switchboard_release(swboard, MSN_SB_FLAG_IM); |
| 10621 | 1302 |
| 1303 /* If other switchboards managed to associate themselves with this | |
| 1304 * conv, make sure they know it's gone! */ | |
| 1305 if (conv != NULL) | |
| 1306 { | |
| 1307 while ((swboard = msn_session_find_swboard_with_conv(session, conv)) != NULL) | |
| 1308 swboard->conv = NULL; | |
| 1309 } | |
|
2597
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1310 } |
|
2ced57c58653
[gaim-migrate @ 2610]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2591
diff
changeset
|
1311 |
| 6516 | 1312 static void |
|
7590
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1313 msn_set_buddy_icon(GaimConnection *gc, const char *filename) |
|
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1314 { |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1315 MsnSession *session; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1316 MsnUser *user; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1317 |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1318 session = gc->proto_data; |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1319 user = session->user; |
|
7590
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1320 |
|
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1321 msn_user_set_buddy_icon(user, filename); |
|
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1322 |
| 11992 | 1323 msn_change_status(session); |
|
7590
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1324 } |
|
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1325 |
|
3a48ade4f510
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
7563
diff
changeset
|
1326 static void |
| 9285 | 1327 msn_remove_group(GaimConnection *gc, GaimGroup *group) |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1328 { |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1329 MsnSession *session; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1330 MsnCmdProc *cmdproc; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1331 int group_id; |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1332 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1333 session = gc->proto_data; |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1334 cmdproc = session->notification->cmdproc; |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1335 |
| 9285 | 1336 if ((group_id = msn_userlist_find_group_id(session->userlist, group->name)) >= 0) |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1337 { |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1338 msn_cmdproc_send(cmdproc, "RMG", "%d", group_id); |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1339 } |
|
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1340 } |
|
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1341 |
| 9243 | 1342 static char * |
| 10044 | 1343 msn_tooltip_info_text(MsnGetInfoData *info_data) |
| 1344 { | |
| 1345 GString *s; | |
| 9243 | 1346 GaimBuddy *b; |
| 1347 | |
| 10044 | 1348 s = g_string_sized_new(80); /* wild guess */ |
| 1349 | |
| 9243 | 1350 b = gaim_find_buddy(gaim_connection_get_account(info_data->gc), |
| 10044 | 1351 info_data->name); |
| 9243 | 1352 |
| 10044 | 1353 if (b) |
| 1354 { | |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1355 GString *str = g_string_new(""); |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1356 char *tmp; |
| 10044 | 1357 |
| 1358 if (b->alias && b->alias[0]) | |
| 1359 { | |
| 9243 | 1360 char *aliastext = g_markup_escape_text(b->alias, -1); |
| 1361 g_string_append_printf(s, _("<b>Alias:</b> %s<br>"), aliastext); | |
| 1362 g_free(aliastext); | |
| 1363 } | |
| 10044 | 1364 |
| 1365 if (b->server_alias) | |
| 1366 { | |
| 9243 | 1367 char *nicktext = g_markup_escape_text(b->server_alias, -1); |
| 9510 | 1368 g_string_append_printf(s, _("<b>%s:</b> "), _("Nickname")); |
| 9684 | 1369 g_string_append_printf(s, "<font sml=\"msn\">%s</font><br>", |
| 9243 | 1370 nicktext); |
| 1371 g_free(nicktext); | |
| 1372 } | |
| 10044 | 1373 |
|
12970
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1374 msn_tooltip_text(b, str, TRUE); |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1375 tmp = gaim_strreplace((*str->str == '\n' ? str->str + 1 : str->str), |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1376 "\n", "<br>"); |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1377 g_string_free(str, TRUE); |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1378 g_string_append_printf(s, "%s<br>", tmp); |
|
ec9b92104904
[gaim-migrate @ 15323]
Richard Laager <rlaager@wiktel.com>
parents:
12948
diff
changeset
|
1379 g_free(tmp); |
| 9243 | 1380 } |
| 1381 | |
| 1382 return g_string_free(s, FALSE); | |
| 1383 } | |
| 1384 | |
| 1385 #if PHOTO_SUPPORT | |
| 1386 | |
| 10044 | 1387 static char * |
| 1388 msn_get_photo_url(const char *url_text) | |
| 1389 { | |
| 13390 | 1390 char *p, *q; |
| 9243 | 1391 |
| 13390 | 1392 if ((p = strstr(url_text, " contactparams:photopreauthurl=\"")) != NULL) |
| 13389 | 1393 { |
| 13390 | 1394 p += strlen(" contactparams:photopreauthurl=\""); |
| 13389 | 1395 } |
| 9243 | 1396 |
| 13390 | 1397 if (p && (strncmp(p, "http://", 8) == 0) && ((q = strchr(p, '"')) != NULL)) |
| 1398 return g_strndup(p, q - p); | |
| 13389 | 1399 |
| 13390 | 1400 return NULL; |
| 9243 | 1401 } |
| 1402 | |
| 1403 static void msn_got_photo(void *data, const char *url_text, size_t len); | |
| 1404 | |
| 1405 #endif | |
| 1406 | |
| 13389 | 1407 #if 0 |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1408 static char *msn_info_date_reformat(const char *field, size_t len) |
|
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1409 { |
|
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1410 char *tmp = g_strndup(field, len); |
|
13119
fcde3faa1f57
[gaim-migrate @ 15481]
Richard Laager <rlaager@wiktel.com>
parents:
13104
diff
changeset
|
1411 time_t t = gaim_str_to_time(tmp, FALSE, NULL, NULL, NULL); |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1412 |
|
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1413 g_free(tmp); |
|
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1414 return g_strdup(gaim_date_format_short(localtime(&t))); |
|
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1415 } |
| 13389 | 1416 #endif |
| 1417 | |
| 1418 #define MSN_GOT_INFO_GET_FIELD(a, b) \ | |
| 1419 found = gaim_markup_extract_info_field(stripped, stripped_len, s, \ | |
| 1420 "\n" a "\t", 0, "\n", 0, "Undisclosed", b, 0, NULL, NULL); \ | |
| 1421 if (found) \ | |
| 1422 sect_info = TRUE; | |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1423 |
|
6885
66dd420d3d23
[gaim-migrate @ 7431]
Christian Hammond <chipx86@chipx86.com>
parents:
6859
diff
changeset
|
1424 static void |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1425 msn_got_info(void *data, const char *url_text, size_t len) |
| 6516 | 1426 { |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1427 MsnGetInfoData *info_data = (MsnGetInfoData *)data; |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1428 char *stripped, *p, *q; |
| 6516 | 1429 char buf[1024]; |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1430 char *tooltip_text; |
| 6516 | 1431 char *user_url = NULL; |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1432 gboolean found; |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1433 gboolean has_info = FALSE; |
| 13389 | 1434 gboolean sect_info = FALSE; |
| 9510 | 1435 const char* title = NULL; |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1436 char *url_buffer; |
| 13389 | 1437 char *personal = NULL; |
| 1438 char *business = NULL; | |
| 1439 GString *s, *s2; | |
| 7675 | 1440 int stripped_len; |
| 9243 | 1441 #if PHOTO_SUPPORT |
| 1442 char *photo_url_text = NULL; | |
| 1443 MsnGetInfoStepTwoData *info2_data = NULL; | |
| 1444 #endif | |
| 6516 | 1445 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1446 gaim_debug_info("msn", "In msn_got_info\n"); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1447 |
|
13479
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1448 /* Make sure the connection is still valid */ |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1449 if (g_list_find(gaim_connections_get_all(), info_data->gc) == NULL) |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1450 { |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1451 gaim_debug_warning("msn", "invalid connection. ignoring buddy info.\n"); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1452 g_free(info_data->name); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1453 g_free(info_data); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1454 return; |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1455 } |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1456 |
| 9243 | 1457 tooltip_text = msn_tooltip_info_text(info_data); |
| 9510 | 1458 title = _("MSN Profile"); |
| 9243 | 1459 |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1460 if (url_text == NULL || strcmp(url_text, "") == 0) |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1461 { |
| 9243 | 1462 g_snprintf(buf, 1024, "<html><body>%s<b>%s</b></body></html>", |
| 1463 tooltip_text, _("Error retrieving profile")); | |
| 1464 | |
|
11533
c9b815aeddc1
[gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents:
11531
diff
changeset
|
1465 gaim_notify_userinfo(info_data->gc, info_data->name, buf, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1466 |
| 9243 | 1467 g_free(tooltip_text); |
| 6516 | 1468 return; |
| 1469 } | |
| 1470 | |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1471 url_buffer = g_strdup(url_text); |
|
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1472 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1473 /* If they have a homepage link, MSN masks it such that we need to |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1474 * fetch the url out before gaim_markup_strip_html() nukes it */ |
| 13389 | 1475 /* I don't think this works with the new spaces profiles - Stu 3/2/06 */ |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1476 if ((p = strstr(url_text, |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1477 "Take a look at my </font><A class=viewDesc title=\"")) != NULL) |
| 6516 | 1478 { |
| 1479 p += 50; | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1480 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1481 if ((q = strchr(p, '"')) != NULL) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1482 user_url = g_strndup(p, q - p); |
| 6516 | 1483 } |
| 1484 | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1485 /* |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1486 * gaim_markup_strip_html() doesn't strip out character entities like |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1487 * and · |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1488 */ |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1489 while ((p = strstr(url_buffer, " ")) != NULL) |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1490 { |
| 9243 | 1491 *p = ' '; /* Turn 's into ordinary blanks */ |
| 1492 p += 1; | |
| 1493 memmove(p, p + 5, strlen(p + 5)); | |
| 1494 url_buffer[strlen(url_buffer) - 5] = '\0'; | |
| 6516 | 1495 } |
| 1496 | |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1497 while ((p = strstr(url_buffer, "·")) != NULL) |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1498 { |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1499 memmove(p, p + 6, strlen(p + 6)); |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1500 url_buffer[strlen(url_buffer) - 6] = '\0'; |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1501 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1502 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1503 /* Nuke the nasty \r's that just get in the way */ |
| 11920 | 1504 gaim_str_strip_char(url_buffer, '\r'); |
| 6516 | 1505 |
|
8735
92cbf9713795
[gaim-migrate @ 9490]
Christian Hammond <chipx86@chipx86.com>
parents:
8713
diff
changeset
|
1506 /* MSN always puts in ' for apostrophes...replace them */ |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1507 while ((p = strstr(url_buffer, "'")) != NULL) |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1508 { |
| 6516 | 1509 *p = '\''; |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1510 memmove(p + 1, p + 5, strlen(p + 5)); |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1511 url_buffer[strlen(url_buffer) - 4] = '\0'; |
| 6516 | 1512 } |
| 1513 | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1514 /* Nuke the html, it's easier than trying to parse the horrid stuff */ |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1515 stripped = gaim_markup_strip_html(url_buffer); |
| 7675 | 1516 stripped_len = strlen(stripped); |
| 6516 | 1517 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1518 gaim_debug_misc("msn", "stripped = %p\n", stripped); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1519 gaim_debug_misc("msn", "url_buffer = %p\n", url_buffer); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1520 |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1521 /* Gonna re-use the memory we've already got for url_buffer */ |
| 7675 | 1522 /* No we're not. */ |
| 1523 s = g_string_sized_new(strlen(url_buffer)); | |
| 13389 | 1524 s2 = g_string_sized_new(strlen(url_buffer)); |
| 6516 | 1525 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1526 /* Extract their Name and put it in */ |
| 13389 | 1527 MSN_GOT_INFO_GET_FIELD("Name", _("Name")) |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1528 |
| 13389 | 1529 /* General */ |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1530 MSN_GOT_INFO_GET_FIELD("Nickname", _("Nickname")); |
| 13389 | 1531 MSN_GOT_INFO_GET_FIELD("Age", _("Age")); |
| 1532 MSN_GOT_INFO_GET_FIELD("Gender", _("Gender")); | |
| 1533 MSN_GOT_INFO_GET_FIELD("Occupation", _("Occupation")); | |
| 1534 MSN_GOT_INFO_GET_FIELD("Location", _("Location")); | |
| 6516 | 1535 |
| 13389 | 1536 /* Extract their Interests and put it in */ |
| 7675 | 1537 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 13389 | 1538 "\nInterests\t", 0, " (/default.aspx?page=searchresults", 0, |
| 1539 "Undisclosed", _("Hobbies and Interests") /* _("Interests") */, | |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1540 0, NULL, NULL); |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1541 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1542 if (found) |
| 13389 | 1543 sect_info = TRUE; |
| 1544 | |
| 1545 MSN_GOT_INFO_GET_FIELD("More about me", _("A Little About Me")); | |
| 1546 | |
| 1547 if (sect_info) | |
| 1548 { | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1549 /* trim off the trailing "<br>\n" */ |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1550 g_string_truncate(s, strlen(s->str) - 5); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1551 g_string_append_printf(s2, _("%s<b>General</b><br>%s"), |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1552 (*tooltip_text) ? "<hr>" : "", s->str); |
| 13389 | 1553 s = g_string_truncate(s, 0); |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1554 has_info = TRUE; |
| 13389 | 1555 sect_info = FALSE; |
| 1556 } | |
| 6516 | 1557 |
| 13389 | 1558 |
| 1559 /* Social */ | |
| 1560 MSN_GOT_INFO_GET_FIELD("Marital status", _("Marital Status")); | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1561 MSN_GOT_INFO_GET_FIELD("Interested in", _("Interests")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1562 MSN_GOT_INFO_GET_FIELD("Pets", _("Pets")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1563 MSN_GOT_INFO_GET_FIELD("Hometown", _("Hometown")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1564 MSN_GOT_INFO_GET_FIELD("Places lived", _("Places Lived")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1565 MSN_GOT_INFO_GET_FIELD("Fashion", _("Fashion")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1566 MSN_GOT_INFO_GET_FIELD("Humor", _("Humor")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1567 MSN_GOT_INFO_GET_FIELD("Music", _("Music")); |
| 13389 | 1568 MSN_GOT_INFO_GET_FIELD("Favorite quote", _("Favorite Quote")); |
| 1569 | |
| 1570 if (sect_info) | |
| 1571 { | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1572 g_string_append_printf(s2, _("%s<b>Social</b><br>%s"), has_info ? "<br><hr>" : "", s->str); |
| 13389 | 1573 s = g_string_truncate(s, 0); |
| 1574 has_info = TRUE; | |
| 1575 sect_info = FALSE; | |
| 1576 } | |
| 1577 | |
| 1578 /* Contact Info */ | |
| 1579 /* Personal */ | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1580 MSN_GOT_INFO_GET_FIELD("Name", _("Name")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1581 MSN_GOT_INFO_GET_FIELD("Significant other", _("Significant Other")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1582 MSN_GOT_INFO_GET_FIELD("Home phone", _("Home Phone")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1583 MSN_GOT_INFO_GET_FIELD("Home phone 2", _("Home Phone 2")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1584 MSN_GOT_INFO_GET_FIELD("Home address", _("Home Address")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1585 MSN_GOT_INFO_GET_FIELD("Personal Mobile", _("Personal Mobile")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1586 MSN_GOT_INFO_GET_FIELD("Home fax", _("Home Fax")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1587 MSN_GOT_INFO_GET_FIELD("Personal e-mail", _("Personal E-Mail")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1588 MSN_GOT_INFO_GET_FIELD("Personal IM", _("Personal IM")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1589 MSN_GOT_INFO_GET_FIELD("Birthday", _("Birthday")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1590 MSN_GOT_INFO_GET_FIELD("Anniversary", _("Anniversary")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1591 MSN_GOT_INFO_GET_FIELD("Notes", _("Notes")); |
| 13389 | 1592 |
| 1593 if (sect_info) | |
| 1594 { | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1595 personal = g_strdup_printf(_("<br><b>Personal</b><br>%s"), s->str); |
| 13389 | 1596 s = g_string_truncate(s, 0); |
| 1597 sect_info = FALSE; | |
| 1598 } | |
| 1599 | |
| 1600 /* Business */ | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1601 MSN_GOT_INFO_GET_FIELD("Name", _("Name")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1602 MSN_GOT_INFO_GET_FIELD("Job title", _("Job Title")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1603 MSN_GOT_INFO_GET_FIELD("Company", _("Company")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1604 MSN_GOT_INFO_GET_FIELD("Department", _("Department")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1605 MSN_GOT_INFO_GET_FIELD("Profession", _("Profession")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1606 MSN_GOT_INFO_GET_FIELD("Work phone 1", _("Work Phone")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1607 MSN_GOT_INFO_GET_FIELD("Work phone 2", _("Work Phone 2")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1608 MSN_GOT_INFO_GET_FIELD("Work address", _("Work Address")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1609 MSN_GOT_INFO_GET_FIELD("Work mobile", _("Work Mobile")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1610 MSN_GOT_INFO_GET_FIELD("Work pager", _("Work Pager")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1611 MSN_GOT_INFO_GET_FIELD("Work fax", _("Work Fax")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1612 MSN_GOT_INFO_GET_FIELD("Work e-mail", _("Work E-Mail")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1613 MSN_GOT_INFO_GET_FIELD("Work IM", _("Work IM")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1614 MSN_GOT_INFO_GET_FIELD("Start date", _("Start Date")); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1615 MSN_GOT_INFO_GET_FIELD("Notes", _("Notes")); |
| 13389 | 1616 |
| 1617 if (sect_info) | |
| 1618 { | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1619 business = g_strdup_printf(_("<br><b>Business</b><br>%s"), s->str); |
| 13389 | 1620 s = g_string_truncate(s, 0); |
| 1621 sect_info = FALSE; | |
| 1622 } | |
| 1623 | |
| 1624 if ((personal != NULL) || (business != NULL)) | |
| 1625 { | |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1626 /* trim off the trailing "<br>\n" */ |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1627 g_string_truncate(s, strlen(s->str) - 5); |
|
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1628 |
| 13389 | 1629 has_info = TRUE; |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1630 g_string_append_printf(s2, _("<hr><b>Contact Info</b>%s%s"), |
| 13389 | 1631 personal ? personal : "", |
| 1632 business ? business : ""); | |
| 1633 } | |
| 1634 | |
| 1635 g_free(personal); | |
| 1636 g_free(business); | |
| 1637 g_string_free(s, TRUE); | |
| 1638 s = s2; | |
| 1639 | |
| 1640 #if 0 /* these probably don't show up any more */ | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1641 /* |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1642 * The fields, 'A Little About Me', 'Favorite Things', 'Hobbies |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1643 * and Interests', 'Favorite Quote', and 'My Homepage' may or may |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1644 * not appear, in any combination. However, they do appear in |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1645 * certain order, so we can successively search to pin down the |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1646 * distinct values. |
| 6516 | 1647 */ |
| 1648 | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1649 /* Check if they have A Little About Me */ |
| 7675 | 1650 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1651 " A Little About Me \n\n", 0, "Favorite Things", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1652 _("A Little About Me"), 0, NULL, NULL); |
| 6516 | 1653 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1654 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1655 { |
| 7675 | 1656 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1657 " A Little About Me \n\n", 0, "Hobbies and Interests", '\n', |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1658 NULL, _("A Little About Me"), 0, NULL, NULL); |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1659 } |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1660 |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1661 if (!found) |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1662 { |
| 7675 | 1663 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1664 " A Little About Me \n\n", 0, "Favorite Quote", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1665 _("A Little About Me"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1666 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1667 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1668 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1669 { |
| 7675 | 1670 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1671 " A Little About Me \n\n", 0, "My Homepage \n\nTake a look", |
| 1672 '\n', | |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1673 NULL, _("A Little About Me"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1674 } |
| 6516 | 1675 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1676 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1677 { |
| 7675 | 1678 gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1679 " A Little About Me \n\n", 0, "last updated", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1680 _("A Little About Me"), 0, NULL, NULL); |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1681 } |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1682 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1683 if (found) |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1684 has_info = TRUE; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1685 |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1686 /* Check if they have Favorite Things */ |
| 7675 | 1687 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1688 " Favorite Things \n\n", 0, "Hobbies and Interests", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1689 _("Favorite Things"), 0, NULL, NULL); |
|
7095
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1690 |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1691 if (!found) |
|
c8bf2da398e3
[gaim-migrate @ 7660]
Christian Hammond <chipx86@chipx86.com>
parents:
7094
diff
changeset
|
1692 { |
| 7675 | 1693 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1694 " Favorite Things \n\n", 0, "Favorite Quote", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1695 _("Favorite Things"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1696 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1697 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1698 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1699 { |
| 7675 | 1700 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1701 " Favorite Things \n\n", 0, "My Homepage \n\nTake a look", '\n', |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1702 NULL, _("Favorite Things"), 0, NULL, NULL); |
| 6516 | 1703 } |
| 1704 | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1705 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1706 { |
| 7675 | 1707 gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1708 " Favorite Things \n\n", 0, "last updated", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1709 _("Favorite Things"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1710 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1711 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1712 if (found) |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1713 has_info = TRUE; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1714 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1715 /* Check if they have Hobbies and Interests */ |
| 7675 | 1716 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1717 " Hobbies and Interests \n\n", 0, "Favorite Quote", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1718 _("Hobbies and Interests"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1719 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1720 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1721 { |
| 7675 | 1722 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1723 " Hobbies and Interests \n\n", 0, "My Homepage \n\nTake a look", |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1724 '\n', NULL, _("Hobbies and Interests"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1725 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1726 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1727 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1728 { |
| 7675 | 1729 gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1730 " Hobbies and Interests \n\n", 0, "last updated", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1731 _("Hobbies and Interests"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1732 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1733 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1734 if (found) |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1735 has_info = TRUE; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1736 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1737 /* Check if they have Favorite Quote */ |
| 7675 | 1738 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1739 "Favorite Quote \n\n", 0, "My Homepage \n\nTake a look", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1740 _("Favorite Quote"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1741 |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1742 if (!found) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1743 { |
| 7675 | 1744 gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1745 "Favorite Quote \n\n", 0, "last updated", '\n', NULL, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1746 _("Favorite Quote"), 0, NULL, NULL); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1747 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1748 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1749 if (found) |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1750 has_info = TRUE; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1751 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1752 /* Extract the last updated date and put it in */ |
| 7675 | 1753 found = gaim_markup_extract_info_field(stripped, stripped_len, s, |
| 9243 | 1754 " last updated:", 1, "\n", 0, NULL, _("Last Updated"), 0, |
|
13104
e1e5462b7d81
[gaim-migrate @ 15466]
Richard Laager <rlaager@wiktel.com>
parents:
13020
diff
changeset
|
1755 NULL, msn_info_date_reformat); |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1756 |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1757 if (found) |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1758 has_info = TRUE; |
| 13389 | 1759 #endif |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1760 |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1761 /* If we were able to fetch a homepage url earlier, stick it in there */ |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1762 if (user_url != NULL) |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1763 { |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1764 g_snprintf(buf, sizeof(buf), |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1765 "<b>%s:</b><br><a href=\"%s\">%s</a><br>\n", |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1766 _("Homepage"), user_url, user_url); |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1767 |
| 7675 | 1768 g_string_append(s, buf); |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1769 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1770 g_free(user_url); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1771 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1772 has_info = TRUE; |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1773 } |
|
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1774 |
| 9510 | 1775 if (!has_info) |
| 1776 { | |
| 1777 /* MSN doesn't actually distinguish between "unknown member" and | |
| 1778 * a known member with an empty profile. Try to explain this fact. | |
| 1779 * Note that if we have a nonempty tooltip_text, we know the user | |
| 1780 * exists. | |
| 1781 */ | |
| 13389 | 1782 /* This doesn't work with the new spaces profiles - Stu 3/2/06 |
| 9510 | 1783 char *p = strstr(url_buffer, "Unknown Member </TITLE>"); |
| 13389 | 1784 * This might not work for long either ... */ |
| 1785 char *p = strstr(url_buffer, "form id=\"SpacesSearch\" name=\"SpacesSearch\""); | |
| 9510 | 1786 GaimBuddy *b = gaim_find_buddy |
| 1787 (gaim_connection_get_account(info_data->gc), info_data->name); | |
| 1788 g_string_append_printf(s, "<br><b>%s</b><br>%s<br><br>", | |
| 1789 _("Error retrieving profile"), | |
| 1790 ((p && b)? | |
| 1791 _("The user has not created a public profile."): | |
| 1792 p? _("MSN reported not being able to find the user's profile. " | |
| 1793 "This either means that the user does not exist, " | |
| 1794 "or that the user exists " | |
| 1795 "but has not created a public profile."): | |
| 1796 _("Gaim could not find " /* This should never happen */ | |
| 1797 "any information in the user's profile. " | |
| 1798 "The user most likely does not exist."))); | |
| 9243 | 1799 } |
| 9510 | 1800 /* put a link to the actual profile URL */ |
|
13544
46559ab11aed
[gaim-migrate @ 15921]
Richard Laager <rlaager@wiktel.com>
parents:
13481
diff
changeset
|
1801 g_string_append_printf(s, _("<hr><b>%s:</b> "), _("Profile URL")); |
| 9510 | 1802 g_string_append_printf(s, "<br><a href=\"%s%s\">%s%s</a><br>", |
| 1803 PROFILE_URL, info_data->name, PROFILE_URL, info_data->name); | |
| 1804 | |
|
6859
17514a2f976a
[gaim-migrate @ 7404]
Christian Hammond <chipx86@chipx86.com>
parents:
6858
diff
changeset
|
1805 /* Finish it off, and show it to them */ |
| 7675 | 1806 g_string_append(s, "</body></html>\n"); |
|
7062
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1807 |
| 9243 | 1808 #if PHOTO_SUPPORT |
| 9569 | 1809 /* Find the URL to the photo; must be before the marshalling [Bug 994207] */ |
| 1810 photo_url_text = msn_get_photo_url(url_text); | |
| 9243 | 1811 |
| 1812 /* Marshall the existing state */ | |
| 1813 info2_data = g_malloc0(sizeof(MsnGetInfoStepTwoData)); | |
| 1814 info2_data->info_data = info_data; | |
| 1815 info2_data->stripped = stripped; | |
| 1816 info2_data->url_buffer = url_buffer; | |
| 1817 info2_data->s = s; | |
| 1818 info2_data->photo_url_text = photo_url_text; | |
| 1819 info2_data->tooltip_text = tooltip_text; | |
| 9510 | 1820 info2_data->title = title; |
| 9243 | 1821 |
| 1822 /* Try to put the photo in there too, if there's one */ | |
| 10044 | 1823 if (photo_url_text) |
| 1824 { | |
| 9243 | 1825 gaim_url_fetch(photo_url_text, FALSE, NULL, FALSE, msn_got_photo, |
| 10044 | 1826 info2_data); |
| 1827 } | |
| 1828 else | |
| 1829 { | |
| 9243 | 1830 /* Emulate a callback */ |
| 1831 msn_got_photo(info2_data, NULL, 0); | |
| 1832 } | |
| 1833 } | |
| 1834 | |
| 10044 | 1835 static void |
| 1836 msn_got_photo(void *data, const char *url_text, size_t len) | |
| 9243 | 1837 { |
| 1838 MsnGetInfoStepTwoData *info2_data = (MsnGetInfoStepTwoData *)data; | |
| 1839 int id = -1; | |
| 1840 | |
| 1841 /* Unmarshall the saved state */ | |
| 1842 MsnGetInfoData *info_data = info2_data->info_data; | |
| 1843 char *stripped = info2_data->stripped; | |
| 1844 char *url_buffer = info2_data->url_buffer; | |
| 1845 GString *s = info2_data->s; | |
| 1846 char *photo_url_text = info2_data->photo_url_text; | |
| 1847 char *tooltip_text = info2_data->tooltip_text; | |
| 1848 | |
|
13479
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1849 /* Make sure the connection is still valid if we got here by fetching a photo url */ |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1850 if (url_text && |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1851 g_list_find(gaim_connections_get_all(), info_data->gc) == NULL) |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1852 { |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1853 gaim_debug_warning("msn", "invalid connection. ignoring buddy photo info.\n"); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1854 g_free(stripped); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1855 g_free(url_buffer); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1856 g_string_free(s, TRUE); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1857 g_free(tooltip_text); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1858 g_free(info_data->name); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1859 g_free(info_data); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1860 g_free(photo_url_text); |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1861 g_free(info2_data); |
|
13481
56898561b8a9
[gaim-migrate @ 15857]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13479
diff
changeset
|
1862 |
|
13479
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1863 return; |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1864 } |
|
90740e70af91
[gaim-migrate @ 15855]
Evan Schoenberg <evan.s@dreskin.net>
parents:
13390
diff
changeset
|
1865 |
| 9243 | 1866 /* Try to put the photo in there too, if there's one and is readable */ |
| 10044 | 1867 if (data && url_text && len != 0) |
| 1868 { | |
| 9243 | 1869 if (strstr(url_text, "400 Bad Request") |
| 10044 | 1870 || strstr(url_text, "403 Forbidden") |
| 1871 || strstr(url_text, "404 Not Found")) | |
| 1872 { | |
| 9243 | 1873 |
| 1874 gaim_debug_info("msn", "Error getting %s: %s\n", | |
| 1875 photo_url_text, url_text); | |
| 10044 | 1876 } |
| 1877 else | |
| 1878 { | |
| 9243 | 1879 char buf[1024]; |
| 1880 gaim_debug_info("msn", "%s is %d bytes\n", photo_url_text, len); | |
| 1881 id = gaim_imgstore_add(url_text, len, NULL); | |
| 1882 g_snprintf(buf, sizeof(buf), "<img id=\"%d\"><br>", id); | |
| 1883 g_string_prepend(s, buf); | |
| 1884 } | |
| 1885 } | |
| 1886 | |
| 1887 /* We continue here from msn_got_info, as if nothing has happened */ | |
| 1888 #endif | |
| 1889 | |
| 9510 | 1890 g_string_prepend(s, tooltip_text); |
|
11533
c9b815aeddc1
[gaim-migrate @ 13782]
Richard Laager <rlaager@wiktel.com>
parents:
11531
diff
changeset
|
1891 gaim_notify_userinfo(info_data->gc, info_data->name, s->str, NULL, NULL); |
|
7062
86ed8b2aa665
[gaim-migrate @ 7626]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1892 |
| 6516 | 1893 g_free(stripped); |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1894 g_free(url_buffer); |
| 7675 | 1895 g_string_free(s, TRUE); |
| 9243 | 1896 g_free(tooltip_text); |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1897 g_free(info_data->name); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1898 g_free(info_data); |
| 9243 | 1899 #if PHOTO_SUPPORT |
| 1900 g_free(photo_url_text); | |
| 1901 g_free(info2_data); | |
| 1902 if (id != -1) | |
| 1903 gaim_imgstore_unref(id); | |
| 1904 #endif | |
| 6516 | 1905 } |
| 1906 | |
| 1907 static void | |
| 1908 msn_get_info(GaimConnection *gc, const char *name) | |
| 1909 { | |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1910 MsnGetInfoData *data; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1911 char *url; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1912 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1913 data = g_new0(MsnGetInfoData, 1); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1914 data->gc = gc; |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1915 data->name = g_strdup(name); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1916 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1917 url = g_strdup_printf("%s%s", PROFILE_URL, name); |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1918 |
|
7094
2343c3aa1dec
[gaim-migrate @ 7659]
Christian Hammond <chipx86@chipx86.com>
parents:
7062
diff
changeset
|
1919 gaim_url_fetch(url, FALSE, |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1920 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
1921 TRUE, msn_got_info, data); |
|
7104
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1922 |
|
7700a28929bd
[gaim-migrate @ 7669]
Christian Hammond <chipx86@chipx86.com>
parents:
7095
diff
changeset
|
1923 g_free(url); |
| 6516 | 1924 } |
| 1925 | |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1926 static gboolean msn_load(GaimPlugin *plugin) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1927 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1928 msn_notification_init(); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1929 msn_switchboard_init(); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1930 msn_sync_init(); |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1931 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1932 return TRUE; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1933 } |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1934 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1935 static gboolean msn_unload(GaimPlugin *plugin) |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1936 { |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1937 msn_notification_end(); |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1938 msn_switchboard_end(); |
|
9193
502707ca1836
[gaim-migrate @ 9988]
Christian Hammond <chipx86@chipx86.com>
parents:
9158
diff
changeset
|
1939 msn_sync_end(); |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1940 |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1941 return TRUE; |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1942 } |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
1943 |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
1944 static GaimPluginProtocolInfo prpl_info = |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
1945 { |
| 9308 | 1946 OPT_PROTO_MAIL_CHECK, |
| 9475 | 1947 NULL, /* user_splits */ |
| 1948 NULL, /* protocol_options */ | |
| 9555 | 1949 {"png", 0, 0, 96, 96, GAIM_ICON_SCALE_SEND}, /* icon_spec */ |
| 9475 | 1950 msn_list_icon, /* list_icon */ |
| 1951 msn_list_emblems, /* list_emblems */ | |
| 1952 msn_status_text, /* status_text */ | |
| 1953 msn_tooltip_text, /* tooltip_text */ | |
| 9951 | 1954 msn_status_types, /* away_states */ |
| 1955 msn_blist_node_menu, /* blist_node_menu */ | |
| 9475 | 1956 NULL, /* chat_info */ |
| 9754 | 1957 NULL, /* chat_info_defaults */ |
| 9951 | 1958 msn_login, /* login */ |
| 1959 msn_close, /* close */ | |
| 9475 | 1960 msn_send_im, /* send_im */ |
| 1961 NULL, /* set_info */ | |
| 1962 msn_send_typing, /* send_typing */ | |
| 1963 msn_get_info, /* get_info */ | |
| 9967 | 1964 msn_set_status, /* set_away */ |
| 9475 | 1965 msn_set_idle, /* set_idle */ |
| 1966 NULL, /* change_passwd */ | |
| 1967 msn_add_buddy, /* add_buddy */ | |
| 1968 NULL, /* add_buddies */ | |
| 1969 msn_rem_buddy, /* remove_buddy */ | |
| 1970 NULL, /* remove_buddies */ | |
| 1971 msn_add_permit, /* add_permit */ | |
| 1972 msn_add_deny, /* add_deny */ | |
| 1973 msn_rem_permit, /* rem_permit */ | |
| 1974 msn_rem_deny, /* rem_deny */ | |
| 9951 | 1975 msn_set_permit_deny, /* set_permit_deny */ |
| 9475 | 1976 NULL, /* join_chat */ |
| 1977 NULL, /* reject chat invite */ | |
| 10463 | 1978 NULL, /* get_chat_name */ |
| 9475 | 1979 msn_chat_invite, /* chat_invite */ |
| 1980 msn_chat_leave, /* chat_leave */ | |
| 1981 NULL, /* chat_whisper */ | |
| 1982 msn_chat_send, /* chat_send */ | |
| 1983 msn_keepalive, /* keepalive */ | |
| 1984 NULL, /* register_user */ | |
| 1985 NULL, /* get_cb_info */ | |
| 1986 NULL, /* get_cb_away */ | |
| 1987 NULL, /* alias_buddy */ | |
| 1988 msn_group_buddy, /* group_buddy */ | |
| 1989 msn_rename_group, /* rename_group */ | |
| 1990 NULL, /* buddy_free */ | |
| 1991 msn_convo_closed, /* convo_closed */ | |
| 1992 msn_normalize, /* normalize */ | |
| 1993 msn_set_buddy_icon, /* set_buddy_icon */ | |
| 1994 msn_remove_group, /* remove_group */ | |
| 1995 NULL, /* get_cb_real_name */ | |
| 1996 NULL, /* set_chat_topic */ | |
| 1997 NULL, /* find_blist_chat */ | |
| 1998 NULL, /* roomlist_get_list */ | |
| 1999 NULL, /* roomlist_cancel */ | |
| 2000 NULL, /* roomlist_expand_category */ | |
| 10116 | 2001 msn_can_receive_file, /* can_receive_file */ |
|
12143
cbebda5f019c
[gaim-migrate @ 14444]
Richard Laager <rlaager@wiktel.com>
parents:
11992
diff
changeset
|
2002 msn_send_file, /* send_file */ |
|
12600
e856f985a0b9
[gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents:
12595
diff
changeset
|
2003 msn_new_xfer, /* new_xfer */ |
|
12645
fc28451f5d96
[gaim-migrate @ 14983]
Richard Laager <rlaager@wiktel.com>
parents:
12600
diff
changeset
|
2004 NULL, /* offline_message */ |
|
12600
e856f985a0b9
[gaim-migrate @ 14934]
Richard Laager <rlaager@wiktel.com>
parents:
12595
diff
changeset
|
2005 NULL, /* whiteboard_prpl_ops */ |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2006 }; |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2007 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2008 static GaimPluginInfo info = |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2009 { |
| 9943 | 2010 GAIM_PLUGIN_MAGIC, |
| 2011 GAIM_MAJOR_VERSION, | |
| 2012 GAIM_MINOR_VERSION, | |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2013 GAIM_PLUGIN_PROTOCOL, /**< type */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2014 NULL, /**< ui_requirement */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2015 0, /**< flags */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2016 NULL, /**< dependencies */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2017 GAIM_PRIORITY_DEFAULT, /**< priority */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2018 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2019 "prpl-msn", /**< id */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2020 "MSN", /**< name */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2021 VERSION, /**< version */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2022 /** summary */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2023 N_("MSN Protocol Plugin"), |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2024 /** description */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2025 N_("MSN Protocol Plugin"), |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2026 "Christian Hammond <chipx86@gnupdate.org>", /**< author */ |
|
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6228
diff
changeset
|
2027 GAIM_WEBSITE, /**< homepage */ |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2028 |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
2029 msn_load, /**< load */ |
|
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
2030 msn_unload, /**< unload */ |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2031 NULL, /**< destroy */ |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2032 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2033 NULL, /**< ui_info */ |
|
8808
bbd8cdaf0ad5
[gaim-migrate @ 9570]
Christian Hammond <chipx86@chipx86.com>
parents:
8749
diff
changeset
|
2034 &prpl_info, /**< extra_info */ |
| 10487 | 2035 NULL, /**< prefs_info */ |
| 9015 | 2036 msn_actions |
|
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2037 }; |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2038 |
|
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5191
diff
changeset
|
2039 static void |
|
5793
952710ac6635
[gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
2040 init_plugin(GaimPlugin *plugin) |
| 2086 | 2041 { |
|
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2042 GaimAccountOption *option; |
| 3572 | 2043 |
|
13705
2f7b356812bc
[gaim-migrate @ 16108]
Richard Laager <rlaager@wiktel.com>
parents:
13634
diff
changeset
|
2044 option = gaim_account_option_string_new(_("Server"), "server", |
|
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2045 MSN_SERVER); |
|
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2046 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
|
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2047 option); |
| 3572 | 2048 |
|
5638
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2049 option = gaim_account_option_int_new(_("Port"), "port", 1863); |
|
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2050 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
|
0bdfa28c678e
[gaim-migrate @ 6047]
Christian Hammond <chipx86@chipx86.com>
parents:
5626
diff
changeset
|
2051 option); |
| 2086 | 2052 |
|
9158
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
2053 option = gaim_account_option_bool_new(_("Use HTTP Method"), |
|
c30d81b4dd22
[gaim-migrate @ 9942]
Christian Hammond <chipx86@chipx86.com>
parents:
9092
diff
changeset
|
2054 "http_method", FALSE); |
|
7288
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
2055 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
|
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
2056 option); |
|
ff9127038a5a
[gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents:
7277
diff
changeset
|
2057 |
| 12886 | 2058 option = gaim_account_option_bool_new(_("Show custom smileys"), |
| 2059 "custom_smileys", TRUE); | |
| 2060 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, | |
| 2061 option); | |
| 2062 | |
| 11321 | 2063 gaim_cmd_register("nudge", "", GAIM_CMD_P_PRPL, |
| 2064 GAIM_CMD_FLAG_IM | GAIM_CMD_FLAG_PRPL_ONLY, | |
| 2065 "prpl-msn", msn_cmd_nudge, | |
|
12318
e346a085bb4f
[gaim-migrate @ 14622]
Richard Laager <rlaager@wiktel.com>
parents:
12243
diff
changeset
|
2066 _("nudge: nudge a user to get their attention"), NULL); |
| 11321 | 2067 |
| 10487 | 2068 gaim_prefs_remove("/plugins/prpl/msn"); |
| 2086 | 2069 } |
| 2070 | |
|
5793
952710ac6635
[gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
2071 GAIM_INIT_PLUGIN(msn, init_plugin, info); |
