Mercurial > pidgin-twitter
diff util.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 | c2944685ac8e |
line wrap: on
line diff
--- a/util.c Sat Nov 22 18:14:10 2008 +0900 +++ b/util.c Sun Nov 23 00:45:35 2008 +0900 @@ -257,3 +257,138 @@ } twitter_debug("result=%s\n", *str); } + +gboolean +is_twitter_account(PurpleAccount *account, const char *name) +{ + const gchar *proto = purple_account_get_protocol_id(account); + + if(g_strstr_len(name, 19, "twitter@twitter.com") && + g_strstr_len(proto, 11, "prpl-jabber")) { + return TRUE; + } + + return FALSE; +} + +gboolean +is_twitter_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_twitter_account(account, name); +} + +gboolean +is_wassr_account(PurpleAccount *account, const char *name) +{ + const gchar *proto = purple_account_get_protocol_id(account); + + if(g_strstr_len(name, 18, "wassr-bot@wassr.jp") && + g_strstr_len(proto, 11, "prpl-jabber")) { + return TRUE; + } + + return FALSE; +} + +gboolean +is_wassr_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_wassr_account(account, name); +} + +gboolean +is_identica_account(PurpleAccount *account, const char *name) +{ + const gchar *proto = purple_account_get_protocol_id(account); + + if(g_strstr_len(name, 16, "update@identi.ca") && + g_strstr_len(proto, 11, "prpl-jabber")) { + return TRUE; + } + + return FALSE; +} + +gboolean +is_identica_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_identica_account(account, name); +} + +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; +} + +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); +} + +gint +get_service_type_by_account(PurpleAccount *account, const char *sender) +{ + gint service = unknown_service; + + g_return_val_if_fail(account != NULL, unknown_service); + g_return_val_if_fail(sender != NULL, unknown_service); + + if(is_twitter_account(account, sender)) + service = twitter_service; + else if(is_wassr_account(account, sender)) + 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; +} + +gint +get_service_type(PurpleConversation *conv) +{ + gint service = unknown_service; + + g_return_val_if_fail(conv != NULL, unknown_service); + + if(is_twitter_conv(conv)) + service = twitter_service; + else if(is_wassr_conv(conv)) + service = wassr_service; + else if(is_identica_conv(conv)) + service = identica_service; + else if(is_jisko_conv(conv)) + service = jisko_service; + + return service; +}