annotate pidgin-twitter.h @ 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.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 03 Sep 2008 18:39:39 +0900
parents 739ed7a4426c
children c3efae72f72a
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,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
34 USER_FIRST_LINE,
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
35 USER_FORMATTED,
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
36 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
37 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
38 IMAGE_WASSR,
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
39 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
40 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
41 SIZE_128_WASSR
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
42 };
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
43
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
44 /* service id */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
45 enum {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
46 unknown_service = -1,
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
47 twitter_service,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
48 wassr_service,
200
9a2d727f39b4 removed jisko support as a protest to their expulsion policy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 198
diff changeset
49 identica_service
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
50 };
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
51
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
52 /* container to hold icon data */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
53 typedef struct _icon_data {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 165
diff changeset
54 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
55 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
56 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
57 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
58 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
59 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
60 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
61 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
62 } icon_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
63
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
64 /* used by got_icon_cb */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
65 typedef struct _got_icon_data {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
66 gchar *user_name;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
67 gint service;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
68 } got_icon_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
69
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
70 /* used by eval */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
71 typedef struct _eval_data {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
72 gint which;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
73 gint service;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
74 } eval_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
75
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
76 /* container for api based retrieve */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
77 typedef struct _status {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
78 gchar *created_at;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
79 gchar *text;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
80 gchar *screen_name;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
81 gchar *profile_image_url;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
82 time_t time;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
83 guint id;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
84 } status_t;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
85
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
86 /* container for api based post */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
87 typedef struct twitter_message {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
88 PurpleAccount *account;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
89 char *status;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
90 time_t time;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
91 } twitter_message_t;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
92
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
93 #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
94 #define PLUGIN_NAME "pidgin-twitter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
95
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
96 /* options */
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
97 #define OPT_PIDGINTWITTER "/plugins/pidgin_twitter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
98 #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
99 #define OPT_TRANSLATE_SENDER OPT_PIDGINTWITTER "/translate_sender"
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
100 #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
101 #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
102 #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
103 #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
104 #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
105 #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
106 #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
107 #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
108 #define OPT_COUNTER OPT_PIDGINTWITTER "/counter"
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
109 #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
110 #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
111 #define OPT_ICON_DIR OPT_PIDGINTWITTER "/icon_dir"
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 69
diff changeset
112 #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
113 #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
114 #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
115 #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
116 #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
117 #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
118 #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
119 #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
120 #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
121 #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
122 #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
123 #define OPT_LOG_OUTPUT OPT_PIDGINTWITTER "/log_output"
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
124 #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
125 #define OPT_FILTER_EXCLUDE_REPLY OPT_PIDGINTWITTER "/filter_exclude_reply"
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
126 #define OPT_FILTER_TWITTER OPT_PIDGINTWITTER "/filter_twitter"
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
127 #define OPT_FILTER_WASSR OPT_PIDGINTWITTER "/filter_wassr"
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
128 #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
129
214
148fa8a8be8e - trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 211
diff changeset
130 #ifdef _WIN32
148fa8a8be8e - trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 211
diff changeset
131 #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
132 #endif
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
133
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
134 /* formats and templates */
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
135 #define RECIPIENT_FORMAT_TWITTER "@<a href='http://twitter.com/%s'>%s</a>"
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
136 #define SENDER_FORMAT_TWITTER "%s<a href='http://twitter.com/%s'>%s</a>: "
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 80
diff changeset
137 #define RECIPIENT_FORMAT_WASSR "@<a href='http://wassr.jp/user/%s'>%s</a>"
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 80
diff changeset
138 #define SENDER_FORMAT_WASSR "%s<a href='http://wassr.jp/user/%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
139 #define RECIPIENT_FORMAT_IDENTICA "@<a href='http://identi.ca/%s'>%s</a>"
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
140 #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
141 #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
142 #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
143 #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
144
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
145 #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
146 #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
147 #define EMPTY ""
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
148
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
149 /* patterns */
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
150 #define P_RECIPIENT "@([A-Za-z0-9_]+)"
195
3e459b078788 revised P_SENDER
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 194
diff changeset
151 #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
152 #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
153 #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)"
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
154 #define P_USER "^\\(.+?\\)\\s*([A-Za-z0-9_]+):"
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
155 #define P_USER_FIRST_LINE "^\\(.+?\\)\\s*.+:\\s*([A-Za-z0-9_]+):"
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
156 #define P_USER_FORMATTED "^.*?<a .+?>([A-Za-z0-9_]+)</a>:"
114
48bfe86ff990 fix a bug that linkfy channel name does not work if msn style is turned on.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 110
diff changeset
157 #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
158 #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
159 #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
160 #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
161 #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
162 #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
163
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
164 /* twitter API specific macros */
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
165 #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
166 #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
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" \
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
169 "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
170 #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
171 "Host: twitter.com\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
172 "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
173 "Authorization: Basic %s\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
174 "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
175 #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
176 #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
177 #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
178
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
179 /* 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
180 #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
181
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
182 /* wassr specific macros */
209
d512d1d8712f improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 206
diff changeset
183 #define WASSR_POST_LEN (255)
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
184 #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
185
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
186 /* misc macros */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
187 #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
188 #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
189 #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
190 #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
191
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
192 /* debug macros */
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
193 #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
194 #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
195
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
196 /* prototypes */
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
197 static void escape(gchar **str);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
198 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
199 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
200 static void translate(gchar **str, gint which, gint service);
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
201 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
202 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
203 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
204 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
205 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
206 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
207 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
208 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
209 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
210 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
211 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
212 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
213 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
214 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
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 static gboolean load_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
227 static gboolean unload_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
228 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
229
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
230 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
231 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
232 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
233 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
234 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
235
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
236 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
237 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
238 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
239 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
240 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
241
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
242 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
243 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
244 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
245
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 163
diff changeset
246 /* more prototypes */
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
247 static gboolean is_posted_message(status_t *status, guint lastid);
179
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
248 static void free_status(status_t *st);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
249 static gboolean ensure_path_exists(const char *dir);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
250 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
251 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
252 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
253 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
254 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
255 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
256 static void text_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
257 static void bool_toggled_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
258 static void spin_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
259 static void combo_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
260 static void disconnect_prefs_cb(GtkObject *object, gpointer data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
261 static GtkWidget *prefs_get_frame(PurplePlugin *plugin);
211
e13103257b33 implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 209
diff changeset
262 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
263 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
264
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
265 #endif