libpurple/protocols/myspace/user.c

Mon, 13 Jul 2009 05:01:42 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Mon, 13 Jul 2009 05:01:42 +0000
changeset 27776
60d79d68cde1
parent 27635
0cd19038c417
child 29043
987e76be147e
child 29141
4096eace0197
child 29666
28a05d95e20d
permissions
-rw-r--r--

On MSN, pop up an "invite message" request similar to oscar, and send that
in the add request. We really should try and move this into the add buddy
dialog instead of an extra prompt.

Fixes #8503.

19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
1 /* MySpaceIM Protocol Plugin, header file
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
2 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
3 * Copyright (C) 2007, Jeff Connelly <jeff2@soc.pidgin.im>
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
4 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
5 * This program is free software; you can redistribute it and/or modify
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
6 * it under the terms of the GNU General Public License as published by
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
8 * (at your option) any later version.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
9 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
10 * This program is distributed in the hope that it will be useful,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
13 * GNU General Public License for more details.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
14 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
15 * You should have received a copy of the GNU General Public License
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
16 * along with this program; if not, write to the Free Software
20376
40eb7fd73b9a merge of 'f78451b4a2f7106eb8f8fa7275a7a29230593449'
Casey Harkins <charkins@pidgin.im>
parents: 19859 19795
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
18 */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
19
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
20 #include "myspace.h"
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
21
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
22 static void msim_check_username_availability_cb(PurpleConnection *gc, const char *username_to_check);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
23
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
24 static char *msim_username_to_set;
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
25
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
26 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
27 * Format the "now playing" indicator, showing the artist and song.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
28 *
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
29 * @return Return a new string (must be g_free()'d), or NULL.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
30 */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
31 static gchar *
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
32 msim_format_now_playing(const gchar *band, const gchar *song)
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
33 {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
34 if ((band && *band) || (song && *song)) {
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
35 return g_strdup_printf("%s - %s",
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
36 (band && *band) ? band : "Unknown Artist",
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
37 (song && *song) ? song : "Unknown Song");
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
38 } else {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
39 return NULL;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
40 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
41 }
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
42
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
43 /**
25502
40f87522e2d0 propagate from branch 'im.pidgin.pidgin' (head db75fad3c5a74a5d380131b678995c6a78c140cb)
Paul Aurich <darkrain42@pidgin.im>
parents: 24867 25240
diff changeset
44 * Get the MsimUser from a PurpleBuddy, optionally creating it if needed.
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
45 */
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
46 MsimUser *
24867
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 23517
diff changeset
47 msim_get_user_from_buddy(PurpleBuddy *buddy, gboolean create)
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
48 {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
49 MsimUser *user;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
50
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
51 if (!buddy) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
52 return NULL;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
53 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
54
26091
83f52ce0929f propagate from branch 'im.pidgin.pidgin' (head b4bbfacd7f2050d87deeda12ea7bb3adc3608cb7)
Paul Aurich <darkrain42@pidgin.im>
parents: 25855 25508
diff changeset
55 user = purple_buddy_get_protocol_data(buddy);
83f52ce0929f propagate from branch 'im.pidgin.pidgin' (head b4bbfacd7f2050d87deeda12ea7bb3adc3608cb7)
Paul Aurich <darkrain42@pidgin.im>
parents: 25855 25508
diff changeset
56 if (create && !user) {
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
57 /* No MsimUser for this buddy; make one. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
58
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
59 user = g_new0(MsimUser, 1);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
60 user->buddy = buddy;
27375
11cb6a210a20 As far as I can tell this line was accidentally removed in an explicit merge
Mark Doliner <markdoliner@pidgin.im>
parents: 26091
diff changeset
61 user->id = purple_blist_node_get_int(&buddy->node, "UserID");
25140
7c494d2bc5e4 propagate from branch 'im.pidgin.pidgin' (head 009f3ea551248605298fbf1b88d7a873b2a6c7a3)
Richard Laager <rlaager@pidgin.im>
parents: 25116 24946
diff changeset
62 purple_buddy_set_protocol_data(buddy, user);
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
63 }
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
64
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
65 return user;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
66 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
67
25324
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
68 void msim_user_free(MsimUser *user)
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
69 {
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
70 if (!user)
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
71 return;
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
72
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
73 g_free(user->client_info);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
74 g_free(user->gender);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
75 g_free(user->location);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
76 g_free(user->headline);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
77 g_free(user->display_name);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
78 g_free(user->username);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
79 g_free(user->band_name);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
80 g_free(user->song_name);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
81 g_free(user->image_url);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
82 g_free(user);
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
83 }
9a07ddd8cc86 A couple of memory leak fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25302
diff changeset
84
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
85 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
86 * Find and return an MsimUser * representing a user on the buddy list, or NULL.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
87 */
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
88 MsimUser *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
89 msim_find_user(MsimSession *session, const gchar *username)
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
90 {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
91 PurpleBuddy *buddy;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
92 MsimUser *user;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
93
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
94 buddy = purple_find_buddy(session->account, username);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
95 if (!buddy) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
96 return NULL;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
97 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
98
24867
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 23517
diff changeset
99 user = msim_get_user_from_buddy(buddy, TRUE);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
100
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
101 return user;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
102 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
103
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
104 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
105 * Append user information to a PurpleNotifyUserInfo, given an MsimUser.
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
106 * Used by msim_tooltip_text() and msim_get_info_cb() to show a user's profile.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
107 */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
108 void
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
109 msim_append_user_info(MsimSession *session, PurpleNotifyUserInfo *user_info, MsimUser *user, gboolean full)
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
110 {
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
111 PurplePresence *presence;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
112 gchar *str;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
113 guint cv;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
114
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
115 /* Useful to identify the account the tooltip refers to.
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
116 * Other prpls show this. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
117 if (user->username) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
118 purple_notify_user_info_add_pair(user_info, _("User"), user->username);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
119 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
120
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
121 /* a/s/l...the vitals */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
122 if (user->age) {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
123 char age[16];
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
124 g_snprintf(age, sizeof(age), "%d", user->age);
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
125 purple_notify_user_info_add_pair(user_info, _("Age"), age);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
126 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
127
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
128 if (user->gender && *user->gender) {
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
129 purple_notify_user_info_add_pair(user_info, _("Gender"), user->gender);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
130 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
131
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
132 if (user->location && *user->location) {
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
133 purple_notify_user_info_add_pair(user_info, _("Location"), user->location);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
134 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
135
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
136 /* Other information */
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
137 if (user->headline && *user->headline) {
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
138 purple_notify_user_info_add_pair(user_info, _("Headline"), user->headline);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
139 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
140
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
141 if (user->buddy != NULL) {
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
142 presence = purple_buddy_get_presence(user->buddy);
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
143
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
144 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) {
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
145 PurpleStatus *status;
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
146 const char *artist, *title;
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
147
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
148 status = purple_presence_get_status(presence, "tune");
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
149 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
150 artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
151
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
152 str = msim_format_now_playing(artist, title);
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
153 if (str && *str) {
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
154 purple_notify_user_info_add_pair(user_info, _("Song"), str);
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
155 }
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
156 g_free(str);
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
157 }
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
158 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
159
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
160 /* Note: total friends only available if looked up by uid, not username. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
161 if (user->total_friends) {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
162 char friends[16];
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
163 g_snprintf(friends, sizeof(friends), "%d", user->total_friends);
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
164 purple_notify_user_info_add_pair(user_info, _("Total Friends"), friends);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
165 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
166
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
167 if (full) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
168 /* Client information */
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
169 char *client = NULL;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
170
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
171 str = user->client_info;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
172 cv = user->client_cv;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
173
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
174 if (str && cv != 0) {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
175 client = g_strdup_printf("%s (build %d)", str, cv);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
176 } else if (str) {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
177 client = g_strdup(str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
178 } else if (cv) {
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
179 client = g_strdup_printf("Build %d", cv);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
180 }
20815
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
181 if (client && *client)
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
182 purple_notify_user_info_add_pair(user_info, _("Client Version"), client);
a6c11702ad56 Fix a few more memory leaks. Someone who has a myspace account should stare
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20404
diff changeset
183 g_free(client);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
184 }
25089
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
185
25116
cb60ad01e2e8 Keep track of the user ID in the MsimUser struct so that we have a copy
Mark Doliner <markdoliner@pidgin.im>
parents: 25115
diff changeset
186 if (full && user->id) {
25089
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
187 /* TODO: link to username, if available */
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
188 char *profile;
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
189 purple_notify_user_info_add_section_break(user_info);
25193
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
190 if (user->buddy != NULL)
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
191 profile = g_strdup_printf("<a href=\"http://myspace.com/%s\">%s</a>",
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
192 purple_buddy_get_name(user->buddy), _("View web profile"));
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
193 else
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
194 profile = g_strdup_printf("<a href=\"http://myspace.com/%d\">%s</a>",
f98a278fd233 Use the friendly/vanity url when it's available in myspace
Mark Doliner <markdoliner@pidgin.im>
parents: 25116
diff changeset
195 user->id, _("View web profile"));
25089
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
196 purple_notify_user_info_add_pair(user_info, NULL, profile);
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
197 g_free(profile);
b381e7e2a1cf Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <markdoliner@pidgin.im>
parents: 23517
diff changeset
198 }
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
199 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
200
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
201 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
202 * Callback for when a buddy icon finished being downloaded.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
203 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
204 static void
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
205 msim_downloaded_buddy_icon(PurpleUtilFetchUrlData *url_data,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
206 gpointer user_data,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
207 const gchar *url_text,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
208 gsize len,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
209 const gchar *error_message)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
210 {
25847
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
211 MsimUser *user = (MsimUser *)user_data;
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
212 const char *name = purple_buddy_get_name(user->buddy);
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
213 PurpleAccount *account;
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
214
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
215 purple_debug_info("msim_downloaded_buddy_icon",
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
216 "Downloaded %" G_GSIZE_FORMAT " bytes\n", len);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
217
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
218 if (!url_text) {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
219 purple_debug_info("msim_downloaded_buddy_icon",
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
220 "failed to download icon for %s",
25847
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
221 name);
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
222 return;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
223 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
224
25847
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
225 account = purple_buddy_get_account(user->buddy);
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
226 purple_buddy_icons_set_for_user(account, name,
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
227 g_memdup((gchar *)url_text, len), len,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
228 /* Use URL itself as buddy icon "checksum" (TODO: ETag) */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
229 user->image_url); /* checksum */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
230 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
231
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
232 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
233 * Set the currently playing song artist and or title.
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
234 *
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
235 * @param user User associated with the now playing information.
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
236 *
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
237 * @param new_artist New artist to set, or NULL/empty to not change artist.
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
238 *
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
239 * @param new_title New title to set, or NULL/empty to not change title.
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
240 *
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
241 * If new_artist and new_title are NULL/empty, deactivate PURPLE_STATUS_TUNE.
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
242 *
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
243 * This function is useful because it lets you set the artist or title
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
244 * individually, which purple_prpl_got_user_status() doesn't do.
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
245 */
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
246 static void msim_set_artist_or_title(MsimUser *user, const char *new_artist, const char *new_title)
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
247 {
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
248 PurplePresence *presence;
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
249 PurpleAccount *account;
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
250 const char *prev_artist, *prev_title;
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
251 const char *name;
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
252
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
253 if (user->buddy == NULL)
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
254 /* User not on buddy list so nothing to do */
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
255 return;
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
256
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
257 prev_artist = NULL;
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
258 prev_title = NULL;
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
259
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
260 if (new_artist && !*new_artist)
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
261 new_artist = NULL;
25115
53ea7403c0a8 Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <markdoliner@pidgin.im>
parents: 25089
diff changeset
262 if (new_title && !*new_title)
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
263 new_title = NULL;
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
264
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
265 account = purple_buddy_get_account(user->buddy);
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
266 name = purple_buddy_get_name(user->buddy);
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
267
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
268 if (!new_artist && !new_title) {
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
269 purple_prpl_got_user_status_deactive(account, name, "tune");
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
270 return;
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
271 }
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
272
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
273 presence = purple_buddy_get_presence(user->buddy);
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
274
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
275 if (purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_TUNE)) {
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
276 PurpleStatus *status;
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
277
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
278 status = purple_presence_get_status(presence, "tune");
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
279 prev_title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
280 prev_artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
281 }
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
282
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
283 if (!new_artist)
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
284 new_artist = prev_artist;
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
285
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
286 if (!new_title)
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
287 new_title = prev_title;
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
288
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
289 purple_prpl_got_user_status(account, name, "tune",
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
290 PURPLE_TUNE_TITLE, new_title,
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
291 PURPLE_TUNE_ARTIST, new_artist,
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
292 NULL);
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
293 }
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
294
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
295 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
296 * Store a field of information about a buddy.
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
297 *
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
298 * @param key_str Key to store.
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
299 * @param value_str Value string, either user takes ownership of this string
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
300 * or it is freed if MsimUser doesn't store the string.
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
301 * @param user User to store data in. Existing data will be replaced.
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
302 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
303 static void
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
304 msim_store_user_info_each(const gchar *key_str, gchar *value_str, MsimUser *user)
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
305 {
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
306 const char *name = user->buddy ? purple_buddy_get_name(user->buddy) : NULL;
25847
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
307
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
308 if (g_str_equal(key_str, "UserID") || g_str_equal(key_str, "ContactID")) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
309 /* Save to buddy list, if it exists, for quick cached uid lookup with msim_uid2username_from_blist(). */
25116
cb60ad01e2e8 Keep track of the user ID in the MsimUser struct so that we have a copy
Mark Doliner <markdoliner@pidgin.im>
parents: 25115
diff changeset
310 user->id = atol(value_str);
25240
c8093ec246f0 Fix a few small memleaks
Mark Doliner <markdoliner@pidgin.im>
parents: 25233
diff changeset
311 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
312 if (user->buddy)
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
313 {
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
314 purple_debug_info("msim", "associating uid %s with username %s\n", key_str, name);
25847
a1c8c5a23b6d explicit merge of '077b4d6fc595fc99f5c76572f1b5d2e0343b2563'
Richard Laager <rlaager@pidgin.im>
parents: 25197 25846
diff changeset
315 purple_blist_node_set_int(PURPLE_BLIST_NODE(user->buddy), "UserID", user->id);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
316 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
317 /* Need to store in MsimUser, too? What if not on blist? */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
318 } else if (g_str_equal(key_str, "Age")) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
319 user->age = atol(value_str);
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
320 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
321 } else if (g_str_equal(key_str, "Gender")) {
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
322 g_free(user->gender);
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
323 user->gender = value_str;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
324 } else if (g_str_equal(key_str, "Location")) {
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
325 g_free(user->location);
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
326 user->location = value_str;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
327 } else if (g_str_equal(key_str, "TotalFriends")) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
328 user->total_friends = atol(value_str);
25240
c8093ec246f0 Fix a few small memleaks
Mark Doliner <markdoliner@pidgin.im>
parents: 25233
diff changeset
329 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
330 } else if (g_str_equal(key_str, "DisplayName")) {
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
331 g_free(user->display_name);
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
332 user->display_name = value_str;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
333 } else if (g_str_equal(key_str, "BandName")) {
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
334 msim_set_artist_or_title(user, value_str, NULL);
25240
c8093ec246f0 Fix a few small memleaks
Mark Doliner <markdoliner@pidgin.im>
parents: 25233
diff changeset
335 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
336 } else if (g_str_equal(key_str, "SongName")) {
22358
13b8409aea48 In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 21098
diff changeset
337 msim_set_artist_or_title(user, NULL, value_str);
25240
c8093ec246f0 Fix a few small memleaks
Mark Doliner <markdoliner@pidgin.im>
parents: 25233
diff changeset
338 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
339 } else if (g_str_equal(key_str, "UserName") || g_str_equal(key_str, "IMName") || g_str_equal(key_str, "NickName")) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
340 /* Ignore because PurpleBuddy knows this already */
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
341 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
342 } else if (g_str_equal(key_str, "ImageURL") || g_str_equal(key_str, "AvatarURL")) {
21071
801334f9576b Fix a warning
Kevin Stange <kstange@pidgin.im>
parents: 21058
diff changeset
343 const gchar *previous_url;
801334f9576b Fix a warning
Kevin Stange <kstange@pidgin.im>
parents: 21058
diff changeset
344
21058
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
345 if (user->temporary_user) {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
346 /* This user will be destroyed soon; don't try to look up its image or avatar,
21058
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
347 * since that won't return immediately and we will end up accessing freed data.
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
348 */
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
349 g_free(value_str);
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
350 return;
4ccbe30d873e When getting info on a myspace user not on the buddy list, a temporary
Evan Schoenberg <evands@pidgin.im>
parents: 20815
diff changeset
351 }
21098
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
352
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
353 if (user->temporary_user) {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
354 /* This user will be destroyed soon; don't try to look up its image or avatar,
21098
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
355 * since that won't return immediately and we will end up accessing freed data.
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
356 */
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
357 g_free(value_str);
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
358 return;
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
359 }
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
360
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
361 g_free(user->image_url);
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
362
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
363 user->image_url = value_str;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
364
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
365 /* Instead of showing 'no photo' picture, show nothing. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
366 if (g_str_equal(user->image_url, "http://x.myspace.com/images/no_pic.gif"))
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
367 {
24398
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
368 purple_buddy_icons_set_for_user(purple_buddy_get_account(user->buddy),
4865c2ee6ea8 Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23517
diff changeset
369 name, NULL, 0, NULL);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
370 return;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
371 }
21098
05dca51886e7 Fix this warning:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21076
diff changeset
372
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
373 /* TODO: use ETag for checksum */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
374 previous_url = purple_buddy_icons_get_checksum_for_user(user->buddy);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
375
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
376 /* Only download if URL changed */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
377 if (!previous_url || !g_str_equal(previous_url, user->image_url)) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
378 purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, msim_downloaded_buddy_icon, (gpointer)user);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
379 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
380 } else if (g_str_equal(key_str, "LastImageUpdated")) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
381 /* TODO: use somewhere */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
382 user->last_image_updated = atol(value_str);
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
383 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
384 } else if (g_str_equal(key_str, "Headline")) {
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
385 g_free(user->headline);
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
386 user->headline = value_str;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
387 } else {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
388 /* TODO: other fields in MsimUser */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
389 gchar *msg;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
390
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
391 msg = g_strdup_printf("msim_store_user_info_each: unknown field %s=%s",
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
392 key_str, value_str);
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
393 g_free(value_str);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
394
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
395 msim_unrecognized(NULL, NULL, msg);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
396
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
397 g_free(msg);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
398 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
399 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
400
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
401 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
402 * Save buddy information to the buddy list from a user info reply message.
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
403 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
404 * @param session
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
405 * @param msg The user information reply, with any amount of information.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
406 * @param user The structure to save to, or NULL to save in PurpleBuddy->proto_data.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
407 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
408 * Variable information is saved to the passed MsimUser structure. Permanent
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
409 * information (UserID) is stored in the blist node of the buddy list (and
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
410 * ends up in blist.xml, persisted to disk) if it exists.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
411 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
412 * If the function has no buddy information, this function
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
413 * is a no-op (and returns FALSE).
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
414 */
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
415 gboolean
25233
8a3fe5c4e2f4 Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25212
diff changeset
416 msim_store_user_info(MsimSession *session, const MsimMessage *msg, MsimUser *user)
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
417 {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
418 gchar *username;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
419 MsimMessage *body, *body_node;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
420
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
421 g_return_val_if_fail(MSIM_SESSION_VALID(session), FALSE);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
422 g_return_val_if_fail(msg != NULL, FALSE);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
423
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
424 body = msim_msg_get_dictionary(msg, "body");
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
425 if (!body) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
426 return FALSE;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
427 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
428
25212
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
429 if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN &&
25297
37cdf2a6d174 Fix a typo in a comment
Mark Doliner <markdoliner@pidgin.im>
parents: 25240
diff changeset
430 msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID)
37cdf2a6d174 Fix a typo in a comment
Mark Doliner <markdoliner@pidgin.im>
parents: 25240
diff changeset
431 {
25212
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
432 /*
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
433 * Some of this info will be available on the buddy list if the
25297
37cdf2a6d174 Fix a typo in a comment
Mark Doliner <markdoliner@pidgin.im>
parents: 25240
diff changeset
434 * user has themselves as their own buddy.
25212
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
435 *
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
436 * Much of the info is already available in MsimSession,
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
437 * stored in msim_we_are_logged_on().
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
438 */
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
439 gchar *tmpstr;
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
440
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
441 tmpstr = msim_msg_get_string(body, "ShowOnlyToList");
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
442 if (tmpstr != NULL) {
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
443 session->show_only_to_list = g_str_equal(tmpstr, "True");
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
444 g_free(tmpstr);
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
445 }
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
446
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
447 session->privacy_mode = msim_msg_get_integer(body, "PrivacyMode");
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
448 session->offline_message_mode = msim_msg_get_integer(body, "OfflineMessageMode");
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
449
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
450 msim_send(session,
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
451 "blocklist", MSIM_TYPE_BOOLEAN, TRUE,
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
452 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
453 "idlist", MSIM_TYPE_STRING,
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
454 g_strdup_printf("w%d|c%d",
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
455 session->show_only_to_list ? 1 : 0,
25302
c29df5c659cf This is a bitmask, and the "c" value here should be the least significant
Mark Doliner <markdoliner@pidgin.im>
parents: 25297
diff changeset
456 session->privacy_mode & 1),
25212
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
457 NULL);
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
458 } else if (msim_msg_get_integer(msg, "dsn") == MG_OWN_MYSPACE_INFO_DSN &&
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
459 msim_msg_get_integer(msg, "lid") == MG_OWN_MYSPACE_INFO_LID) {
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
460 /* TODO: same as above, but for MySpace info. */
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
461 }
9b3b9168c9e1 Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <markdoliner@pidgin.im>
parents: 25209
diff changeset
462
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
463 username = msim_msg_get_string(body, "UserName");
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
464
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
465 if (!username) {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
466 purple_debug_info("msim",
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
467 "msim_process_reply: not caching body, no UserName\n");
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
468 msim_msg_free(body);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
469 g_free(username);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
470 return FALSE;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
471 }
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
472
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
473 /* Null user = find and store in PurpleBuddy's proto_data */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
474 if (!user) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
475 user = msim_find_user(session, username);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
476 if (!user) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
477 msim_msg_free(body);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
478 g_free(username);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
479 return FALSE;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
480 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
481 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
482
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
483 /* TODO: make looping over MsimMessage's easier. */
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
484 for (body_node = body;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
485 body_node != NULL;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
486 body_node = msim_msg_get_next_element_node(body_node))
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
487 {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
488 const gchar *key_str;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
489 gchar *value_str;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
490 MsimMessageElement *elem;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
491
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
492 elem = (MsimMessageElement *)body_node->data;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
493 key_str = elem->name;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
494
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
495 value_str = msim_msg_get_string_from_element(elem);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
496 msim_store_user_info_each(key_str, value_str, user);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
497 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
498
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
499 msim_msg_free(body);
20402
a3a7cbfe1c1c Fix a few memory leaks in #3281 (details in ticket).
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 20376
diff changeset
500 g_free(username);
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
501
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
502 return TRUE;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
503 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
504
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
505 #if 0
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
506 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
507 * Return whether a given username is syntactically valid.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
508 * Note: does not actually check that the user exists.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
509 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
510 static gboolean
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
511 msim_is_valid_username(const gchar *user)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
512 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
513 return !msim_is_userid(user) && /* Not all numeric */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
514 strlen(user) <= MSIM_MAX_USERNAME_LENGTH
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
515 && strspn(user, "0123456789"
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
516 "abcdefghijklmnopqrstuvwxyz"
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
517 "_"
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
518 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == strlen(user);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
519 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
520 #endif
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
521
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
522 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
523 * Check if a string is a userid (all numeric).
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
524 *
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
525 * @param user The user id, email, or name.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
526 *
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
527 * @return TRUE if is userid, FALSE if not.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
528 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
529 gboolean
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
530 msim_is_userid(const gchar *user)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
531 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
532 g_return_val_if_fail(user != NULL, FALSE);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
533
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
534 return strspn(user, "0123456789") == strlen(user);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
535 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
536
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
537 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
538 * Check if a string is an email address (contains an @).
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
539 *
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
540 * @param user The user id, email, or name.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
541 *
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
542 * @return TRUE if is an email, FALSE if not.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
543 *
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
544 * This function is not intended to be used as a generic
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
545 * means of validating email addresses, but to distinguish
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
546 * between a user represented by an email address from
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
547 * other forms of identification.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
548 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
549 static gboolean
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
550 msim_is_email(const gchar *user)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
551 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
552 g_return_val_if_fail(user != NULL, FALSE);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
553
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
554 return strchr(user, '@') != NULL;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
555 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
556
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
557 /**
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
558 * Asynchronously lookup user information, calling callback when receive result.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
559 *
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
560 * @param session
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
561 * @param user The user id, email address, or username. Not freed.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
562 * @param cb Callback, called with user information when available.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
563 * @param data An arbitray data pointer passed to the callback.
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
564 */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
565 /* TODO: change to not use callbacks */
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
566 void
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
567 msim_lookup_user(MsimSession *session, const gchar *user, MSIM_USER_LOOKUP_CB cb, gpointer data)
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
568 {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
569 MsimMessage *body;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
570 gchar *field_name;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
571 guint rid, cmd, dsn, lid;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
572
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
573 g_return_if_fail(MSIM_SESSION_VALID(session));
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
574 g_return_if_fail(user != NULL);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
575 /* Callback can be null to not call anything, just lookup & store information. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
576 /*g_return_if_fail(cb != NULL);*/
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
577
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
578 purple_debug_info("msim", "msim_lookup_userid: "
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
579 "asynchronously looking up <%s>\n", user);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
580
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
581 /* Setup callback. Response will be associated with request using 'rid'. */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
582 rid = msim_new_reply_callback(session, cb, data);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
583
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
584 /* Send request */
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
585
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
586 cmd = MSIM_CMD_GET;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
587
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
588 if (msim_is_userid(user)) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
589 field_name = "UserID";
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
590 dsn = MG_MYSPACE_INFO_BY_ID_DSN;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
591 lid = MG_MYSPACE_INFO_BY_ID_LID;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
592 } else if (msim_is_email(user)) {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
593 field_name = "Email";
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
594 dsn = MG_MYSPACE_INFO_BY_STRING_DSN;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
595 lid = MG_MYSPACE_INFO_BY_STRING_LID;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
596 } else {
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
597 field_name = "UserName";
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
598 dsn = MG_MYSPACE_INFO_BY_STRING_DSN;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
599 lid = MG_MYSPACE_INFO_BY_STRING_LID;
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
600 }
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
601
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
602 body = msim_msg_new(
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
603 field_name, MSIM_TYPE_STRING, g_strdup(user),
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
604 NULL);
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
605
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
606 g_return_if_fail(msim_send(session,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
607 "persist", MSIM_TYPE_INTEGER, 1,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
608 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
609 "cmd", MSIM_TYPE_INTEGER, 1,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
610 "dsn", MSIM_TYPE_INTEGER, dsn,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
611 "uid", MSIM_TYPE_INTEGER, session->userid,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
612 "lid", MSIM_TYPE_INTEGER, lid,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
613 "rid", MSIM_TYPE_INTEGER, rid,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
614 "body", MSIM_TYPE_DICTIONARY, body,
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
615 NULL));
22436
3483af12d74f In msimprpl, add msim_is_valid_username() to check whether a username
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22435
diff changeset
616 }
3483af12d74f In msimprpl, add msim_is_valid_username() to check whether a username
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22435
diff changeset
617
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
618 /**
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
619 * Called after username is set.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
620 */
25233
8a3fe5c4e2f4 Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25212
diff changeset
621 static void msim_username_is_set_cb(MsimSession *session, const MsimMessage *userinfo, gpointer data)
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
622 {
25233
8a3fe5c4e2f4 Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25212
diff changeset
623 gchar *username;
8a3fe5c4e2f4 Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25212
diff changeset
624 const gchar *errmsg;
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
625 MsimMessage *body;
19795
149d7d8284cc Replace all CRLF line-endings with LF line endings (Unix-style). This fixes
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 19635
diff changeset
626
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
627 guint rid;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
628 gint cmd,dsn,uid,lid,code;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
629 /* \persistr\\cmd\258\dsn\9\uid\204084363\lid\14\rid\369\body\UserName=TheAlbinoRhino1.Code=0\final\ */
22434
3bc4a0a62c40 In msimprpl, change to patch from Jaywalker regarding setting
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22433
diff changeset
630
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
631 purple_debug_info("msim","username_is_set made\n");
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
632
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
633 g_return_if_fail(MSIM_SESSION_VALID(session));
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
634
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
635 cmd = msim_msg_get_integer(userinfo, "cmd");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
636 dsn = msim_msg_get_integer(userinfo, "dsn");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
637 uid = msim_msg_get_integer(userinfo, "uid");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
638 lid = msim_msg_get_integer(userinfo, "lid");
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
639 body = msim_msg_get_dictionary(userinfo, "body");
27635
0cd19038c417 More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents: 27376
diff changeset
640 errmsg = _("An error occurred while trying to set the username. "
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
641 "Please try again, or visit http://editprofile.myspace.com/index.cfm?"
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
642 "fuseaction=profile.username to set your username.");
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
643
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
644 if (!body) {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
645 purple_debug_info("msim_username_is_set_cb", "No body");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
646 /* Error: No body! */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
647 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
648 }
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
649 username = msim_msg_get_string(body, "UserName");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
650 code = msim_msg_get_integer(body,"Code");
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
651
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
652 msim_msg_free(body);
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
653
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
654 purple_debug_info("msim_username_is_set_cb",
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
655 "cmd = %d, dsn = %d, lid = %d, code = %d, username = %s\n",
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
656 cmd, dsn, lid, code, username);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
657
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
658 if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_PUT)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
659 && dsn == MC_SET_USERNAME_DSN
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
660 && lid == MC_SET_USERNAME_LID)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
661 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
662 purple_debug_info("msim_username_is_set_cb", "Proper cmd,dsn,lid for username_is_set!\n");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
663 purple_debug_info("msim_username_is_set_cb", "Username Set with return code %d\n",code);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
664 if (code == 0) {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
665 /* Good! */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
666 session->username = username;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
667 msim_we_are_logged_on(session);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
668 } else {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
669 purple_debug_info("msim_username_is_set", "code is %d",code);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
670 /* TODO: what to do here? */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
671 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
672 } else if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_GET)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
673 && dsn == MG_MYSPACE_INFO_BY_STRING_DSN
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
674 && lid == MG_MYSPACE_INFO_BY_STRING_LID) {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
675 /* Not quite done... ONE MORE STEP :) */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
676 rid = msim_new_reply_callback(session, msim_username_is_set_cb, data);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
677 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username), NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
678 if (!msim_send(session, "persist", MSIM_TYPE_INTEGER, 1,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
679 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
680 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_PUT,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
681 "dsn", MSIM_TYPE_INTEGER, MC_SET_USERNAME_DSN,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
682 "uid", MSIM_TYPE_INTEGER, session->userid,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
683 "lid", MSIM_TYPE_INTEGER, MC_SET_USERNAME_LID,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
684 "rid", MSIM_TYPE_INTEGER, rid,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
685 "body", MSIM_TYPE_DICTIONARY, body,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
686 NULL)) {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
687 /* Error! */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
688 /* Can't set... Disconnect */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
689 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
690 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
691
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
692 } else {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
693 /* Error! */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
694 purple_debug_info("msim","username_is_set Error: Invalid cmd/dsn/lid combination");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
695 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
696 }
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
697 }
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
698
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
699 /**
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
700 * Asynchronously set new username, calling callback when receive result.
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
701 *
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
702 * @param session
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
703 * @param username The username we're setting for ourselves. Not freed.
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
704 * @param cb Callback, called with user information when available.
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
705 * @param data An arbitray data pointer passed to the callback.
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
706 */
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
707 static void
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
708 msim_set_username(MsimSession *session, const gchar *username,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
709 MSIM_USER_LOOKUP_CB cb, gpointer data)
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
710 {
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
711 MsimMessage *body;
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
712 guint rid;
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
713
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
714 g_return_if_fail(MSIM_SESSION_VALID(session));
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
715 g_return_if_fail(username != NULL);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
716 g_return_if_fail(cb != NULL);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
717
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
718 purple_debug_info("msim", "msim_set_username: "
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
719 "Setting username %s\n", username);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
720
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
721 /* Setup callback. Response will be associated with request using 'rid'. */
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
722 rid = msim_new_reply_callback(session, cb, data);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
723
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
724 /* TODO: I dont know if the ContactType is -/ALWAYS/- 1 */
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
725
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
726 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username),NULL);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
727 /* \setinfo\\sesskey\469958979\info\Age=21.AvatarUrl=.BandName=.ContactType=1.DisplayName=Msim.Gender=M.ImageURL=http:/1/1x.myspace.com/1images/1no_pic.gif.LastLogin=128335268400000000.Location=US.ShowAvatar=False.SongName=.TotalFriends=1.UserName=msimprpl2\final\
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
728 */
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
729
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
730 /* Send request */
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
731 g_return_if_fail(msim_send(session,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
732 "setinfo", MSIM_TYPE_BOOLEAN, TRUE,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
733 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
734 "info", MSIM_TYPE_DICTIONARY, body,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
735 NULL));
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
736 body = msim_msg_new("UserName", MSIM_TYPE_STRING, g_strdup(username),NULL);
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
737 g_return_if_fail(msim_send(session,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
738 "persist", MSIM_TYPE_INTEGER, 1,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
739 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
22435
602abcb53ab0 In msimprpl, define a new set of symbolic constants for the command to
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22434
diff changeset
740 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_GET,
602abcb53ab0 In msimprpl, define a new set of symbolic constants for the command to
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22434
diff changeset
741 "dsn", MSIM_TYPE_INTEGER, MG_MYSPACE_INFO_BY_STRING_DSN,
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
742 "uid", MSIM_TYPE_INTEGER, session->userid,
22435
602abcb53ab0 In msimprpl, define a new set of symbolic constants for the command to
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22434
diff changeset
743 "lid", MSIM_TYPE_INTEGER, MG_MYSPACE_INFO_BY_STRING_LID,
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
744 "rid", MSIM_TYPE_INTEGER, rid,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
745 "body", MSIM_TYPE_DICTIONARY, body,
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
746 NULL));
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
747 }
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
748
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
749 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
750 * They've confirmed that username that was available, Lets make the call to set it
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
751 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
752 static void msim_set_username_confirmed_cb(PurpleConnection *gc)
22434
3bc4a0a62c40 In msimprpl, change to patch from Jaywalker regarding setting
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22433
diff changeset
753 {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
754 MsimMessage *user_msg;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
755 MsimSession *session;
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
756
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
757 g_return_if_fail(gc != NULL);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
758
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
759 session = (MsimSession *)gc->proto_data;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
760
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
761 g_return_if_fail(MSIM_SESSION_VALID(session));
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
762
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
763
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
764 user_msg = msim_msg_new(
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
765 "user", MSIM_TYPE_STRING, g_strdup(msim_username_to_set),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
766 NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
767
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
768 purple_debug_info("msim_set_username_confirmed_cb", "Setting username to %s\n", msim_username_to_set);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
769
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
770 /* Sets our username... keep your fingers crossed :) */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
771 msim_set_username(session, msim_username_to_set, msim_username_is_set_cb, user_msg);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
772 g_free(msim_username_to_set);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
773 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
774
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
775 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
776 * This is where we do a bit more than merely prompt the user.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
777 * Now we have some real data to tell us the state of their requested username
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
778 * \persistr\\cmd\257\dsn\5\uid\204084363\lid\7\rid\367\body\UserName=TheAlbinoRhino1\final\
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
779 */
25233
8a3fe5c4e2f4 Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25212
diff changeset
780 static void msim_username_is_available_cb(MsimSession *session, const MsimMessage *userinfo, gpointer data)
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
781 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
782 MsimMessage *msg;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
783 gchar *username;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
784 MsimMessage *body;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
785 gint userid;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
786
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
787 purple_debug_info("msim_username_is_available_cb", "Look up username callback made\n");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
788
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
789 msg = (MsimMessage *)data;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
790 g_return_if_fail(MSIM_SESSION_VALID(session));
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
791 g_return_if_fail(msg != NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
792
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
793 username = msim_msg_get_string(msg, "user");
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
794 body = msim_msg_get_dictionary(userinfo, "body");
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
795
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
796 if (!body) {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
797 purple_debug_info("msim_username_is_available_cb", "No body for %s?!\n", username);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
798 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR,
27635
0cd19038c417 More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents: 27376
diff changeset
799 _("An error occurred while trying to set the username. "
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
800 "Please try again, or visit http://editprofile.myspace.com/index.cfm?"
27635
0cd19038c417 More uniformity among disconnect error messages
Mark Doliner <markdoliner@pidgin.im>
parents: 27376
diff changeset
801 "fuseaction=profile.username to set your username."));
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
802 return;
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
803 }
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
804
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
805 userid = msim_msg_get_integer(body, "UserID");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
806
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
807 purple_debug_info("msim_username_is_available_cb", "Returned username is %s and userid is %d\n", username, userid);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
808 msim_msg_free(body);
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
809 msim_msg_free(msg);
22435
602abcb53ab0 In msimprpl, define a new set of symbolic constants for the command to
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22434
diff changeset
810
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
811 /* The response for a free username will ONLY have the UserName in it..
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
812 * thus making UserID return 0 when we msg_get_integer it */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
813 if (userid == 0) {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
814 /* This username is currently unused */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
815 purple_debug_info("msim_username_is_available_cb", "Username available. Prompting to Confirm.\n");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
816 msim_username_to_set = g_strdup(username);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
817 g_free(username);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
818 purple_request_yes_no(session->gc,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
819 _("MySpaceIM - Username Available"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
820 _("This username is available. Would you like to set it?"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
821 _("ONCE SET, THIS CANNOT BE CHANGED!"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
822 0,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
823 session->account,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
824 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
825 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
826 session->gc,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
827 G_CALLBACK(msim_set_username_confirmed_cb),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
828 G_CALLBACK(msim_do_not_set_username_cb));
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
829 } else {
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
830 /* Looks like its in use or we have an invalid response */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
831 purple_debug_info("msim_username_is_available_cb", "Username unavaiable. Prompting for new entry.\n");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
832 purple_request_input(session->gc, _("MySpaceIM - Please Set a Username"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
833 _("This username is unavailable."),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
834 _("Please try another username:"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
835 "", FALSE, FALSE, NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
836 _("OK"), G_CALLBACK(msim_check_username_availability_cb),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
837 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
838 session->account,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
839 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
840 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
841 session->gc);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
842 }
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
843 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
844
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
845 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
846 * Once they've submitted their desired new username,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
847 * check if it is available here.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
848 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
849 static void msim_check_username_availability_cb(PurpleConnection *gc, const char *username_to_check)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
850 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
851 MsimMessage *user_msg;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
852 MsimSession *session;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
853
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
854 g_return_if_fail(gc != NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
855
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
856 session = (MsimSession *)gc->proto_data;
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
857
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
858 g_return_if_fail(MSIM_SESSION_VALID(session));
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
859
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
860 purple_debug_info("msim_check_username_availability_cb", "Checking username: %s\n", username_to_check);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
861
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
862 user_msg = msim_msg_new(
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
863 "user", MSIM_TYPE_STRING, g_strdup(username_to_check),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
864 NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
865
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
866 /* 25 characters: letters, numbers, underscores */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
867 /* TODO: VERIFY ABOVE */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
868
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
869 /* \persist\1\sesskey\288500516\cmd\1\dsn\5\uid\204084363\lid\7\rid\367\body\UserName=Jaywalker\final\ */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
870 /* Official client uses a standard lookup... So do we! */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
871 msim_lookup_user(session, username_to_check, msim_username_is_available_cb, user_msg);
22433
41a60cb99e28 In msimprpl, if the user signs in without any username set (this will happen
Jeff Connelly <jeff2@soc.pidgin.im>
parents: 22358
diff changeset
872 }
25197
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
873
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
874 /***
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
875 * If they hit cancel or no at any point in the Setting Username process,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
876 * we come here. Currently we're safe letting them get by without
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
877 * setting it, unless we hear otherwise. So for now give them a menu.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
878 * If this becomes an issue with the official client then boot them here.
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
879 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
880 void msim_do_not_set_username_cb(PurpleConnection *gc)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
881 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
882 purple_debug_info("msim", "Don't set username");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
883
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
884 /* Protocol won't log in now without a username set.. Disconnect */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
885 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("No username set"));
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
886 }
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
887
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
888 /**
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
889 * They've decided to set a username! Yay!
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
890 */
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
891 void msim_set_username_cb(PurpleConnection *gc)
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
892 {
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
893 g_return_if_fail(gc != NULL);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
894 purple_debug_info("msim","Set username\n");
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
895 purple_request_input(gc, _("MySpaceIM - Please Set a Username"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
896 _("Please enter a username to check its availability:"),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
897 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
898 "", FALSE, FALSE, NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
899 _("OK"), G_CALLBACK(msim_check_username_availability_cb),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
900 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
901 purple_connection_get_account(gc),
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
902 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
903 NULL,
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
904 gc);
077b4d6fc595 No functionality change--just cleanup.
Mark Doliner <markdoliner@pidgin.im>
parents: 25193
diff changeset
905 }

mercurial