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