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),