annotate pidgin-twitter.h @ 226:8da85ae0aa2c

tweaked user pattern and channel pattern so that they can be matched regardless of surrounding anchor markups.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Sat, 13 Sep 2008 01:20:13 +0900
parents 1ef5aa4883a1
children 29c741b1b921
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
1 #ifndef _PIDGIN_TWITTER_H_
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2 #define _PIDGIN_TWITTER_H_
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 119
diff changeset
4 #define _BSD_SOURCE
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
5 #define _XOPEN_SOURCE 600
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
6 #include <stdio.h>
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
7 #include <stdlib.h>
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
8 #include <string.h>
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
9 #include <glib.h>
159
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 153
diff changeset
10 #include <glib/gstdio.h>
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
11 #include <sys/stat.h>
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
12 #include <time.h>
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
13 #include <locale.h>
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
14
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
15 #include <gdk-pixbuf/gdk-pixbuf.h>
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
16 #include <libxml/xmlreader.h>
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
17
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
18 #include "gtkplugin.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
19 #include "util.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
20 #include "debug.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
21 #include "connection.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
22 #include "version.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
23 #include "sound.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
24 #include "gtkconv.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
25 #include "gtkimhtml.h"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
26
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
27 /* regp id */
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
28 enum {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
29 RECIPIENT = 0,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
30 SENDER,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
31 COMMAND,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
32 PSEUDO,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
33 USER,
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
34 CHANNEL_WASSR,
198
85484ddf8823 - changed the way of fetching icons for wassr. now pidgin-twitter downloads html first even for wassr.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 196
diff changeset
35 IMAGE_TWITTER,
85484ddf8823 - changed the way of fetching icons for wassr. now pidgin-twitter downloads html first even for wassr.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 196
diff changeset
36 IMAGE_WASSR,
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
37 IMAGE_IDENTICA,
205
bc1448e72b1b workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 203
diff changeset
38 TAG_IDENTICA,
bc1448e72b1b workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 203
diff changeset
39 SIZE_128_WASSR
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
40 };
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
41
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
42 /* service id */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
43 enum {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
44 unknown_service = -1,
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
45 twitter_service,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
46 wassr_service,
200
9a2d727f39b4 removed jisko support as a protest to their expulsion policy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 198
diff changeset
47 identica_service
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
48 };
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
49
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
50 /* container to hold icon data */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
51 typedef struct _icon_data {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 165
diff changeset
52 GdkPixbuf *pixbuf; /* icon pixmap */
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
53 gboolean requested; /* TRUE if download icon has been requested */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
54 GList *request_list; /* marker list */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
55 PurpleUtilFetchUrlData *fetch_data; /* icon fetch data */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
56 const gchar *img_type; /* image type */
198
85484ddf8823 - changed the way of fetching icons for wassr. now pidgin-twitter downloads html first even for wassr.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 196
diff changeset
57 gchar *icon_url; /* url for the user's icon */
152
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
58 gint use_count; /* usage count */
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
59 time_t mtime; /* mtime of file */
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
60 } icon_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
61
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
62 /* used by got_icon_cb */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
63 typedef struct _got_icon_data {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
64 gchar *user_name;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
65 gint service;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
66 } got_icon_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
67
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
68 /* used by eval */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
69 typedef struct _eval_data {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
70 gint which;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
71 gint service;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
72 } eval_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
73
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
74 /* container for api based retrieve */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
75 typedef struct _status {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
76 gchar *created_at;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
77 gchar *text;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
78 gchar *screen_name;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
79 gchar *profile_image_url;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
80 time_t time;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
81 guint id;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
82 } status_t;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
83
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
84 /* container for api based post */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
85 typedef struct twitter_message {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
86 PurpleAccount *account;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
87 char *status;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
88 time_t time;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
89 } twitter_message_t;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
90
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
91 #define PLUGIN_ID "gtk-honeyplanet-pidgin_twitter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
92 #define PLUGIN_NAME "pidgin-twitter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
93
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
94 /* options */
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
95 #define OPT_PIDGINTWITTER "/plugins/pidgin_twitter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
96 #define OPT_TRANSLATE_RECIPIENT OPT_PIDGINTWITTER "/translate_recipient"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
97 #define OPT_TRANSLATE_SENDER OPT_PIDGINTWITTER "/translate_sender"
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
98 #define OPT_TRANSLATE_CHANNEL OPT_PIDGINTWITTER "/translate_channel"
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
99 #define OPT_PLAYSOUND_RECIPIENT OPT_PIDGINTWITTER "/playsound_recipient"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
100 #define OPT_PLAYSOUND_SENDER OPT_PIDGINTWITTER "/playsound_sender"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
101 #define OPT_SOUNDID_RECIPIENT OPT_PIDGINTWITTER "/soundid_recipient"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
102 #define OPT_SOUNDID_SENDER OPT_PIDGINTWITTER "/soundid_sender"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
103 #define OPT_ESCAPE_PSEUDO OPT_PIDGINTWITTER "/escape_pseudo"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
104 #define OPT_USERLIST_RECIPIENT OPT_PIDGINTWITTER "/userlist_recipient"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
105 #define OPT_USERLIST_SENDER OPT_PIDGINTWITTER "/userlist_sender"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
106 #define OPT_COUNTER OPT_PIDGINTWITTER "/counter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
107 #define OPT_SUPPRESS_OOPS OPT_PIDGINTWITTER "/suppress_oops"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
108 #define OPT_PREVENT_NOTIFICATION OPT_PIDGINTWITTER "/prevent_notification"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
109 #define OPT_ICON_DIR OPT_PIDGINTWITTER "/icon_dir"
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 69
diff changeset
110 #define OPT_API_BASE_POST OPT_PIDGINTWITTER "/api_base_post"
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 107
diff changeset
111 #define OPT_SCREEN_NAME_TWITTER OPT_PIDGINTWITTER "/screen_name_twitter"
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 107
diff changeset
112 #define OPT_SCREEN_NAME_WASSR OPT_PIDGINTWITTER "/screen_name_wassr"
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 107
diff changeset
113 #define OPT_SCREEN_NAME_IDENTICA OPT_PIDGINTWITTER "/screen_name_identica"
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 107
diff changeset
114 #define OPT_PASSWORD_TWITTER OPT_PIDGINTWITTER "/password_twitter"
99
f207cc8da6cd quick hack to make show icon configurable
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 98
diff changeset
115 #define OPT_SHOW_ICON OPT_PIDGINTWITTER "/show_icon"
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 105
diff changeset
116 #define OPT_ICON_SIZE OPT_PIDGINTWITTER "/icon_size"
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
117 #define OPT_UPDATE_ICON OPT_PIDGINTWITTER "/update_icon"
152
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
118 #define OPT_ICON_MAX_COUNT OPT_PIDGINTWITTER "/icon_max_count"
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
119 #define OPT_ICON_MAX_DAYS OPT_PIDGINTWITTER "/icon_max_days"
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
120 #define OPT_API_BASE_GET_INTERVAL OPT_PIDGINTWITTER "/api_base_get_interval"
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
121 #define OPT_LOG_OUTPUT OPT_PIDGINTWITTER "/log_output"
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
122 #define OPT_FILTER OPT_PIDGINTWITTER "/filter"
215
6b258bdd9c49 added a feature of excluding reply to me from filter application.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 214
diff changeset
123 #define OPT_FILTER_EXCLUDE_REPLY OPT_PIDGINTWITTER "/filter_exclude_reply"
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
124 #define OPT_FILTER_TWITTER OPT_PIDGINTWITTER "/filter_twitter"
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
125 #define OPT_FILTER_WASSR OPT_PIDGINTWITTER "/filter_wassr"
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
126 #define OPT_FILTER_IDENTICA OPT_PIDGINTWITTER "/filter_identica"
215
6b258bdd9c49 added a feature of excluding reply to me from filter application.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 214
diff changeset
127
214
148fa8a8be8e - trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 211
diff changeset
128 #ifdef _WIN32
148fa8a8be8e - trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 211
diff changeset
129 #define OPT_PIDGIN_BLINK_IM PIDGIN_PREFS_ROOT "/win32/blink_im"
148fa8a8be8e - trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 211
diff changeset
130 #endif
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
131
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
132 /* formats and templates */
223
c3efae72f72a tweaked the recipient pattern to allow mail addresses or some special strings such as "idolm@ster."
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 222
diff changeset
133 #define RECIPIENT_FORMAT_TWITTER "%s@<a href='http://twitter.com/%s'>%s</a>"
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
134 #define SENDER_FORMAT_TWITTER "%s<a href='http://twitter.com/%s'>%s</a>: "
223
c3efae72f72a tweaked the recipient pattern to allow mail addresses or some special strings such as "idolm@ster."
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 222
diff changeset
135 #define RECIPIENT_FORMAT_WASSR "%s@<a href='http://wassr.jp/user/%s'>%s</a>"
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 80
diff changeset
136 #define SENDER_FORMAT_WASSR "%s<a href='http://wassr.jp/user/%s'>%s</a>: "
223
c3efae72f72a tweaked the recipient pattern to allow mail addresses or some special strings such as "idolm@ster."
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 222
diff changeset
137 #define RECIPIENT_FORMAT_IDENTICA "%s@<a href='http://identi.ca/%s'>%s</a>"
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
138 #define SENDER_FORMAT_IDENTICA "%s<a href='http://identi.ca/%s'>%s</a>: "
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
139 #define CHANNEL_FORMAT_WASSR "%s<a href='http://wassr.jp/channel/%s'>%s</a> "
202
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 200
diff changeset
140 #define CHANNEL_FORMAT_IDENTICA "%s<a href='http://identi.ca/tag/%s'>%s</a> "
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
141 #define TAG_FORMAT_IDENTICA "#<a href='http://identi.ca/tag/%s'>%s</a>"
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
142
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
143 #define DEFAULT_LIST "(list of users: separated with ' ,:;')"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
144 #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>"
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 69
diff changeset
145 #define EMPTY ""
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
146
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
147 /* patterns */
225
1ef5aa4883a1 adapted to the change of user name definition in wassr. now '-' can be included.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 224
diff changeset
148 #define P_RECIPIENT "(^|\\s+|[.[:^print:]])@([-A-Za-z0-9_]+)"
1ef5aa4883a1 adapted to the change of user name definition in wassr. now '-' can be included.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 224
diff changeset
149 #define P_SENDER "^(\\r?\\n?)\\s*([-A-Za-z0-9_]+)(?:\\s*\\(.+\\))?: "
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
150 #define P_COMMAND "^(?:\\s*)([dDfFgGlLmMnNtTwW]{1}\\s+[A-Za-z0-9_]+)(?:\\s*\\Z)"
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
151 #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)"
226
8da85ae0aa2c tweaked user pattern and channel pattern so that they can be matched regardless of surrounding anchor markups.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 225
diff changeset
152 #define P_USER "^.*?(?:<a .+?>)?([-A-Za-z0-9_]+)(?:</a>)?:"
8da85ae0aa2c tweaked user pattern and channel pattern so that they can be matched regardless of surrounding anchor markups.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 225
diff changeset
153 #define P_CHANNEL "^(.*?(?:<a .+?>)?[-A-Za-z0-9_]+(?:</a>)?: \\r?\\n?#)([A-Za-z0-9_]+) "
198
85484ddf8823 - changed the way of fetching icons for wassr. now pidgin-twitter downloads html first even for wassr.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 196
diff changeset
154 #define P_IMAGE_TWITTER "<a href=\"/account/profile_image/.+?\"><img .+? id=\"profile-image\".*src=\"(http://.+)\" .+?/>"
85484ddf8823 - changed the way of fetching icons for wassr. now pidgin-twitter downloads html first even for wassr.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 196
diff changeset
155 #define P_IMAGE_WASSR "<div class=\"image\"><a href=\".+\"><img src=\"(.+)\" width=\".+?\" /></a></div>"
206
99c4946e8449 now pidgin-twitter shows the default icon for identi.ca when a user has not uploaded the custom icon.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
156 #define P_IMAGE_IDENTICA "<img src=\"(http://.+.identi.ca/.+)\" class=\"avatar profile\" width=\"96\" height=\"96\" alt=\"[A-Za-z0-0_]+\"/>"
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
157 #define P_TAG_IDENTICA "#([A-Za-z0-9]+)"
205
bc1448e72b1b workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 203
diff changeset
158 #define P_SIZE_128_WASSR "\\.128\\."
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
159
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
160 /* twitter API specific macros */
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
161 #define TWITTER_BASE_URL "http://twitter.com"
161
5dcd8699cba0 added a workaround for posting via broken firewall, for example notorious "watchguard". if you got error code 400, try hidden prefs value "broken_firewall" be 1.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 160
diff changeset
162 #define TWITTER_STATUS_GET "GET /statuses/friends_timeline.xml HTTP/1.1\r\n" \
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
163 "Host: twitter.com\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
164 "User-Agent: pidgin-twitter\r\n" \
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
165 "Authorization: Basic %s\r\n"
161
5dcd8699cba0 added a workaround for posting via broken firewall, for example notorious "watchguard". if you got error code 400, try hidden prefs value "broken_firewall" be 1.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 160
diff changeset
166 #define TWITTER_STATUS_POST "POST /statuses/update.xml HTTP/1.1\r\n" \
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
167 "Host: twitter.com\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
168 "User-Agent: pidgin-twitter\r\n" \
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
169 "Authorization: Basic %s\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
170 "Content-Length: %d\r\n"
165
ade632c88e33 we've got the official source value for pidgin-twitter.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 164
diff changeset
171 #define TWITTER_STATUS_FORMAT "status=%s&source=pidgintwitter"
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
172 #define TWITTER_DEFAULT_INTERVAL (60)
160
aef26b56a54b now it falls back to twitter default icon if the user has not set custom icon.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 159
diff changeset
173 #define TWITTER_DEFAULT_ICON_URL "http://static.twitter.com/images/default_profile_bigger.png"
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
174
222
b168502b73c3 expanded size of substitution buffer to 32KB. 128 bytes were not sufficient if both user name and channel name are rather long. tenforward reported this problem and umq pointed out the cause.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 219
diff changeset
175 /* size of substitution buffer */
b168502b73c3 expanded size of substitution buffer to 32KB. 128 bytes were not sufficient if both user name and channel name are rather long. tenforward reported this problem and umq pointed out the cause.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 219
diff changeset
176 #define SUBST_BUF_SIZE (32 * 1024)
b168502b73c3 expanded size of substitution buffer to 32KB. 128 bytes were not sufficient if both user name and channel name are rather long. tenforward reported this problem and umq pointed out the cause.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 219
diff changeset
177
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
178 /* wassr specific macros */
209
d512d1d8712f improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 206
diff changeset
179 #define WASSR_POST_LEN (255)
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
180 #define IDENTICA_POST_LEN (140)
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
181
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
182 /* misc macros */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
183 #define DEFAULT_ICON_SIZE (48)
163
84cb6e8ad755 raise the default icon update threshold to 50 times or 7days.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
184 #define DEFAULT_ICON_MAX_COUNT (50)
84cb6e8ad755 raise the default icon update threshold to 50 times or 7days.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
185 #define DEFAULT_ICON_MAX_DAYS (7)
152
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
186 #define DAYS_TO_SECONDS(d) ((d) * 86400)
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
187
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
188 /* debug macros */
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
189 #define twitter_debug(fmt, ...) do { if(purple_prefs_get_bool(OPT_LOG_OUTPUT)) purple_debug(PURPLE_DEBUG_INFO, PLUGIN_NAME, "%s():%4d: " fmt, __FUNCTION__, (int)__LINE__, ## __VA_ARGS__); } while(0);
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
190 #define twitter_error(fmt, ...) do { if(purple_prefs_get_bool(OPT_LOG_OUTPUT)) purple_debug(PURPLE_DEBUG_ERROR, PLUGIN_NAME, "%s():%4d: " fmt, __FUNCTION__, (int)__LINE__, ## __VA_ARGS__); } while(0);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
191
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
192 /* prototypes */
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
193 static void escape(gchar **str);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
194 static gboolean sending_im_cb(PurpleAccount *account, char *recipient, char **buffer, void *data);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
195 static gboolean eval(const GMatchInfo *match_info, GString *result, gpointer user_data);
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
196 static void translate(gchar **str, gint which, gint service);
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
197 static void playsound(gchar **str, gint which);
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
198 static gboolean writing_im_cb(PurpleAccount *account, char *sender, char **buffer, PurpleConversation *conv, int flags, void *data);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
199 static void insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position, gchar *new_text, gint new_text_length, gpointer user_data);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
200 static void delete_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *start_pos, GtkTextIter *end_pos, gpointer user_data);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
201 static void detach_from_window(void);
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 80
diff changeset
202 static void detach_from_conv(PurpleConversation *conv, gpointer null);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 82
diff changeset
203 static void delete_requested_icon_marks(PidginConversation *gtkconv, GHashTable *table);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
204 static void attach_to_window(void);
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 80
diff changeset
205 static void attach_to_conv(PurpleConversation *conv, gpointer null);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
206 static gboolean is_twitter_account(PurpleAccount *account, const char *name);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
207 static gboolean is_twitter_conv(PurpleConversation *conv);
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 72
diff changeset
208 static gboolean is_wassr_account(PurpleAccount *account, const char *name);
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 72
diff changeset
209 static gboolean is_wassr_conv(PurpleConversation *conv);
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
210 static gboolean is_identica_account(PurpleAccount *account, const char *name);
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
211 static gboolean is_identica_conv(PurpleConversation *conv);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
212 static void conv_created_cb(PurpleConversation *conv, gpointer null);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
213 static void deleting_conv_cb(PurpleConversation *conv);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
214 static gboolean receiving_im_cb(PurpleAccount *account, char **sender, char **buffer, PurpleConversation *conv, PurpleMessageFlags *flags, void *data);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 82
diff changeset
215 static void insert_icon_at_mark(GtkTextMark *requested_mark, gpointer user_data);
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
216 static void insert_requested_icon(const gchar *user_name, gint service);
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
217 static void got_icon_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, gsize len, const gchar *error_message);
152
588da540685a work in progress icon update feature. the default thresholds have been set to 5 times or 1 day for testing.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
218 static void request_icon(const char *user_name, gint service, gboolean renew);
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
219 static void mark_icon_for_user(GtkTextMark *mark, const gchar *user_name, gint service);
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
220 static gboolean displaying_im_cb(PurpleAccount *account, const char *who, char **message, PurpleConversation *conv, PurpleMessageFlags flags, void *data);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
221 static void displayed_im_cb(PurpleAccount *account, const char *who, char *message, PurpleConversation *conv, PurpleMessageFlags flags);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
222 static gboolean load_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
223 static gboolean unload_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
224 static void counter_prefs_cb(const char *name, PurplePrefType type, gconstpointer val, gpointer data);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
225
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
226 static void init_plugin(PurplePlugin *plugin);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 78
diff changeset
227 static void remove_marks_func(gpointer key, gpointer value, gpointer user_data);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 78
diff changeset
228 static void cancel_fetch_func(gpointer key, gpointer value, gpointer user_data);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
229 static gint get_service_type(PurpleConversation *conv);
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 105
diff changeset
230 static GdkPixbuf *make_scaled_pixbuf(const gchar *url_text, gsize len);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
231
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
232 static void parse_user(xmlNode *user, status_t *st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
233 static void parse_status(xmlNode *status, status_t *st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
234 static void get_status_with_api_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
235 static gboolean get_status_with_api(gpointer data);
125
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
236 static void read_timestamp(const char *str, struct tm *res);
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
237
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
238 static void strip_markup(gchar **str, gboolean escape);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
239 static gchar *strip_html_markup(const gchar *src);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
240 static GtkWidget *prefs_get_frame(PurplePlugin *plugin);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
241
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 163
diff changeset
242 /* more prototypes */
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
243 static gboolean is_posted_message(status_t *status, guint lastid);
179
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
244 static void free_status(status_t *st);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
245 static gboolean ensure_path_exists(const char *dir);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
246 static gchar *twitter_memrchr(const gchar *s, int c, size_t n);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
247 static void got_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, gsize len, const gchar *error_message);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
248 static void cleanup_hash_entry_func(gpointer key, gpointer value, gpointer user_data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
249 static void invalidate_icon_data_func(gpointer key, gpointer value, gpointer user_data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
250 static void icon_size_prefs_cb(const char *name, PurplePrefType type, gconstpointer val, gpointer data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
251 static void interval_prefs_cb(const char *name, PurplePrefType type, gconstpointer val, gpointer data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
252 static void text_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
253 static void bool_toggled_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
254 static void spin_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
255 static void combo_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
256 static void disconnect_prefs_cb(GtkObject *object, gpointer data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
257 static GtkWidget *prefs_get_frame(PurplePlugin *plugin);
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
258 static void apply_filter(gchar **sender, gchar **buffer, PurpleMessageFlags *flags, int service);
219
739ed7a4426c revised receiving_im_cb(). conv may be NULL so that filter might not work for messages which arrived at before conversation has been established.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 215
diff changeset
259 static gint get_service_type_by_account(PurpleAccount *account, const char *sender);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
260
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
261 #endif