annotate pidgin-twitter.h @ 206:99c4946e8449

now pidgin-twitter shows the default icon for identi.ca when a user has not uploaded the custom icon.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 22 Aug 2008 16:47:37 +0900
parents bc1448e72b1b
children d512d1d8712f
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"
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
124
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
125 /* 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
126 #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
127 #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
128 #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
129 #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
130 #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
131 #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
132 #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
133 #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
134 #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
135
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
136 #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
137 #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
138 #define EMPTY ""
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
139
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
140 /* patterns */
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
141 #define P_RECIPIENT "@([A-Za-z0-9_]+)"
195
3e459b078788 revised P_SENDER
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 194
diff changeset
142 #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
143 #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
144 #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
145 #define P_USER "^\\(.+?\\)\\s*([A-Za-z0-9_]+):"
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 99
diff changeset
146 #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
147 #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
148 #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
149 #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
150 #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
151 #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
152 #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
153 #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
154
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
155 /* twitter API specific macros */
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
156 #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
157 #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
158 "Host: twitter.com\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
159 "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
160 "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
161 #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
162 "Host: twitter.com\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
163 "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
164 "Authorization: Basic %s\r\n" \
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
165 "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
166 #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
167 #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
168 #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
169
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
170 /* wassr specific macros */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
171 #define WASSR_POST_LEN (255 * 4)
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
172 #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
173
124
ec861f8a2268 - added new pref value for API based fetch interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
174 /* misc macros */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 134
diff changeset
175 #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
176 #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
177 #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
178 #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
179
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
180 /* debug macros */
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
181 #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
182 #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
183
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
184 /* prototypes */
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
185 static void escape(gchar **str);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
186 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
187 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
188 static void translate(gchar **str, gint which, gint service);
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
189 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
190 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
191 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
192 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
193 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
194 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
195 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
196 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
197 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
198 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
199 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
200 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
201 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
202 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
203 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
204 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
205 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
206 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
207 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
208 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
209 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
210 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
211 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
212 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
213 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
214 static gboolean load_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
215 static gboolean unload_plugin(PurplePlugin *plugin);
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
216 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
217
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
218 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
219 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
220 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
221 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
222 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
223
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 114
diff changeset
224 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
225 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
226 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
227 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
228 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
229
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
230 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
231 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
232 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
233
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 163
diff changeset
234 /* more prototypes */
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
235 static gboolean is_posted_message(status_t *status, guint lastid);
179
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
236 static void free_status(status_t *st);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
237 static gboolean ensure_path_exists(const char *dir);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
238 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
239 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
240 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
241 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
242 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
243 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
244 static void text_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
245 static void bool_toggled_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
246 static void spin_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
247 static void combo_changed_cb(gpointer *data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
248 static void disconnect_prefs_cb(GtkObject *object, gpointer data);
7a3ed2b113c5 added missing prototypes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 178
diff changeset
249 static GtkWidget *prefs_get_frame(PurplePlugin *plugin);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 144
diff changeset
250
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
251 #endif