Mercurial > pidgin-twitter
comparison twitter_api.c @ 347:33d2551727ba
embed "in reply to foo" link to each reply message
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 14 Dec 2009 20:14:31 +0900 |
parents | 2e37e715e4a6 |
children | ff078879e68e |
comparison
equal
deleted
inserted
replaced
346:dbebabe99035 | 347:33d2551727ba |
---|---|
150 xmlFree(str); | 150 xmlFree(str); |
151 } | 151 } |
152 else if(!xmlStrcmp(nptr->name, (xmlChar *)"user")) { | 152 else if(!xmlStrcmp(nptr->name, (xmlChar *)"user")) { |
153 parse_user(nptr, st); | 153 parse_user(nptr, st); |
154 } | 154 } |
155 else if(!xmlStrcmp(nptr->name, (xmlChar *)"in_reply_to_status_id")) { | |
156 gchar *str = (gchar *)xmlNodeGetContent(nptr); | |
157 st->in_reply_to_status_id = atoll(str); | |
158 twitter_debug("in_reply_to_status_id=%llu\n", (long long unsigned int)st->in_reply_to_status_id); | |
159 xmlFree(str); | |
160 } | |
161 else if(!xmlStrcmp(nptr->name, (xmlChar *)"in_reply_to_screen_name")) { | |
162 gchar *str = (gchar *)xmlNodeGetContent(nptr); | |
163 st->in_reply_to_screen_name = g_strdup(str); | |
164 twitter_debug("in_reply_to_screen_name=%s\n", st->in_reply_to_screen_name); | |
165 xmlFree(str); | |
166 } | |
155 } | 167 } |
156 } | 168 } |
157 } | 169 } |
158 | 170 |
159 static void | 171 static void |
161 { | 173 { |
162 g_free(st->created_at); | 174 g_free(st->created_at); |
163 g_free(st->text); | 175 g_free(st->text); |
164 g_free(st->screen_name); | 176 g_free(st->screen_name); |
165 g_free(st->profile_image_url); | 177 g_free(st->profile_image_url); |
178 g_free(st->in_reply_to_screen_name); | |
166 } | 179 } |
167 | 180 |
168 static gboolean | 181 static gboolean |
169 is_posted_message(status_t *status, guint64 lastid) | 182 is_posted_message(status_t *status, guint64 lastid) |
170 { | 183 { |
262 | 275 |
263 sender = g_strdup("twitter@twitter.com"); | 276 sender = g_strdup("twitter@twitter.com"); |
264 | 277 |
265 PurpleMessageFlags flag = PURPLE_MESSAGE_RECV; | 278 PurpleMessageFlags flag = PURPLE_MESSAGE_RECV; |
266 | 279 |
267 msg = g_strdup_printf("%s: %s ptmsgid=%llu", | 280 msg = g_strdup_printf("%s: %s pttag=%llu:%llu:%s", |
268 st->screen_name, st->text, | 281 st->screen_name, st->text, |
269 (long long unsigned int)st->id); | 282 (long long unsigned int)st->id, |
283 (long long unsigned int)st->in_reply_to_status_id, | |
284 st->in_reply_to_screen_name ? st->in_reply_to_screen_name : ""); | |
270 | 285 |
271 /* apply filter */ | 286 /* apply filter */ |
272 if(purple_prefs_get_bool(OPT_FILTER)) { | 287 if(purple_prefs_get_bool(OPT_FILTER)) { |
273 apply_filter(&sender, &msg, &flag, twitter_service); | 288 apply_filter(&sender, &msg, &flag, twitter_service); |
274 } | 289 } |
454 } | 469 } |
455 | 470 |
456 xmlFreeDoc(doc); | 471 xmlFreeDoc(doc); |
457 xmlCleanupParser(); | 472 xmlCleanupParser(); |
458 | 473 |
459 m = g_strdup_printf("%s ptmsgid=%llu", | 474 m = g_strdup_printf("%s pttag=%llu:0:", |
460 tm->status, | 475 tm->status, |
461 (long long unsigned int)st->id); | 476 (long long unsigned int)st->id); |
462 | 477 |
463 purple_conv_im_write(conv->u.im, | 478 purple_conv_im_write(conv->u.im, |
464 purple_account_get_username(tm->account), | 479 purple_account_get_username(tm->account), |