comparison pidgin-twitter.h @ 194:1495b478680b

tentative support for jisko.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sat, 09 Aug 2008 04:47:18 +0900
parents 7a3ed2b113c5
children 3e459b078788
comparison
equal deleted inserted replaced
192:c76cd73cd2e6 194:1495b478680b
41 /* service id */ 41 /* service id */
42 enum { 42 enum {
43 unknown_service = -1, 43 unknown_service = -1,
44 twitter_service, 44 twitter_service,
45 wassr_service, 45 wassr_service,
46 identica_service 46 identica_service,
47 jisko_service
47 }; 48 };
48 49
49 /* container to hold icon data */ 50 /* container to hold icon data */
50 typedef struct _icon_data { 51 typedef struct _icon_data {
51 GdkPixbuf *pixbuf; /* icon pixmap */ 52 GdkPixbuf *pixbuf; /* icon pixmap */
107 #define OPT_ICON_DIR OPT_PIDGINTWITTER "/icon_dir" 108 #define OPT_ICON_DIR OPT_PIDGINTWITTER "/icon_dir"
108 #define OPT_API_BASE_POST OPT_PIDGINTWITTER "/api_base_post" 109 #define OPT_API_BASE_POST OPT_PIDGINTWITTER "/api_base_post"
109 #define OPT_SCREEN_NAME_TWITTER OPT_PIDGINTWITTER "/screen_name_twitter" 110 #define OPT_SCREEN_NAME_TWITTER OPT_PIDGINTWITTER "/screen_name_twitter"
110 #define OPT_SCREEN_NAME_WASSR OPT_PIDGINTWITTER "/screen_name_wassr" 111 #define OPT_SCREEN_NAME_WASSR OPT_PIDGINTWITTER "/screen_name_wassr"
111 #define OPT_SCREEN_NAME_IDENTICA OPT_PIDGINTWITTER "/screen_name_identica" 112 #define OPT_SCREEN_NAME_IDENTICA OPT_PIDGINTWITTER "/screen_name_identica"
113 #define OPT_SCREEN_NAME_JISKO OPT_PIDGINTWITTER "/screen_name_jisko"
112 #define OPT_PASSWORD_TWITTER OPT_PIDGINTWITTER "/password_twitter" 114 #define OPT_PASSWORD_TWITTER OPT_PIDGINTWITTER "/password_twitter"
113 #define OPT_SHOW_ICON OPT_PIDGINTWITTER "/show_icon" 115 #define OPT_SHOW_ICON OPT_PIDGINTWITTER "/show_icon"
114 #define OPT_ICON_SIZE OPT_PIDGINTWITTER "/icon_size" 116 #define OPT_ICON_SIZE OPT_PIDGINTWITTER "/icon_size"
115 #define OPT_UPDATE_ICON OPT_PIDGINTWITTER "/update_icon" 117 #define OPT_UPDATE_ICON OPT_PIDGINTWITTER "/update_icon"
116 #define OPT_ICON_MAX_COUNT OPT_PIDGINTWITTER "/icon_max_count" 118 #define OPT_ICON_MAX_COUNT OPT_PIDGINTWITTER "/icon_max_count"
123 #define SENDER_FORMAT_TWITTER "%s<a href='http://twitter.com/%s'>%s</a>: " 125 #define SENDER_FORMAT_TWITTER "%s<a href='http://twitter.com/%s'>%s</a>: "
124 #define RECIPIENT_FORMAT_WASSR "@<a href='http://wassr.jp/user/%s'>%s</a>" 126 #define RECIPIENT_FORMAT_WASSR "@<a href='http://wassr.jp/user/%s'>%s</a>"
125 #define SENDER_FORMAT_WASSR "%s<a href='http://wassr.jp/user/%s'>%s</a>: " 127 #define SENDER_FORMAT_WASSR "%s<a href='http://wassr.jp/user/%s'>%s</a>: "
126 #define RECIPIENT_FORMAT_IDENTICA "@<a href='http://identi.ca/%s'>%s</a>" 128 #define RECIPIENT_FORMAT_IDENTICA "@<a href='http://identi.ca/%s'>%s</a>"
127 #define SENDER_FORMAT_IDENTICA "%s<a href='http://identi.ca/%s'>%s</a>: " 129 #define SENDER_FORMAT_IDENTICA "%s<a href='http://identi.ca/%s'>%s</a>: "
130 #define RECIPIENT_FORMAT_JISKO "@<a href='http://jisko.net/%s'>%s</a>"
131 #define SENDER_FORMAT_JISKO "%s<a href='http://jisko.net/%s'>%s</a>: "
128 #define CHANNEL_FORMAT_WASSR "%s<a href='http://wassr.jp/channel/%s'>%s</a> " 132 #define CHANNEL_FORMAT_WASSR "%s<a href='http://wassr.jp/channel/%s'>%s</a> "
129 #define DEFAULT_LIST "(list of users: separated with ' ,:;')" 133 #define DEFAULT_LIST "(list of users: separated with ' ,:;')"
130 #define OOPS_MESSAGE "<body>Oops! Your update was over 140 characters. We sent the short version to your friends (they can view the entire update on the web).<BR></body>" 134 #define OOPS_MESSAGE "<body>Oops! Your update was over 140 characters. We sent the short version to your friends (they can view the entire update on the web).<BR></body>"
131 #define EMPTY "" 135 #define EMPTY ""
132 136
133 /* patterns */ 137 /* patterns */
134 #define P_RECIPIENT "@([A-Za-z0-9_]+)" 138 #define P_RECIPIENT "@([A-Za-z0-9_]+)"
135 #define P_SENDER "^(\\r?\\n?)\\s*([A-Za-z0-9_]+): " 139 #define P_SENDER "^(\\r?\\n?)\\s*([A-Za-z0-9_]+)(?:\\(.+\\))?: "
136 #define P_COMMAND "^(?:\\s*)([dDfFgGlLmMnNtTwW]{1}\\s+[A-Za-z0-9_]+)(?:\\s*\\Z)" 140 #define P_COMMAND "^(?:\\s*)([dDfFgGlLmMnNtTwW]{1}\\s+[A-Za-z0-9_]+)(?:\\s*\\Z)"
137 #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)" 141 #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)"
138 #define P_USER "^\\(.+?\\)\\s*([A-Za-z0-9_]+):" 142 #define P_USER "^\\(.+?\\)\\s*([A-Za-z0-9_]+):"
139 #define P_USER_FIRST_LINE "^\\(.+?\\)\\s*.+:\\s*([A-Za-z0-9_]+):" 143 #define P_USER_FIRST_LINE "^\\(.+?\\)\\s*.+:\\s*([A-Za-z0-9_]+):"
140 #define P_USER_FORMATTED "^.*?<a .+?>([A-Za-z0-9_]+)</a>:" 144 #define P_USER_FORMATTED "^.*?<a .+?>([A-Za-z0-9_]+)</a>:"
189 static gboolean is_twitter_conv(PurpleConversation *conv); 193 static gboolean is_twitter_conv(PurpleConversation *conv);
190 static gboolean is_wassr_account(PurpleAccount *account, const char *name); 194 static gboolean is_wassr_account(PurpleAccount *account, const char *name);
191 static gboolean is_wassr_conv(PurpleConversation *conv); 195 static gboolean is_wassr_conv(PurpleConversation *conv);
192 static gboolean is_identica_account(PurpleAccount *account, const char *name); 196 static gboolean is_identica_account(PurpleAccount *account, const char *name);
193 static gboolean is_identica_conv(PurpleConversation *conv); 197 static gboolean is_identica_conv(PurpleConversation *conv);
198 static gboolean is_jisko_account(PurpleAccount *account, const char *name);
199 static gboolean is_jisko_conv(PurpleConversation *conv);
194 static void conv_created_cb(PurpleConversation *conv, gpointer null); 200 static void conv_created_cb(PurpleConversation *conv, gpointer null);
195 static void deleting_conv_cb(PurpleConversation *conv); 201 static void deleting_conv_cb(PurpleConversation *conv);
196 static gboolean receiving_im_cb(PurpleAccount *account, char **sender, char **buffer, PurpleConversation *conv, PurpleMessageFlags *flags, void *data); 202 static gboolean receiving_im_cb(PurpleAccount *account, char **sender, char **buffer, PurpleConversation *conv, PurpleMessageFlags *flags, void *data);
197 static void insert_icon_at_mark(GtkTextMark *requested_mark, gpointer user_data); 203 static void insert_icon_at_mark(GtkTextMark *requested_mark, gpointer user_data);
198 static void insert_requested_icon(const gchar *user_name, gint service); 204 static void insert_requested_icon(const gchar *user_name, gint service);