comparison libpurple/protocols/myspace/user.c @ 32819:2c6510167895 default tip

propagate from branch 'im.pidgin.pidgin.2.x.y' (head 3315c5dfbd0ad16511bdcf865e5b07c02d07df24) to branch 'im.pidgin.pidgin' (head cbd1eda6bcbf0565ae7766396bb8f6f419cb6a9a)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 02 Jun 2012 02:30:49 +0000
parents 904686722499
children
comparison
equal deleted inserted replaced
32818:01ff09d4a463 32819:2c6510167895
115 guint cv; 115 guint cv;
116 116
117 /* Useful to identify the account the tooltip refers to. 117 /* Useful to identify the account the tooltip refers to.
118 * Other prpls show this. */ 118 * Other prpls show this. */
119 if (user->username) { 119 if (user->username) {
120 purple_notify_user_info_add_pair(user_info, _("User"), user->username); 120 purple_notify_user_info_add_pair_plaintext(user_info, _("User"), user->username);
121 } 121 }
122 122
123 /* a/s/l...the vitals */ 123 /* a/s/l...the vitals */
124 if (user->age) { 124 if (user->age) {
125 char age[16]; 125 char age[16];
126 g_snprintf(age, sizeof(age), "%d", user->age); 126 g_snprintf(age, sizeof(age), "%d", user->age);
127 purple_notify_user_info_add_pair(user_info, _("Age"), age); 127 purple_notify_user_info_add_pair_plaintext(user_info, _("Age"), age);
128 } 128 }
129 129
130 if (user->gender && *user->gender) { 130 if (user->gender && *user->gender) {
131 purple_notify_user_info_add_pair(user_info, _("Gender"), user->gender); 131 /* TODO: Check whether it's correct to call add_pair_html,
132 or if we should be using add_pair_plaintext */
133 purple_notify_user_info_add_pair_plaintext(user_info, _("Gender"), user->gender);
132 } 134 }
133 135
134 if (user->location && *user->location) { 136 if (user->location && *user->location) {
135 purple_notify_user_info_add_pair(user_info, _("Location"), user->location); 137 /* TODO: Check whether it's correct to call add_pair_html,
138 or if we should be using add_pair_plaintext */
139 purple_notify_user_info_add_pair_plaintext(user_info, _("Location"), user->location);
136 } 140 }
137 141
138 /* Other information */ 142 /* Other information */
139 if (user->headline && *user->headline) { 143 if (user->headline && *user->headline) {
140 purple_notify_user_info_add_pair(user_info, _("Headline"), user->headline); 144 /* TODO: Check whether it's correct to call add_pair_html,
145 or if we should be using add_pair_plaintext */
146 purple_notify_user_info_add_pair_plaintext(user_info, _("Headline"), user->headline);
141 } 147 }
142 148
143 if (user->buddy != NULL) { 149 if (user->buddy != NULL) {
144 presence = purple_buddy_get_presence(user->buddy); 150 presence = purple_buddy_get_presence(user->buddy);
145 151
151 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE); 157 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
152 artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST); 158 artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
153 159
154 str = msim_format_now_playing(artist, title); 160 str = msim_format_now_playing(artist, title);
155 if (str && *str) { 161 if (str && *str) {
156 purple_notify_user_info_add_pair(user_info, _("Song"), str); 162 /* TODO: Check whether it's correct to call add_pair_html,
163 or if we should be using add_pair_plaintext */
164 purple_notify_user_info_add_pair_plaintext(user_info, _("Song"), str);
157 } 165 }
158 g_free(str); 166 g_free(str);
159 } 167 }
160 } 168 }
161 169
162 /* Note: total friends only available if looked up by uid, not username. */ 170 /* Note: total friends only available if looked up by uid, not username. */
163 if (user->total_friends) { 171 if (user->total_friends) {
164 char friends[16]; 172 char friends[16];
165 g_snprintf(friends, sizeof(friends), "%d", user->total_friends); 173 g_snprintf(friends, sizeof(friends), "%d", user->total_friends);
166 purple_notify_user_info_add_pair(user_info, _("Total Friends"), friends); 174 purple_notify_user_info_add_pair_plaintext(user_info, _("Total Friends"), friends);
167 } 175 }
168 176
169 if (full) { 177 if (full) {
170 /* Client information */ 178 /* Client information */
171 char *client = NULL; 179 char *client = NULL;
178 } else if (str) { 186 } else if (str) {
179 client = g_strdup(str); 187 client = g_strdup(str);
180 } else if (cv) { 188 } else if (cv) {
181 client = g_strdup_printf("Build %d", cv); 189 client = g_strdup_printf("Build %d", cv);
182 } 190 }
183 if (client && *client) 191 if (client && *client) {
184 purple_notify_user_info_add_pair(user_info, _("Client Version"), client); 192 /* TODO: Check whether it's correct to call add_pair_html,
193 or if we should be using add_pair_plaintext */
194 purple_notify_user_info_add_pair_plaintext(user_info, _("Client Version"), client);
195 }
185 g_free(client); 196 g_free(client);
186 } 197 }
187 198
188 if (full && user->id) { 199 if (full && user->id) {
189 /* TODO: link to username, if available */ 200 /* TODO: link to username, if available */
193 profile = g_strdup_printf("<a href=\"http://myspace.com/%s\">%s</a>", 204 profile = g_strdup_printf("<a href=\"http://myspace.com/%s\">%s</a>",
194 purple_buddy_get_name(user->buddy), _("View web profile")); 205 purple_buddy_get_name(user->buddy), _("View web profile"));
195 else 206 else
196 profile = g_strdup_printf("<a href=\"http://myspace.com/%d\">%s</a>", 207 profile = g_strdup_printf("<a href=\"http://myspace.com/%d\">%s</a>",
197 user->id, _("View web profile")); 208 user->id, _("View web profile"));
198 purple_notify_user_info_add_pair(user_info, NULL, profile); 209 purple_notify_user_info_add_pair_html(user_info, NULL, profile);
199 g_free(profile); 210 g_free(profile);
200 } 211 }
201 } 212 }
202 213
203 /** 214 /**
371 382
372 /* Only download if URL changed */ 383 /* Only download if URL changed */
373 if (!previous_url || !g_str_equal(previous_url, user->image_url)) { 384 if (!previous_url || !g_str_equal(previous_url, user->image_url)) {
374 if (user->url_data != NULL) 385 if (user->url_data != NULL)
375 purple_util_fetch_url_cancel(user->url_data); 386 purple_util_fetch_url_cancel(user->url_data);
376 user->url_data = purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, msim_downloaded_buddy_icon, (gpointer)user); 387 user->url_data = purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, -1, msim_downloaded_buddy_icon, (gpointer)user);
377 } 388 }
378 } else if (g_str_equal(key_str, "LastImageUpdated")) { 389 } else if (g_str_equal(key_str, "LastImageUpdated")) {
379 /* TODO: use somewhere */ 390 /* TODO: use somewhere */
380 user->last_image_updated = atol(value_str); 391 user->last_image_updated = atol(value_str);
381 g_free(value_str); 392 g_free(value_str);
399 /** 410 /**
400 * Save buddy information to the buddy list from a user info reply message. 411 * Save buddy information to the buddy list from a user info reply message.
401 * 412 *
402 * @param session 413 * @param session
403 * @param msg The user information reply, with any amount of information. 414 * @param msg The user information reply, with any amount of information.
404 * @param user The structure to save to, or NULL to save in PurpleBuddy->proto_data. 415 * @param user The structure to save to, or NULL to save in PurpleBuddy's protocol_data.
405 * 416 *
406 * Variable information is saved to the passed MsimUser structure. Permanent 417 * Variable information is saved to the passed MsimUser structure. Permanent
407 * information (UserID) is stored in the blist node of the buddy list (and 418 * information (UserID) is stored in the blist node of the buddy list (and
408 * ends up in blist.xml, persisted to disk) if it exists. 419 * ends up in blist.xml, persisted to disk) if it exists.
409 * 420 *
634 "fuseaction=profile.username to set your username."); 645 "fuseaction=profile.username to set your username.");
635 646
636 if (!body) { 647 if (!body) {
637 purple_debug_info("msim_username_is_set_cb", "No body"); 648 purple_debug_info("msim_username_is_set_cb", "No body");
638 /* Error: No body! */ 649 /* Error: No body! */
639 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg); 650 purple_connection_error(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
640 } 651 }
641 username = msim_msg_get_string(body, "UserName"); 652 username = msim_msg_get_string(body, "UserName");
642 code = msim_msg_get_integer(body,"Code"); 653 code = msim_msg_get_integer(body,"Code");
643 654
644 msim_msg_free(body); 655 msim_msg_free(body);
676 "rid", MSIM_TYPE_INTEGER, rid, 687 "rid", MSIM_TYPE_INTEGER, rid,
677 "body", MSIM_TYPE_DICTIONARY, body, 688 "body", MSIM_TYPE_DICTIONARY, body,
678 NULL)) { 689 NULL)) {
679 /* Error! */ 690 /* Error! */
680 /* Can't set... Disconnect */ 691 /* Can't set... Disconnect */
681 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg); 692 purple_connection_error(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
682 } 693 }
683 694
684 } else { 695 } else {
685 /* Error! */ 696 /* Error! */
686 purple_debug_info("msim","username_is_set Error: Invalid cmd/dsn/lid combination"); 697 purple_debug_info("msim","username_is_set Error: Invalid cmd/dsn/lid combination");
687 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg); 698 purple_connection_error(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, errmsg);
688 } 699 }
689 } 700 }
690 701
691 /** 702 /**
692 * Asynchronously set new username, calling callback when receive result. 703 * Asynchronously set new username, calling callback when receive result.
745 MsimMessage *user_msg; 756 MsimMessage *user_msg;
746 MsimSession *session; 757 MsimSession *session;
747 758
748 g_return_if_fail(gc != NULL); 759 g_return_if_fail(gc != NULL);
749 760
750 session = (MsimSession *)gc->proto_data; 761 session = purple_connection_get_protocol_data(gc);
751 762
752 user_msg = msim_msg_new( 763 user_msg = msim_msg_new(
753 "user", MSIM_TYPE_STRING, g_strdup(msim_username_to_set), 764 "user", MSIM_TYPE_STRING, g_strdup(msim_username_to_set),
754 NULL); 765 NULL);
755 766
780 username = msim_msg_get_string(msg, "user"); 791 username = msim_msg_get_string(msg, "user");
781 body = msim_msg_get_dictionary(userinfo, "body"); 792 body = msim_msg_get_dictionary(userinfo, "body");
782 793
783 if (!body) { 794 if (!body) {
784 purple_debug_info("msim_username_is_available_cb", "No body for %s?!\n", username); 795 purple_debug_info("msim_username_is_available_cb", "No body for %s?!\n", username);
785 purple_connection_error_reason(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, 796 purple_connection_error(session->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR,
786 _("An error occurred while trying to set the username. " 797 _("An error occurred while trying to set the username. "
787 "Please try again, or visit http://editprofile.myspace.com/index.cfm?" 798 "Please try again, or visit http://editprofile.myspace.com/index.cfm?"
788 "fuseaction=profile.username to set your username.")); 799 "fuseaction=profile.username to set your username."));
789 return; 800 return;
790 } 801 }
838 MsimMessage *user_msg; 849 MsimMessage *user_msg;
839 MsimSession *session; 850 MsimSession *session;
840 851
841 g_return_if_fail(gc != NULL); 852 g_return_if_fail(gc != NULL);
842 853
843 session = (MsimSession *)gc->proto_data; 854 session = purple_connection_get_protocol_data(gc);
844 855
845 purple_debug_info("msim_check_username_availability_cb", "Checking username: %s\n", username_to_check); 856 purple_debug_info("msim_check_username_availability_cb", "Checking username: %s\n", username_to_check);
846 857
847 user_msg = msim_msg_new( 858 user_msg = msim_msg_new(
848 "user", MSIM_TYPE_STRING, g_strdup(username_to_check), 859 "user", MSIM_TYPE_STRING, g_strdup(username_to_check),
865 void msim_do_not_set_username_cb(PurpleConnection *gc) 876 void msim_do_not_set_username_cb(PurpleConnection *gc)
866 { 877 {
867 purple_debug_info("msim", "Don't set username"); 878 purple_debug_info("msim", "Don't set username");
868 879
869 /* Protocol won't log in now without a username set.. Disconnect */ 880 /* Protocol won't log in now without a username set.. Disconnect */
870 purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("No username set")); 881 purple_connection_error(gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, _("No username set"));
871 } 882 }
872 883
873 /** 884 /**
874 * They've decided to set a username! Yay! 885 * They've decided to set a username! Yay!
875 */ 886 */