| 28 * @return Return a new string (must be g_free()'d), or NULL. |
28 * @return Return a new string (must be g_free()'d), or NULL. |
| 29 */ |
29 */ |
| 30 static gchar * |
30 static gchar * |
| 31 msim_format_now_playing(gchar *band, gchar *song) |
31 msim_format_now_playing(gchar *band, gchar *song) |
| 32 { |
32 { |
| 33 if ((band && strlen(band)) || (song && strlen(song))) { |
33 if ((band && *band) || (song && *song)) { |
| 34 return g_strdup_printf("%s - %s", |
34 return g_strdup_printf("%s - %s", |
| 35 (band && strlen(band)) ? band : "Unknown Artist", |
35 (band && *band) ? band : "Unknown Artist", |
| 36 (song && strlen(song)) ? song : "Unknown Song"); |
36 (song && *song) ? song : "Unknown Song"); |
| 37 } else { |
37 } else { |
| 38 return NULL; |
38 return NULL; |
| 39 } |
39 } |
| 40 } |
40 } |
| 41 /** Get the MsimUser from a PurpleBuddy, creating it if needed. */ |
41 /** Get the MsimUser from a PurpleBuddy, creating it if needed. */ |
| 97 |
97 |
| 98 uid = purple_blist_node_get_int(&user->buddy->node, "UserID"); |
98 uid = purple_blist_node_get_int(&user->buddy->node, "UserID"); |
| 99 |
99 |
| 100 if (full) { |
100 if (full) { |
| 101 /* TODO: link to username, if available */ |
101 /* TODO: link to username, if available */ |
| 102 purple_notify_user_info_add_pair(user_info, _("Profile"), |
102 char *profile = g_strdup_printf("<a href=\"http://myspace.com/%d\">http://myspace.com/%d</a>", |
| 103 g_strdup_printf("<a href=\"http://myspace.com/%d\">http://myspace.com/%d</a>", |
103 uid, uid); |
| 104 uid, uid)); |
104 purple_notify_user_info_add_pair(user_info, _("Profile"), profile); |
| |
105 g_free(profile); |
| 105 } |
106 } |
| 106 |
107 |
| 107 |
108 |
| 108 /* a/s/l...the vitals */ |
109 /* a/s/l...the vitals */ |
| 109 if (user->age) { |
110 if (user->age) { |
| 110 purple_notify_user_info_add_pair(user_info, _("Age"), |
111 char age[16]; |
| 111 g_strdup_printf("%d", user->age)); |
112 g_snprintf(age, sizeof(age), "%d", user->age); |
| 112 } |
113 purple_notify_user_info_add_pair(user_info, _("Age"), age); |
| 113 |
114 } |
| 114 if (user->gender && strlen(user->gender)) { |
115 |
| |
116 if (user->gender && *user->gender) { |
| 115 purple_notify_user_info_add_pair(user_info, _("Gender"), user->gender); |
117 purple_notify_user_info_add_pair(user_info, _("Gender"), user->gender); |
| 116 } |
118 } |
| 117 |
119 |
| 118 if (user->location && strlen(user->location)) { |
120 if (user->location && *user->location) { |
| 119 purple_notify_user_info_add_pair(user_info, _("Location"), user->location); |
121 purple_notify_user_info_add_pair(user_info, _("Location"), user->location); |
| 120 } |
122 } |
| 121 |
123 |
| 122 /* Other information */ |
124 /* Other information */ |
| 123 if (user->headline && strlen(user->headline)) { |
125 if (user->headline && *user->headline) { |
| 124 purple_notify_user_info_add_pair(user_info, _("Headline"), user->headline); |
126 purple_notify_user_info_add_pair(user_info, _("Headline"), user->headline); |
| 125 } |
127 } |
| 126 |
128 |
| 127 str = msim_format_now_playing(user->band_name, user->song_name); |
129 str = msim_format_now_playing(user->band_name, user->song_name); |
| 128 if (str && strlen(str)) { |
130 if (str && *str) { |
| 129 purple_notify_user_info_add_pair(user_info, _("Song"), str); |
131 purple_notify_user_info_add_pair(user_info, _("Song"), str); |
| 130 } |
132 } |
| |
133 g_free(str); |
| 131 |
134 |
| 132 /* Note: total friends only available if looked up by uid, not username. */ |
135 /* Note: total friends only available if looked up by uid, not username. */ |
| 133 if (user->total_friends) { |
136 if (user->total_friends) { |
| 134 purple_notify_user_info_add_pair(user_info, _("Total Friends"), |
137 char friends[16]; |
| 135 g_strdup_printf("%d", user->total_friends)); |
138 g_snprintf(friends, sizeof(friends), "%d", user->total_friends); |
| |
139 purple_notify_user_info_add_pair(user_info, _("Total Friends"), friends); |
| 136 } |
140 } |
| 137 |
141 |
| 138 if (full) { |
142 if (full) { |
| 139 /* Client information */ |
143 /* Client information */ |
| |
144 char *client = NULL; |
| 140 |
145 |
| 141 str = user->client_info; |
146 str = user->client_info; |
| 142 cv = user->client_cv; |
147 cv = user->client_cv; |
| 143 |
148 |
| 144 if (str && cv != 0) { |
149 if (str && cv != 0) { |
| 145 purple_notify_user_info_add_pair(user_info, _("Client Version"), |
150 client = g_strdup_printf("%s (build %d)", str, cv); |
| 146 g_strdup_printf("%s (build %d)", str, cv)); |
|
| 147 } else if (str) { |
151 } else if (str) { |
| 148 purple_notify_user_info_add_pair(user_info, _("Client Version"), |
152 client = g_strdup(str); |
| 149 g_strdup(str)); |
|
| 150 } else if (cv) { |
153 } else if (cv) { |
| 151 purple_notify_user_info_add_pair(user_info, _("Client Version"), |
154 client = g_strdup_printf("Build %d", cv); |
| 152 g_strdup_printf("Build %d", cv)); |
|
| 153 } |
155 } |
| |
156 if (client && *client) |
| |
157 purple_notify_user_info_add_pair(user_info, _("Client Version"), client); |
| |
158 g_free(client); |
| 154 } |
159 } |
| 155 } |
160 } |
| 156 |
161 |
| 157 /** Store a field of information about a buddy. */ |
162 /** Store a field of information about a buddy. */ |
| 158 void |
163 void |