Mercurial > pidgin-twitter
diff main.c @ 300:42cdddf0f747
added preliminary support for friendfeed.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 25 May 2009 22:47:44 +0900 |
parents | d68ed289ef69 |
children | e17b74fdf86a |
line wrap: on
line diff
--- a/main.c Sat Apr 25 22:27:13 2009 +0900 +++ b/main.c Mon May 25 22:47:44 2009 +0900 @@ -170,6 +170,9 @@ case jisko_service: format = RECIPIENT_FORMAT_JISKO; break; + case ffeed_service: + format = RECIPIENT_FORMAT_FFEED; + break; default: twitter_debug("unknown service\n"); break; @@ -179,7 +182,7 @@ g_free(match2); } else if(which == SENDER) { - gchar *match1 = g_match_info_fetch(match_info, 1); /*preceding CR|LF*/ + gchar *match1 = g_match_info_fetch(match_info, 1); /* preceding CR|LF */ gchar *match2 = g_match_info_fetch(match_info, 2); /* sender */ const gchar *format = NULL; @@ -206,6 +209,17 @@ g_free(match1); g_free(match2); } + else if(which == SENDER_FFEED) { + gchar *match1 = g_match_info_fetch(match_info, 1); /* preceding CR|LF */ + gchar *match2 = g_match_info_fetch(match_info, 2); /* sender */ + const gchar *format = NULL; + + format = SENDER_FORMAT_FFEED; + g_snprintf(sub, SUBST_BUF_SIZE, format, match1 ? match1: "", match2, match2); + + g_free(match1); + g_free(match2); + } else if(which == CHANNEL_WASSR && service == wassr_service) { gchar *match1 = g_match_info_fetch(match_info, 1); /* before channel */ gchar *match2 = g_match_info_fetch(match_info, 2); /* channel */ @@ -245,6 +259,9 @@ else if(which == EXCESS_LF) { g_snprintf(sub, SUBST_BUF_SIZE, "%s", "\n"); } + else if(which == TRAIL_HASH) { + g_snprintf(sub, SUBST_BUF_SIZE, "%s", ""); /* xxx --yaz */ + } g_string_append(result, sub); twitter_debug("sub = %s\n", sub); @@ -352,6 +369,9 @@ case jisko_service: screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_JISKO); break; + case ffeed_service: + screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_FFEED); + break; } if (screen_name) { @@ -374,7 +394,10 @@ /* translate */ if(purple_prefs_get_bool(OPT_TRANSLATE_SENDER)) { - translate(buffer, SENDER, service); + if(service == ffeed_service) + translate(buffer, SENDER_FFEED, service); + else + translate(buffer, SENDER, service); } if(purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)) { translate(buffer, RECIPIENT, service); @@ -406,6 +429,10 @@ translate(buffer, EXCESS_LF, service); } + if(service == ffeed_service) { + translate(buffer, TRAIL_HASH, service); + } + return FALSE; } @@ -427,6 +454,7 @@ case twitter_service: case identica_service: case jisko_service: + case ffeed_service: count = gtk_text_buffer_get_char_count(textbuffer) + (unsigned int)g_utf8_strlen(new_text, -1); markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", @@ -468,6 +496,7 @@ case twitter_service: case identica_service: case jisko_service: + case ffeed_service: count= gtk_text_buffer_get_char_count(textbuffer) - (gtk_text_iter_get_offset(end_pos) - gtk_text_iter_get_offset(start_pos)); @@ -510,6 +539,7 @@ case wassr_service: case identica_service: case jisko_service: + case ffeed_service: detach_from_conv(conv, NULL); break; default: @@ -628,6 +658,7 @@ case wassr_service: case identica_service: case jisko_service: + case ffeed_service: attach_to_conv(conv, NULL); break; default: @@ -720,6 +751,7 @@ case wassr_service: case identica_service: case jisko_service: + case ffeed_service: attach_to_conv(conv, NULL); break; default: @@ -753,6 +785,7 @@ case wassr_service: case identica_service: case jisko_service: + case ffeed_service: hash = icon_hash[service]; break; default: @@ -794,6 +827,9 @@ case jisko_service: list = purple_prefs_get_string(OPT_FILTER_JISKO); screen_name = g_strdup_printf("@%s", purple_prefs_get_string(OPT_SCREEN_NAME_JISKO)); + case ffeed_service: + list = purple_prefs_get_string(OPT_FILTER_FFEED); + screen_name = g_strdup_printf("@%s", purple_prefs_get_string(OPT_SCREEN_NAME_FFEED)); break; } g_return_if_fail(list != NULL); @@ -1037,6 +1073,7 @@ case wassr_service: case identica_service: case jisko_service: + case ffeed_service: hash = icon_hash[service]; break; default: @@ -1123,6 +1160,7 @@ /* compile regex */ regp[RECIPIENT] = g_regex_new(P_RECIPIENT, 0, 0, NULL); regp[SENDER] = g_regex_new(P_SENDER, 0, 0, NULL); + regp[SENDER_FFEED] = g_regex_new(P_SENDER_FFEED, 0, 0, NULL); regp[COMMAND] = g_regex_new(P_COMMAND, G_REGEX_RAW, 0, NULL); regp[PSEUDO] = g_regex_new(P_PSEUDO, G_REGEX_RAW, 0, NULL); regp[USER] = g_regex_new(P_USER, 0, 0, NULL); @@ -1134,8 +1172,10 @@ regp[IMAGE_WASSR] = g_regex_new(P_IMAGE_WASSR, 0, 0, NULL); regp[IMAGE_IDENTICA] = g_regex_new(P_IMAGE_IDENTICA, 0, 0, NULL); regp[IMAGE_JISKO] = g_regex_new(P_IMAGE_JISKO, 0, 0, NULL); + regp[IMAGE_FFEED] = g_regex_new(P_IMAGE_FFEED, 0, 0, NULL); regp[SIZE_128_WASSR] = g_regex_new(P_SIZE_128_WASSR, 0, 0, NULL); regp[EXCESS_LF] = g_regex_new(P_EXCESS_LF, 0, 0, NULL); + regp[TRAIL_HASH] = g_regex_new(P_TRAIL_HASH, 0, 0, NULL); for(i = twitter_service; i < NUM_SERVICES; i++) { icon_hash[i] = g_hash_table_new_full(g_str_hash, g_str_equal, @@ -1339,6 +1379,7 @@ purple_prefs_add_string(OPT_SCREEN_NAME_WASSR, EMPTY); purple_prefs_add_string(OPT_SCREEN_NAME_IDENTICA, EMPTY); purple_prefs_add_string(OPT_SCREEN_NAME_JISKO, EMPTY); + purple_prefs_add_string(OPT_SCREEN_NAME_FFEED, EMPTY); purple_prefs_add_bool(OPT_SHOW_ICON, TRUE); purple_prefs_add_int(OPT_ICON_SIZE, DEFAULT_ICON_SIZE); @@ -1353,6 +1394,7 @@ purple_prefs_add_string(OPT_FILTER_WASSR, DEFAULT_LIST); purple_prefs_add_string(OPT_FILTER_IDENTICA, DEFAULT_LIST); purple_prefs_add_string(OPT_FILTER_JISKO, DEFAULT_LIST); + purple_prefs_add_string(OPT_FILTER_FFEED, DEFAULT_LIST); } PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info)