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;
+}