comparison pidgin-twitter.c @ 158:ae09f0d93b17

fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
author Yoshiki Yazawa <yaz@honeyplnaet.jp>
date Sat, 26 Jul 2008 03:46:23 +0900
parents fbe526b20885
children b771ddf0b683
comparison
equal deleted inserted replaced
157:fbe526b20885 158:ae09f0d93b17
511 char *request, *header; 511 char *request, *header;
512 char *basic_auth, *basic_auth_encoded; 512 char *basic_auth, *basic_auth_encoded;
513 513
514 twitter_debug("called\n"); 514 twitter_debug("called\n");
515 515
516 PurpleConversation *conv = (PurpleConversation *)data; 516 /* if disabled, just return */
517 if(!conv) 517 if(!purple_prefs_get_bool(OPT_API_BASE_POST))
518 return FALSE; /* cease fetch */ 518 return TRUE;
519 519
520 const char *screen_name = 520 const char *screen_name =
521 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER); 521 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER);
522 const char *password = 522 const char *password =
523 purple_prefs_get_string(OPT_PASSWORD_TWITTER); 523 purple_prefs_get_string(OPT_PASSWORD_TWITTER);
1418 1418
1419 gint service = get_service_type(conv); 1419 gint service = get_service_type(conv);
1420 /* only attach to twitter conversation window */ 1420 /* only attach to twitter conversation window */
1421 switch(service) { 1421 switch(service) {
1422 case twitter_service: 1422 case twitter_service:
1423 if(purple_prefs_get_bool(OPT_API_BASE_POST)) { 1423 get_status_with_api((gpointer)conv);
1424 get_status_with_api((gpointer)conv); 1424 source.id = g_timeout_add_seconds(
1425 source.id = g_timeout_add_seconds( 1425 purple_prefs_get_int(OPT_API_BASE_GET_INTERVAL),
1426 purple_prefs_get_int(OPT_API_BASE_GET_INTERVAL), 1426 get_status_with_api, (gpointer)conv);
1427 get_status_with_api, (gpointer)conv); 1427 source.conv = conv;
1428 source.conv = conv;
1429 }
1430 attach_to_conv(conv, NULL); 1428 attach_to_conv(conv, NULL);
1431 break; 1429 break;
1432 case wassr_service: 1430 case wassr_service:
1433 case identica_service: 1431 case identica_service:
1434 attach_to_conv(conv, NULL); 1432 attach_to_conv(conv, NULL);
2312 static void 2310 static void
2313 api_base_post_cb(const char *name, PurplePrefType type, gconstpointer value, 2311 api_base_post_cb(const char *name, PurplePrefType type, gconstpointer value,
2314 gpointer data) 2312 gpointer data)
2315 { 2313 {
2316 signed_on_cb(NULL); 2314 signed_on_cb(NULL);
2315 get_status_with_api((gpointer)(source.conv));
2317 } 2316 }
2318 2317
2319 2318
2320 2319
2321 static gboolean 2320 static gboolean
2645 g_object_set_data(G_OBJECT(e), "pref", OPT_API_BASE_POST); 2644 g_object_set_data(G_OBJECT(e), "pref", OPT_API_BASE_POST);
2646 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), 2645 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e),
2647 purple_prefs_get_bool(OPT_API_BASE_POST)); 2646 purple_prefs_get_bool(OPT_API_BASE_POST));
2648 g_signal_connect(e, "toggled", 2647 g_signal_connect(e, "toggled",
2649 G_CALLBACK(bool_toggled_cb), &e); 2648 G_CALLBACK(bool_toggled_cb), &e);
2650
2651 purple_prefs_connect_callback(plugin, OPT_API_BASE_POST, /* xxx divide? */ 2649 purple_prefs_connect_callback(plugin, OPT_API_BASE_POST, /* xxx divide? */
2652 api_base_post_cb, NULL); 2650 api_base_post_cb, NULL);
2653 2651
2654 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_api_password")); 2652 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_api_password"));
2655 g_object_set_data(G_OBJECT(e), "pref", OPT_PASSWORD_TWITTER); 2653 g_object_set_data(G_OBJECT(e), "pref", OPT_PASSWORD_TWITTER);