comparison main.c @ 256:9fb8f597adf3

- moved is_*_account() functions to util.c. - moved get_service_type() functions to util.c.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sun, 23 Nov 2008 00:45:35 +0900
parents c2620a99622b
children 2145f975ef69
comparison
equal deleted inserted replaced
255:dcf53bc05627 256:9fb8f597adf3
40 #ifndef _WIN32 40 #ifndef _WIN32
41 extern gchar *sanitize_utf(const gchar *msg, gsize len, gsize *newlen) __attribute__ ((weak)); 41 extern gchar *sanitize_utf(const gchar *msg, gsize len, gsize *newlen) __attribute__ ((weak));
42 #endif 42 #endif
43 43
44 /* prototypes */ 44 /* prototypes */
45 static gboolean is_twitter_conv(PurpleConversation *conv);
46 static gboolean is_wassr_account(PurpleAccount *account, const char *name);
47 static gboolean is_wassr_conv(PurpleConversation *conv);
48 static gboolean is_identica_account(PurpleAccount *account, const char *name);
49 static gboolean is_identica_conv(PurpleConversation *conv);
50 static gboolean is_jisko_account(PurpleAccount *account, const char *name);
51 static gboolean is_jisko_conv(PurpleConversation *conv);
52 static void cleanup_hash_entry_func(gpointer key, gpointer value, gpointer user_data); 45 static void cleanup_hash_entry_func(gpointer key, gpointer value, gpointer user_data);
53 46
54 static void init_plugin(PurplePlugin *plugin); 47 static void init_plugin(PurplePlugin *plugin);
55 static gboolean load_plugin(PurplePlugin *plugin); 48 static gboolean load_plugin(PurplePlugin *plugin);
56 static gboolean unload_plugin(PurplePlugin *plugin); 49 static gboolean unload_plugin(PurplePlugin *plugin);
688 g_signal_connect(G_OBJECT(gtkconv->entry_buffer), "delete_range", 681 g_signal_connect(G_OBJECT(gtkconv->entry_buffer), "delete_range",
689 G_CALLBACK(delete_text_cb), conv); 682 G_CALLBACK(delete_text_cb), conv);
690 683
691 /* redraw window */ 684 /* redraw window */
692 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window); 685 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window);
693 }
694
695 gboolean
696 is_twitter_account(PurpleAccount *account, const char *name)
697 {
698 const gchar *proto = purple_account_get_protocol_id(account);
699
700 if(g_strstr_len(name, 19, "twitter@twitter.com") &&
701 g_strstr_len(proto, 11, "prpl-jabber")) {
702 return TRUE;
703 }
704
705 return FALSE;
706 }
707
708 static gboolean
709 is_twitter_conv(PurpleConversation *conv)
710 {
711 g_return_val_if_fail(conv != NULL, FALSE);
712
713 const char *name = purple_conversation_get_name(conv);
714 PurpleAccount *account = purple_conversation_get_account(conv);
715
716 return is_twitter_account(account, name);
717 }
718
719 static gboolean
720 is_wassr_account(PurpleAccount *account, const char *name)
721 {
722 const gchar *proto = purple_account_get_protocol_id(account);
723
724 if(g_strstr_len(name, 18, "wassr-bot@wassr.jp") &&
725 g_strstr_len(proto, 11, "prpl-jabber")) {
726 return TRUE;
727 }
728
729 return FALSE;
730 }
731
732 static gboolean
733 is_wassr_conv(PurpleConversation *conv)
734 {
735 g_return_val_if_fail(conv != NULL, FALSE);
736
737 const char *name = purple_conversation_get_name(conv);
738 PurpleAccount *account = purple_conversation_get_account(conv);
739
740 return is_wassr_account(account, name);
741 }
742
743 static gboolean
744 is_identica_account(PurpleAccount *account, const char *name)
745 {
746 const gchar *proto = purple_account_get_protocol_id(account);
747
748 if(g_strstr_len(name, 16, "update@identi.ca") &&
749 g_strstr_len(proto, 11, "prpl-jabber")) {
750 return TRUE;
751 }
752
753 return FALSE;
754 }
755
756 static gboolean
757 is_identica_conv(PurpleConversation *conv)
758 {
759 g_return_val_if_fail(conv != NULL, FALSE);
760
761 const char *name = purple_conversation_get_name(conv);
762 PurpleAccount *account = purple_conversation_get_account(conv);
763
764 return is_identica_account(account, name);
765 }
766
767 static gboolean
768 is_jisko_account(PurpleAccount *account, const char *name)
769 {
770 const gchar *proto = purple_account_get_protocol_id(account);
771
772 if(g_strstr_len(name, 16, "bot@jisko.net") &&
773 g_strstr_len(proto, 11, "prpl-jabber")) {
774 return TRUE;
775 }
776
777 return FALSE;
778 }
779
780 static gboolean
781 is_jisko_conv(PurpleConversation *conv)
782 {
783 g_return_val_if_fail(conv != NULL, FALSE);
784
785 const char *name = purple_conversation_get_name(conv);
786 PurpleAccount *account = purple_conversation_get_account(conv);
787
788 return is_jisko_account(account, name);
789 }
790
791 gint
792 get_service_type_by_account(PurpleAccount *account, const char *sender)
793 {
794 gint service = unknown_service;
795
796 g_return_val_if_fail(account != NULL, unknown_service);
797 g_return_val_if_fail(sender != NULL, unknown_service);
798
799 if(is_twitter_account(account, sender))
800 service = twitter_service;
801 else if(is_wassr_account(account, sender))
802 service = wassr_service;
803 else if(is_identica_account(account, sender))
804 service = identica_service;
805 else if(is_jisko_account(account, sender))
806 service = jisko_service;
807
808 return service;
809 }
810
811 gint
812 get_service_type(PurpleConversation *conv)
813 {
814 gint service = unknown_service;
815
816 g_return_val_if_fail(conv != NULL, unknown_service);
817
818 if(is_twitter_conv(conv))
819 service = twitter_service;
820 else if(is_wassr_conv(conv))
821 service = wassr_service;
822 else if(is_identica_conv(conv))
823 service = identica_service;
824 else if(is_jisko_conv(conv))
825 service = jisko_service;
826
827 return service;
828 } 686 }
829 687
830 static void 688 static void
831 conv_created_cb(PurpleConversation *conv, gpointer null) 689 conv_created_cb(PurpleConversation *conv, gpointer null)
832 { 690 {
1399 return TRUE; 1257 return TRUE;
1400 } 1258 }
1401 1259
1402 static PidginPluginUiInfo ui_info = { 1260 static PidginPluginUiInfo ui_info = {
1403 prefs_get_frame, 1261 prefs_get_frame,
1404 0, /* page number - reserved */ 1262 0, /* page number - reserved */
1405 NULL, /* reserved 1 */ 1263 NULL, /* reserved 1 */
1406 NULL, /* reserved 2 */ 1264 NULL, /* reserved 2 */
1407 NULL, /* reserved 3 */ 1265 NULL, /* reserved 3 */
1408 NULL /* reserved 4 */ 1266 NULL /* reserved 4 */
1409 }; 1267 };
1410 1268
1411 static PurplePluginInfo info = { 1269 static PurplePluginInfo info = {
1412 PURPLE_PLUGIN_MAGIC, 1270 PURPLE_PLUGIN_MAGIC,
1413 PURPLE_MAJOR_VERSION, 1271 PURPLE_MAJOR_VERSION,