Mercurial > pidgin
annotate libpurple/protocols/myspace/user.c @ 27078:0d01bd0c19ba
Use the JID for adding a chat/buddy because the name is for descriptive
purpose only, and using it will not fill in the Add Chat dialog correctly.
Because the JID is not visible, the user will not know what to actually put
there instead.
| author | Elliott Sales de Andrade <qulogic@pidgin.im> |
|---|---|
| date | Mon, 08 Jun 2009 02:24:49 +0000 |
| parents | 9ea3474065dc |
| children | 324cc0d6ca0a |
| 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 /** |
|
25237
401f548e3544
propagate from branch 'im.pidgin.pidgin' (head df6eba32e5b6b34d7483cbfb7e9f2e4c836ac35f)
Paul Aurich <paul@darkrain42.org>
diff
changeset
|
44 * Get the MsimUser from a PurpleBuddy, optionally creating it if needed. |
|
24767
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 * |
|
25172
125cac3e24ee
The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents:
23374
diff
changeset
|
47 msim_get_user_from_buddy(PurpleBuddy *buddy, gboolean create) |
|
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
|
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 |
|
25983
9ea3474065dc
propagate from branch 'im.pidgin.pidgin' (head 303af74a38e7b313d4fb0be4d4054a16cb13d819)
Paul Aurich <paul@darkrain42.org>
diff
changeset
|
55 user = purple_buddy_get_protocol_data(buddy); |
|
9ea3474065dc
propagate from branch 'im.pidgin.pidgin' (head 303af74a38e7b313d4fb0be4d4054a16cb13d819)
Paul Aurich <paul@darkrain42.org>
diff
changeset
|
56 if (create && !user) { |
|
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
|
57 /* 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
|
58 |
|
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; |
|
25877
1260a3fb60f4
propagate from branch 'im.pidgin.pidgin' (head b8d6086aef6b2e65d86e8ce60220ab7f460d5079)
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
61 purple_buddy_set_protocol_data(buddy, user); |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
62 } |
|
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
|
63 |
|
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 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
|
65 } |
|
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 |
|
24885
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
67 void msim_user_free(MsimUser *user) |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
68 { |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
69 if (!user) |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
70 return; |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
71 |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
72 g_free(user->client_info); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
73 g_free(user->gender); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
74 g_free(user->location); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
75 g_free(user->headline); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
76 g_free(user->display_name); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
77 g_free(user->username); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
78 g_free(user->band_name); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
79 g_free(user->song_name); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
80 g_free(user->image_url); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
81 g_free(user); |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
82 } |
|
c6cadb7bdcf7
A couple of memory leak fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24867
diff
changeset
|
83 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
84 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
85 * 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
|
86 */ |
|
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
|
87 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
|
88 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
|
89 { |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
90 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
|
91 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
|
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 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
|
94 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
|
95 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
|
96 } |
|
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 |
|
25172
125cac3e24ee
The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <paul@darkrain42.org>
parents:
23374
diff
changeset
|
98 user = msim_get_user_from_buddy(buddy, TRUE); |
|
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
|
99 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
100 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
|
101 } |
|
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 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
103 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
104 * 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
|
105 * 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
|
106 */ |
|
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 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
|
108 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
|
109 { |
|
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
|
110 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
|
111 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
|
112 guint uid; |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
113 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
|
114 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
115 /* 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
|
116 * 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
|
117 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
|
118 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
|
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 |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
121 uid = purple_blist_node_get_int((PurpleBlistNode *)user->buddy, "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
|
122 |
|
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 /* 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
|
124 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
|
125 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
|
126 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
|
127 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
|
128 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
129 |
|
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
|
130 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
|
131 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
|
132 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
133 |
|
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
|
134 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
|
135 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
|
136 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
137 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
138 /* 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
|
139 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
|
140 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
|
141 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
142 |
|
24683
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
143 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
|
144 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
|
145 |
|
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
146 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
|
147 PurpleStatus *status; |
|
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
148 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
|
149 |
|
24683
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
150 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
|
151 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
|
152 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
|
153 |
|
24683
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
154 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
|
155 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
|
156 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
|
157 } |
|
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
158 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
|
159 } |
|
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
|
160 } |
|
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 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
162 /* 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
|
163 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
|
164 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
|
165 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
|
166 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
|
167 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
168 |
|
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 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
|
170 /* 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
|
171 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
|
172 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
173 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
|
174 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
|
175 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
176 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
|
177 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
|
178 } 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
|
179 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
|
180 } 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
|
181 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
|
182 } |
|
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
|
183 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
|
184 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
|
185 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
|
186 } |
|
24667
9fc3f5bf4455
Make our profile text a little cleaner and more uniform across the protocols.
Mark Doliner <mark@kingant.net>
parents:
23374
diff
changeset
|
187 |
|
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
|
188 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
|
189 /* 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
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 else |
|
694591875bc9
Use the friendly/vanity url when it's available in myspace
Mark Doliner <mark@kingant.net>
parents:
24684
diff
changeset
|
196 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
|
197 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
|
198 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
|
199 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
|
200 } |
|
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
|
201 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
202 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
203 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
204 * Callback for when a buddy icon finished being downloaded. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
205 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
206 static void |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
207 msim_downloaded_buddy_icon(PurpleUtilFetchUrlData *url_data, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
208 gpointer user_data, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
209 const gchar *url_text, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
210 gsize len, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
211 const gchar *error_message) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
212 { |
|
25883
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
213 MsimUser *user = (MsimUser *)user_data; |
|
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
214 const char *name = purple_buddy_get_name(user->buddy); |
|
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
215 PurpleAccount *account; |
|
24767
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 purple_debug_info("msim_downloaded_buddy_icon", |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
218 "Downloaded %" G_GSIZE_FORMAT " bytes\n", len); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
219 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
220 if (!url_text) { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
221 purple_debug_info("msim_downloaded_buddy_icon", |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
222 "failed to download icon for %s", |
|
25883
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
223 name); |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
224 return; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
225 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
226 |
|
25883
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
227 account = purple_buddy_get_account(user->buddy); |
|
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
228 purple_buddy_icons_set_for_user(account, name, |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
229 g_memdup((gchar *)url_text, len), len, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
230 /* Use URL itself as buddy icon "checksum" (TODO: ETag) */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
231 user->image_url); /* checksum */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
232 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
233 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
234 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
235 * 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
|
236 * |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
237 * @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
|
238 * |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
239 * @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
|
240 * |
|
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 * @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
|
242 * |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
243 * 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
|
244 * |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
245 * 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
|
246 * 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
|
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 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
|
249 { |
|
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 PurplePresence *presence; |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
251 PurpleAccount *account; |
|
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
|
252 const char *prev_artist, *prev_title; |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
253 const char *name; |
|
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
|
254 |
|
24683
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
255 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
|
256 /* 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
|
257 return; |
|
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
258 |
|
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
|
259 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
|
260 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
|
261 |
|
24683
1af3baa61c9f
Don't create a temporary PurpleBuddy when getting info for someone not
Mark Doliner <mark@kingant.net>
parents:
24667
diff
changeset
|
262 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
|
263 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
|
264 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
|
265 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
|
266 |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
267 account = purple_buddy_get_account(user->buddy); |
|
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
268 name = purple_buddy_get_name(user->buddy); |
|
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
269 |
|
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
|
270 if (!new_artist && !new_title) { |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
271 purple_prpl_got_user_status_deactive(account, name, "tune"); |
|
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
|
272 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
|
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 |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
275 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
|
276 |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
277 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
|
278 PurpleStatus *status; |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
279 |
|
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
|
280 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
|
281 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
|
282 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
|
283 } |
|
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
|
284 |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
285 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
|
286 new_artist = prev_artist; |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
287 |
|
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
|
288 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
|
289 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
|
290 |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
291 purple_prpl_got_user_status(account, name, "tune", |
|
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
|
292 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
|
293 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
|
294 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
|
295 } |
|
e808d83d797e
In msimprpl, use a PURPLE_STATUS_TUNE presence type to hold the "now playing"
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
21022
diff
changeset
|
296 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
297 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
298 * 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
|
299 * |
|
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
300 * @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
|
301 * @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
|
302 * 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
|
303 * @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
|
304 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
305 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
|
306 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
|
307 { |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
308 const char *name = user->buddy ? purple_buddy_get_name(user->buddy) : NULL; |
|
25883
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
309 |
|
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
|
310 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
|
311 /* 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
|
312 user->id = atol(value_str); |
| 24805 | 313 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
|
314 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
|
315 { |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
316 purple_debug_info("msim", "associating uid %s with username %s\n", key_str, name); |
|
25883
e22bc87b758b
explicit merge of '9a5e549612efd8ca6f60fc57b51a4eee7e32c861'
Richard Laager <rlaager@wiktel.com>
diff
changeset
|
317 purple_blist_node_set_int(PURPLE_BLIST_NODE(user->buddy), "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
|
318 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
319 /* 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
|
320 } 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
|
321 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
|
322 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
|
323 } 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
|
324 g_free(user->gender); |
|
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
325 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
|
326 } 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
|
327 g_free(user->location); |
|
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
328 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
|
329 } 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
|
330 user->total_friends = atol(value_str); |
| 24805 | 331 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
|
332 } 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
|
333 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
|
334 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
|
335 } 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
|
336 msim_set_artist_or_title(user, value_str, NULL); |
| 24805 | 337 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
|
338 } 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
|
339 msim_set_artist_or_title(user, NULL, value_str); |
| 24805 | 340 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
|
341 } 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
|
342 /* 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
|
343 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
|
344 } else if (g_str_equal(key_str, "ImageURL") || g_str_equal(key_str, "AvatarURL")) { |
| 20995 | 345 const gchar *previous_url; |
| 346 | |
|
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
|
347 if (user->temporary_user) { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
348 /* 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
|
349 * 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
|
350 */ |
|
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
|
351 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
|
352 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
|
353 } |
| 21022 | 354 |
| 355 if (user->temporary_user) { | |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
356 /* This user will be destroyed soon; don't try to look up its image or avatar, |
| 21022 | 357 * since that won't return immediately and we will end up accessing freed data. |
| 358 */ | |
| 359 g_free(value_str); | |
| 360 return; | |
| 361 } | |
| 362 | |
|
20150
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
363 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
|
364 |
|
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
365 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
|
366 |
|
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 /* 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
|
368 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
|
369 { |
|
25130
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
370 purple_buddy_icons_set_for_user(purple_buddy_get_account(user->buddy), |
|
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23374
diff
changeset
|
371 name, NULL, 0, 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
|
372 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
|
373 } |
| 21022 | 374 |
|
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
|
375 /* 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
|
376 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
|
377 |
|
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 /* 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
|
379 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
|
380 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
|
381 } |
|
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 } 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
|
383 /* 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
|
384 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
|
385 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
|
386 } 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
|
387 g_free(user->headline); |
|
52dce2882c03
Fix a few memory leaks in #3281 (details in ticket).
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
20147
diff
changeset
|
388 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
|
389 } 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
|
390 /* 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
|
391 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
|
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 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
|
394 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
|
395 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
|
396 |
|
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 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
|
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 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
|
400 } |
|
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 } |
|
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 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
403 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
404 * 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
|
405 * |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
406 * @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
|
407 * @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
|
408 * @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
|
409 * |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
410 * 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
|
411 * 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
|
412 * 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
|
413 * |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
414 * 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
|
415 * 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
|
416 */ |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
417 gboolean |
|
24799
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
418 msim_store_user_info(MsimSession *session, const MsimMessage *msg, MsimUser *user) |
|
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
|
419 { |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
420 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
|
421 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
|
422 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
423 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
|
424 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
|
425 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
426 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
|
427 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
|
428 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
|
429 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
430 |
|
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
|
431 if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN && |
| 24862 | 432 msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID) |
| 433 { | |
|
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
|
434 /* |
|
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 * Some of this info will be available on the buddy list if the |
| 24862 | 436 * user has themselves as their own buddy. |
|
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
|
437 * |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
438 * 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
|
439 * 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
|
440 */ |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
441 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
|
442 |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
443 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
|
444 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
|
445 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
|
446 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
|
447 } |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
448 |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
449 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
|
450 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
|
451 |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
452 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
|
453 "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
|
454 "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
|
455 "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
|
456 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
|
457 session->show_only_to_list ? 1 : 0, |
|
24867
1d77f138847b
This is a bitmask, and the "c" value here should be the least significant
Mark Doliner <mark@kingant.net>
parents:
24862
diff
changeset
|
458 session->privacy_mode & 1), |
|
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
|
459 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
|
460 } 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
|
461 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
|
462 /* 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
|
463 } |
|
8e75a1525156
Grab the "Who can contact me? Only people on my buddy list?" and the
Mark Doliner <mark@kingant.net>
parents:
24778
diff
changeset
|
464 |
|
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
|
465 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
|
466 |
|
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 if (!username) { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
468 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
|
469 "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
|
470 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
|
471 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
|
472 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
|
473 } |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
474 |
|
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 /* 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
|
476 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
|
477 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
|
478 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
|
479 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
|
480 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
|
481 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
|
482 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
483 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
484 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
485 /* TODO: make looping over MsimMessage's easier. */ |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
486 for (body_node = body; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
487 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
|
488 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
|
489 { |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
490 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
|
491 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
|
492 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
|
493 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
494 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
|
495 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
|
496 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
497 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
|
498 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
|
499 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
500 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
501 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
|
502 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
|
503 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
504 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
|
505 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
506 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
507 #if 0 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
508 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
509 * Return whether a given username is syntactically valid. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
510 * Note: does not actually check that the user exists. |
|
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 static gboolean |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
513 msim_is_valid_username(const gchar *user) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
514 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
515 return !msim_is_userid(user) && /* Not all numeric */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
516 strlen(user) <= MSIM_MAX_USERNAME_LENGTH |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
517 && strspn(user, "0123456789" |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
518 "abcdefghijklmnopqrstuvwxyz" |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
519 "_" |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
520 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == strlen(user); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
521 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
522 #endif |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
523 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
524 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
525 * Check if a string is a userid (all numeric). |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
526 * |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
527 * @param user The user id, email, or name. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
528 * |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
529 * @return TRUE if is userid, FALSE if not. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
530 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
531 gboolean |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
532 msim_is_userid(const gchar *user) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
533 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
534 g_return_val_if_fail(user != NULL, FALSE); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
535 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
536 return strspn(user, "0123456789") == strlen(user); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
537 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
538 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
539 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
540 * 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
|
541 * |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
542 * @param user The user id, email, or name. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
543 * |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
544 * @return TRUE if is an email, FALSE if not. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
545 * |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
546 * 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
|
547 * means of validating email addresses, but to distinguish |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
548 * between a user represented by an email address from |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
549 * other forms of identification. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
550 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
551 static gboolean |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
552 msim_is_email(const gchar *user) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
553 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
554 g_return_val_if_fail(user != NULL, FALSE); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
555 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
556 return strchr(user, '@') != NULL; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
557 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
558 |
|
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
|
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 * 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
|
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 * @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
|
563 * @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
|
564 * @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
|
565 * @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
|
566 */ |
|
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 /* TODO: change to not use callbacks */ |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
568 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
|
569 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
|
570 { |
|
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 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
|
572 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
|
573 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
|
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 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
|
576 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
|
577 /* 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
|
578 /*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
|
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 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
|
581 "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
|
582 |
|
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 /* 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
|
584 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
|
585 |
|
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 /* 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
|
587 |
|
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 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
|
589 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
590 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
|
591 field_name = "UserID"; |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
592 dsn = MG_MYSPACE_INFO_BY_ID_DSN; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
593 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
|
594 } 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
|
595 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
|
596 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
|
597 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
|
598 } 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
|
599 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
|
600 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
|
601 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
|
602 } |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
603 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
604 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
|
605 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
|
606 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
|
607 |
|
1141d47b162c
Kill CRLF line-endings to make sure this compiles on Solaris. This is a
Richard Laager <rlaager@wiktel.com>
parents:
19681
diff
changeset
|
608 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
|
609 "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
|
610 "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
|
611 "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
|
612 "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
|
613 "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
|
614 "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
|
615 "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
|
616 "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
|
617 NULL)); |
|
22305
bf4902fce6e4
In msimprpl, add msim_is_valid_username() to check whether a username
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22304
diff
changeset
|
618 } |
|
bf4902fce6e4
In msimprpl, add msim_is_valid_username() to check whether a username
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22304
diff
changeset
|
619 |
|
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
|
620 /** |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
621 * Called after username is set. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
622 */ |
|
24799
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
623 static void msim_username_is_set_cb(MsimSession *session, const 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
|
624 { |
|
24799
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
625 gchar *username; |
|
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
626 const gchar *errmsg; |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
627 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
|
628 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
629 guint rid; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
630 gint cmd,dsn,uid,lid,code; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
631 /* \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
|
632 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
633 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
|
634 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
635 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
|
636 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
637 cmd = msim_msg_get_integer(userinfo, "cmd"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
638 dsn = msim_msg_get_integer(userinfo, "dsn"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
639 uid = msim_msg_get_integer(userinfo, "uid"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
640 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
|
641 body = msim_msg_get_dictionary(userinfo, "body"); |
|
24799
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
642 /* XXX: Mark for translation */ |
|
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
643 errmsg = ("An error occurred while trying to set the username.\n" |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
644 "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
|
645 "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
|
646 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
647 if (!body) { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
648 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
|
649 /* Error: No body! */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
650 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
|
651 } |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
652 username = msim_msg_get_string(body, "UserName"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
653 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
|
654 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
655 msim_msg_free(body); |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
656 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
657 purple_debug_info("msim_username_is_set_cb", |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
658 "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
|
659 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
|
660 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
661 if (cmd == (MSIM_CMD_BIT_REPLY | MSIM_CMD_PUT) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
662 && dsn == MC_SET_USERNAME_DSN |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
663 && lid == MC_SET_USERNAME_LID) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
664 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
665 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
|
666 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
|
667 if (code == 0) { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
668 /* Good! */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
669 session->username = username; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
670 msim_we_are_logged_on(session); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
671 } else { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
672 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
|
673 /* TODO: what to do here? */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
674 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
675 } 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
|
676 && dsn == MG_MYSPACE_INFO_BY_STRING_DSN |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
677 && lid == MG_MYSPACE_INFO_BY_STRING_LID) { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
678 /* Not quite done... ONE MORE STEP :) */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
679 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
|
680 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
|
681 if (!msim_send(session, "persist", MSIM_TYPE_INTEGER, 1, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
682 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
683 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_PUT, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
684 "dsn", MSIM_TYPE_INTEGER, MC_SET_USERNAME_DSN, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
685 "uid", MSIM_TYPE_INTEGER, session->userid, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
686 "lid", MSIM_TYPE_INTEGER, MC_SET_USERNAME_LID, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
687 "rid", MSIM_TYPE_INTEGER, rid, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
688 "body", MSIM_TYPE_DICTIONARY, body, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
689 NULL)) { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
690 /* Error! */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
691 /* Can't set... Disconnect */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
692 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
|
693 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
694 |
|
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
|
695 } else { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
696 /* Error! */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
697 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
|
698 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
|
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 } |
|
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 |
|
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 * 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
|
704 * |
|
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 * @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
|
706 * @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
|
707 * @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
|
708 * @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
|
709 */ |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
710 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
|
711 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
|
712 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
|
713 { |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
714 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
|
715 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
|
716 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
717 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
|
718 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
|
719 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
|
720 |
|
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 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
|
722 "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
|
723 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
724 /* 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
|
725 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
|
726 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
727 /* 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
|
728 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
729 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
|
730 /* \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
|
731 */ |
|
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 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
733 /* 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
|
734 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
|
735 "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
|
736 "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
|
737 "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
|
738 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
|
739 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
|
740 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
|
741 "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
|
742 "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
|
743 "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
|
744 "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
|
745 "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
|
746 "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
|
747 "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
|
748 "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
|
749 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
|
750 } |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
751 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
752 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
753 * 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
|
754 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
755 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
|
756 { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
757 MsimMessage *user_msg; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
758 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
|
759 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
760 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
|
761 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
762 session = (MsimSession *)gc->proto_data; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
763 |
|
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
|
764 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
|
765 |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
766 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
767 user_msg = msim_msg_new( |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
768 "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
|
769 NULL); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
770 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
771 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
|
772 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
773 /* Sets our username... keep your fingers crossed :) */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
774 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
|
775 g_free(msim_username_to_set); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
776 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
777 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
778 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
779 * 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
|
780 * 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
|
781 * \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
|
782 */ |
|
24799
c044eb54b7ac
Fix a leak in myspace prpl.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24781
diff
changeset
|
783 static void msim_username_is_available_cb(MsimSession *session, const MsimMessage *userinfo, gpointer data) |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
784 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
785 MsimMessage *msg; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
786 gchar *username; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
787 MsimMessage *body; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
788 gint userid; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
789 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
790 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
|
791 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
792 msg = (MsimMessage *)data; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
793 g_return_if_fail(MSIM_SESSION_VALID(session)); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
794 g_return_if_fail(msg != NULL); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
795 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
796 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
|
797 body = msim_msg_get_dictionary(userinfo, "body"); |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
798 |
|
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
|
799 if (!body) { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
800 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
|
801 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
|
802 "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
|
803 "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
|
804 "fuseaction=profile.username to set your username."); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
805 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
|
806 } |
|
0e2207b46080
In msimprpl, if the user signs in without any username set (this will happen
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
22264
diff
changeset
|
807 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
808 userid = msim_msg_get_integer(body, "UserID"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
809 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
810 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
|
811 msim_msg_free(body); |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
812 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
|
813 |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
814 /* 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
|
815 * 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
|
816 if (userid == 0) { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
817 /* This username is currently unused */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
818 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
|
819 msim_username_to_set = g_strdup(username); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
820 g_free(username); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
821 purple_request_yes_no(session->gc, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
822 _("MySpaceIM - Username Available"), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
823 _("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
|
824 _("ONCE SET, THIS CANNOT BE CHANGED!"), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
825 0, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
826 session->account, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
827 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
828 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
829 session->gc, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
830 G_CALLBACK(msim_set_username_confirmed_cb), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
831 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
|
832 } else { |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
833 /* 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
|
834 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
|
835 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
|
836 _("This username is unavailable."), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
837 _("Please try another username:"), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
838 "", FALSE, FALSE, NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
839 _("OK"), G_CALLBACK(msim_check_username_availability_cb), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
840 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
841 session->account, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
842 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
843 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
844 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
|
845 } |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
846 } |
|
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 * Once they've submitted their desired new username, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
850 * check if it is available here. |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
851 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
852 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
|
853 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
854 MsimMessage *user_msg; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
855 MsimSession *session; |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
856 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
857 g_return_if_fail(gc != NULL); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
858 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
859 session = (MsimSession *)gc->proto_data; |
|
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 g_return_if_fail(MSIM_SESSION_VALID(session)); |
|
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 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
|
864 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
865 user_msg = msim_msg_new( |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
866 "user", MSIM_TYPE_STRING, g_strdup(username_to_check), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
867 NULL); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
868 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
869 /* 25 characters: letters, numbers, underscores */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
870 /* TODO: VERIFY ABOVE */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
871 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
872 /* \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
|
873 /* Official client uses a standard lookup... So do we! */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
874 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
|
875 } |
|
24767
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
876 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
877 /*** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
878 * 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
|
879 * 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
|
880 * 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
|
881 * 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
|
882 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
883 void msim_do_not_set_username_cb(PurpleConnection *gc) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
884 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
885 purple_debug_info("msim", "Don't set username"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
886 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
887 /* 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
|
888 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
|
889 } |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
890 |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
891 /** |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
892 * They've decided to set a username! Yay! |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
893 */ |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
894 void msim_set_username_cb(PurpleConnection *gc) |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
895 { |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
896 g_return_if_fail(gc != NULL); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
897 purple_debug_info("msim","Set username\n"); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
898 purple_request_input(gc, _("MySpaceIM - Please Set a Username"), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
899 _("Please enter a username to check its availability:"), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
900 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
901 "", FALSE, FALSE, NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
902 _("OK"), G_CALLBACK(msim_check_username_availability_cb), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
903 _("Cancel"), G_CALLBACK(msim_do_not_set_username_cb), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
904 purple_connection_get_account(gc), |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
905 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
906 NULL, |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
907 gc); |
|
295464ae2d2a
No functionality change--just cleanup.
Mark Doliner <mark@kingant.net>
parents:
24762
diff
changeset
|
908 } |
