Mercurial > pidgin-twitter
diff pidgin-twitter.c @ 240:405f8b880142
restored jisko support.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 07 Oct 2008 16:44:02 +0900 |
parents | e3a24c98772d |
children | bd7478109727 |
line wrap: on
line diff
--- a/pidgin-twitter.c Tue Oct 07 14:51:22 2008 +0900 +++ b/pidgin-twitter.c Tue Oct 07 16:44:02 2008 +0900 @@ -24,8 +24,8 @@ /***********/ /* globals */ /***********/ -#define NUM_REGPS 12 -#define NUM_SERVICES 3 /* twitter, wassr, identica. */ +#define NUM_REGPS 13 +#define NUM_SERVICES 4 /* twitter, wassr, identica, jisko. */ static GRegex *regp[NUM_REGPS]; static gboolean suppress_oops = FALSE; static GHashTable *icon_hash[NUM_SERVICES]; @@ -909,6 +909,9 @@ case identica_service: format = RECIPIENT_FORMAT_IDENTICA; break; + case jisko_service: + format = RECIPIENT_FORMAT_JISKO; + break; default: twitter_debug("unknown service\n"); break; @@ -932,6 +935,9 @@ case identica_service: format = SENDER_FORMAT_IDENTICA; break; + case jisko_service: + format = SENDER_FORMAT_JISKO; + break; default: twitter_debug("unknown service\n"); break; @@ -1069,6 +1075,9 @@ case identica_service: screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_IDENTICA); break; + case jisko_service: + screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_JISKO); + break; } if (screen_name) { @@ -1135,6 +1144,7 @@ switch(service) { case twitter_service: case identica_service: + case jisko_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>", @@ -1175,6 +1185,7 @@ switch(service) { case twitter_service: case identica_service: + case jisko_service: count= gtk_text_buffer_get_char_count(textbuffer) - (gtk_text_iter_get_offset(end_pos) - gtk_text_iter_get_offset(start_pos)); @@ -1216,6 +1227,7 @@ case twitter_service: case wassr_service: case identica_service: + case jisko_service: detach_from_conv(conv, NULL); break; default: @@ -1333,6 +1345,7 @@ case twitter_service: case wassr_service: case identica_service: + case jisko_service: attach_to_conv(conv, NULL); break; default: @@ -1474,6 +1487,30 @@ return is_identica_account(account, name); } +static gboolean +is_jisko_account(PurpleAccount *account, const char *name) +{ + const gchar *proto = purple_account_get_protocol_id(account); + + if(g_strstr_len(name, 16, "bot@jisko.net") && + g_strstr_len(proto, 11, "prpl-jabber")) { + return TRUE; + } + + return FALSE; +} + +static gboolean +is_jisko_conv(PurpleConversation *conv) +{ + g_return_val_if_fail(conv != NULL, FALSE); + + const char *name = purple_conversation_get_name(conv); + PurpleAccount *account = purple_conversation_get_account(conv); + + return is_jisko_account(account, name); +} + static gint get_service_type_by_account(PurpleAccount *account, const char *sender) { @@ -1488,6 +1525,8 @@ service = wassr_service; else if(is_identica_account(account, sender)) service = identica_service; + else if(is_jisko_account(account, sender)) + service = jisko_service; return service; } @@ -1505,6 +1544,8 @@ service = wassr_service; else if(is_identica_conv(conv)) service = identica_service; + else if(is_jisko_conv(conv)) + service = jisko_service; return service; } @@ -1531,6 +1572,7 @@ break; case wassr_service: case identica_service: + case jisko_service: attach_to_conv(conv, NULL); break; default: @@ -1567,6 +1609,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); break; @@ -1603,6 +1648,10 @@ list = purple_prefs_get_string(OPT_FILTER_IDENTICA); screen_name = g_strdup_printf("@%s", purple_prefs_get_string(OPT_SCREEN_NAME_IDENTICA)); break; + 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)); + break; } g_return_if_fail(list != NULL); if(strstr(list, DEFAULT_LIST)) @@ -1829,6 +1878,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); } @@ -1875,6 +1927,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); break; @@ -1933,6 +1988,11 @@ icon_hash[identica_service], user_name); regp_id = IMAGE_IDENTICA; } + else if(service == jisko_service) { + data = (icon_data *)g_hash_table_lookup( + icon_hash[jisko_service], user_name); + regp_id = IMAGE_JISKO; + } if(!url_text) { if(data) { @@ -2100,6 +2160,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); } @@ -2171,6 +2234,9 @@ case identica_service: suffix = "identica"; break; + case jisko_service: + suffix = "jisko"; + break; default: twitter_debug("unknown service\n"); break; @@ -2235,6 +2301,10 @@ suffix = "identica"; hash = icon_hash[identica_service]; break; + case jisko_service: + suffix = "jisko"; + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); break; @@ -2324,6 +2394,9 @@ case identica_service: url = g_strdup_printf("http://identi.ca/%s", user_name); break; + case jisko_service: + url = g_strdup_printf("http://jisko.net/%s", user_name); + break; default: twitter_debug("unknown service\n"); break; @@ -2337,7 +2410,8 @@ /* gotdata will be released in got_icon_cb */ if(service == twitter_service || service == wassr_service || - service == identica_service) { + service == identica_service || + service == jisko_service) { data->fetch_data = purple_util_fetch_url(url, TRUE, NULL, TRUE, got_page_cb, gotdata); } @@ -2369,6 +2443,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); break; @@ -2468,6 +2545,9 @@ case identica_service: hash = icon_hash[identica_service]; break; + case jisko_service: + hash = icon_hash[jisko_service]; + break; default: twitter_debug("unknown service\n"); break; @@ -2611,10 +2691,11 @@ regp[PSEUDO] = g_regex_new(P_PSEUDO, G_REGEX_RAW, 0, NULL); regp[USER] = g_regex_new(P_USER, 0, 0, NULL); regp[CHANNEL_WASSR] = g_regex_new(P_CHANNEL, 0, 0, NULL); + regp[TAG_IDENTICA] = g_regex_new(P_TAG_IDENTICA, 0, 0, NULL); regp[IMAGE_TWITTER] = g_regex_new(P_IMAGE_TWITTER, 0, 0, NULL); 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[TAG_IDENTICA] = g_regex_new(P_TAG_IDENTICA, 0, 0, NULL); + regp[IMAGE_JISKO] = g_regex_new(P_IMAGE_JISKO, 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); @@ -2913,6 +2994,13 @@ g_signal_connect(e, "changed", G_CALLBACK(text_changed_cb), &e); + e = GTK_WIDGET(gtk_builder_get_object (builder, "account_jisko")); + g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_JISKO); + text = purple_prefs_get_string(OPT_SCREEN_NAME_JISKO); + gtk_entry_set_text(GTK_ENTRY(e), text); + g_signal_connect(e, "changed", + G_CALLBACK(text_changed_cb), &e); + e = GTK_WIDGET(gtk_builder_get_object (builder, "account_api")); g_object_set_data(G_OBJECT(e), "pref", OPT_API_BASE_POST); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), @@ -3025,6 +3113,13 @@ g_signal_connect(e, "changed", G_CALLBACK(text_changed_cb), &e); + e = GTK_WIDGET(gtk_builder_get_object (builder, "filter_jisko")); + g_object_set_data(G_OBJECT(e), "pref", OPT_FILTER_JISKO); + text = purple_prefs_get_string(OPT_FILTER_JISKO); + gtk_entry_set_text(GTK_ENTRY(e), text); + g_signal_connect(e, "changed", + G_CALLBACK(text_changed_cb), &e); + /*************/ @@ -3238,7 +3333,7 @@ PURPLE_PRIORITY_DEFAULT, /**< priority */ PLUGIN_ID, /**< id */ "Pidgin-Twitter", /**< name */ - "0.8.0b1", /**< version */ + "0.8.0b2", /**< version */ "provides useful features for twitter", /** summary */ "provides useful features for twitter", /** desc */ "Yoshiki Yazawa, mikanbako, \nKonosuke Watanabe, IWATA Ray, \nmojin, umq, \nthe pidging-twitter team", /**< author */ @@ -3288,6 +3383,7 @@ purple_prefs_add_string(OPT_PASSWORD_TWITTER, EMPTY); 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_bool(OPT_SHOW_ICON, TRUE); purple_prefs_add_int(OPT_ICON_SIZE, DEFAULT_ICON_SIZE); @@ -3301,6 +3397,7 @@ purple_prefs_add_string(OPT_FILTER_TWITTER, DEFAULT_LIST); 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_INIT_PLUGIN(pidgin_twitter, init_plugin, info)