Mercurial > pidgin-twitter
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, |