Mercurial > pidgin-twitter
annotate pidgin-twitter.c @ 214:148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
- tweaked prefs.ui
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 26 Aug 2008 18:56:06 +0900 |
parents | 8670e1572be8 |
children | 6b258bdd9c49 |
rev | line source |
---|---|
0 | 1 /* |
2 * Pidgin-Twitter plugin. | |
3 * | |
4 * This program is free software; you can redistribute it and/or | |
5 * modify it under the terms of the GNU General Public License as | |
6 * published by the Free Software Foundation; either version 2 of the | |
7 * License, or (at your option) any later version. | |
8 * | |
9 * This program is distributed in the hope that it will be useful, but | |
10 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 * General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License | |
15 * along with this program; if not, write to the Free Software | |
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
17 * 02111-1307, USA. | |
18 */ | |
19 #define PURPLE_PLUGINS 1 | |
20 | |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
21 #include "pidgin-twitter.h" |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
22 |
164 | 23 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
24 /***********/ |
0 | 25 /* globals */ |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
26 /***********/ |
205
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
27 #define NUM_REGPS 13 |
200
9a2d727f39b4
removed jisko support as a protest to their expulsion policy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
199
diff
changeset
|
28 #define NUM_SERVICES 3 /* twitter, wassr, identica. */ |
196
b436d72447e8
make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
194
diff
changeset
|
29 static GRegex *regp[NUM_REGPS]; |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
30 static gboolean suppress_oops = FALSE; |
194
1495b478680b
tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
183
diff
changeset
|
31 static GHashTable *icon_hash[NUM_SERVICES]; |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
32 static GHashTable *conv_hash = NULL; |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
33 static GList *statuseslist = NULL; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
34 static GList *postedlist = NULL; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
35 static gchar *wassr_post = NULL; |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
36 static gchar *identica_post = NULL; |
214
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
37 #ifdef _WIN32 |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
38 static gboolean blink_state = FALSE; |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
39 static gboolean blink_modified = FALSE; |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
40 #endif |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
41 |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
42 static struct _source { |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
43 guint id; |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
44 PurpleConversation *conv; |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
45 } source; |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
46 |
210
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
47 extern gchar *sanitize_utf(const gchar *msg, gsize len, gsize *newlen) __attribute__ ((weak)); |
164 | 48 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
49 /*************/ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
50 /* functions */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
51 /*************/ |
115
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
52 |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
53 /* this function has been taken from autoaccept plugin */ |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
54 static gboolean |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
55 ensure_path_exists(const char *dir) |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
56 { |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
57 if (!g_file_test(dir, G_FILE_TEST_IS_DIR)) { |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
58 if (purple_build_dir(dir, S_IRUSR | S_IWUSR | S_IXUSR)) |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
59 return FALSE; |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
60 } |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
61 |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
62 return TRUE; |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
63 } |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
64 |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
65 |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
66 /**********************/ |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
67 /* our implementation */ |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
68 /**********************/ |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
69 |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
70 static gchar * |
170
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
71 twitter_memrchr(const gchar *s, int c, size_t n) |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
72 { |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
73 int nn = n; |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
74 |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
75 g_return_val_if_fail(s != NULL, NULL); |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
76 |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
77 while(nn+1) { |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
78 if((int)*(s+nn) == c) |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
79 return (gchar *)(s+nn); |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
80 nn--; |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
81 } |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
82 return NULL; |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
83 } |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
84 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
85 static gchar *html_tags[] = { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
86 "<a href=", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
87 "</a>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
88 "<b>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
89 "</b>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
90 "<p>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
91 "</p>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
92 "<div ", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
93 "</div>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
94 "<span ", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
95 "</span>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
96 "<body>", |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
97 "<body ", |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
98 "</body>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
99 "<i>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
100 "</i>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
101 "<font ", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
102 "</font>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
103 "<br>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
104 "<br/>", |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
105 "<img ", |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
106 "<html>", |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
107 "<html ", |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
108 "</html>", |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
109 NULL |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
110 }; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
111 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
112 static gchar * |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
113 strip_html_markup(const gchar *src) |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
114 { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
115 gchar *head, *tail; /* head and tail of html */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
116 gchar *begin, *end; /* begin:< end:> */ |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
117 gchar *html, *str; /* copied src and string to be returned */ |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
118 /* gchar *vis1, *vis2; */ /* begin and end of address part */ |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
119 gchar *startp; /* starting point marker */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
120 gchar **tagp; /* tag iterator */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
121 gchar *tmp, *tmp2; /* scratches */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
122 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
123 g_return_val_if_fail(src != NULL, NULL); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
124 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
125 const gchar *ptr, *ent; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
126 gchar *ptr2; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
127 gint entlen; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
128 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
129 /* unescape &x; */ |
137
97f11d057071
fixed "off by one" bug.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
136
diff
changeset
|
130 html = g_malloc0(strlen(src) + 1); |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
131 ptr2 = html; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
132 for(ptr = src; *ptr; ) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
133 if(*ptr == '&') { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
134 ent = purple_markup_unescape_entity(ptr, &entlen); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
135 if(ent != NULL) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
136 while(*ent) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
137 *ptr2++ = *ent++; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
138 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
139 ptr += entlen; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
140 } |
139
9871186ebf8f
fix a bug that strip_html_markup() stalls if purple_markup_unescape_entity() returns NULL.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
138
diff
changeset
|
141 else { |
9871186ebf8f
fix a bug that strip_html_markup() stalls if purple_markup_unescape_entity() returns NULL.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
138
diff
changeset
|
142 *ptr2++ = *ptr++; |
9871186ebf8f
fix a bug that strip_html_markup() stalls if purple_markup_unescape_entity() returns NULL.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
138
diff
changeset
|
143 } |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
144 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
145 else { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
146 *ptr2++ = *ptr++; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
147 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
148 } /* for */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
149 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
150 str = g_strdup("\0"); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
151 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
152 head = html; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
153 tail = head + strlen(html); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
154 startp = head; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
155 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
156 loop: |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
157 begin = NULL; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
158 end = NULL; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
159 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
160 if(startp >= tail) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
161 g_free(html); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
162 return str; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
163 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
164 |
170
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
165 end = strchr(startp, '>'); |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
166 if(end) { |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
167 begin = twitter_memrchr(startp, '<', end - startp); |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
168 if(begin < startp) |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
169 begin = NULL; |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
170 |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
171 if(!begin) { /* '>' found but no corresponding '<' */ |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
172 tmp = g_strndup(startp, end - startp + 1); /* concat until '>' */ |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
173 tmp2 = g_strconcat(str, tmp, NULL); |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
174 g_free(str); |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
175 str = tmp2; |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
176 startp = end + 1; |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
177 goto loop; |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
178 } |
170
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
179 } |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
180 else { /* neither '>' nor '<' were found */ |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
181 tmp = g_strconcat(str, startp, NULL); /* concat the rest */ |
170
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
182 g_free(str); |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
183 str = tmp; |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
184 g_free(html); |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
185 return str; |
170
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
186 } |
c3f205ec4619
work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
168
diff
changeset
|
187 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
188 /* here, both < and > are found */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
189 /* concatenate leading part to dest */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
190 tmp = g_strndup(startp, begin - startp); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
191 tmp2 = g_strconcat(str, tmp, NULL); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
192 g_free(tmp); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
193 g_free(str); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
194 str = tmp2; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
195 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
196 /* find tag */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
197 for(tagp = html_tags; *tagp; tagp++) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
198 if(!g_ascii_strncasecmp(begin, *tagp, strlen(*tagp))) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
199 /* we found a valid tag */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
200 /* if tag is <a href=, extract address. */ |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
201 #if 0 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
202 if(!strcmp(*tagp, "<a href=")) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
203 vis1 = NULL; vis2 = NULL; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
204 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
205 vis1 = strchr(begin, '\''); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
206 if(vis1) |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
207 vis2 = strchr(vis1+1, '\''); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
208 if(!vis1) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
209 vis1 = strchr(begin, '\"'); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
210 if(vis1) |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
211 vis2 = strchr(vis1+1, '\"'); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
212 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
213 if(vis1 && vis2) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
214 *vis2 = '\0'; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
215 /* generate "[ http://example.com/ ] anchor " */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
216 tmp = g_strconcat(str, "[ ", vis1+1, " ]", " ", NULL); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
217 g_free(str); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
218 str = tmp; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
219 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
220 startp = end + 1; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
221 goto loop; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
222 } /* <a href= */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
223 else { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
224 /* anything else: discard whole <>. */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
225 startp = end + 1; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
226 goto loop; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
227 } |
171
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
228 #else |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
229 /* anything else: discard whole <>. */ |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
230 startp = end + 1; |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
231 goto loop; |
dfe644871483
revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
170
diff
changeset
|
232 #endif |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
233 } /* valid tag */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
234 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
235 |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
236 /* no valid tag was found: copy <brabra> */ |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
237 tmp = g_strndup(begin, end - begin + 1); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
238 tmp2 = g_strconcat(str, tmp, NULL); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
239 g_free(tmp); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
240 g_free(str); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
241 str = tmp2; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
242 startp = end + 1; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
243 goto loop; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
244 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
245 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
246 /* string utilities */ |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
247 static void |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
248 escape(gchar **str) |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
249 { |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
250 GMatchInfo *match_info = NULL; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
251 gchar *newstr = NULL, *match = NULL; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
252 gboolean flag = FALSE; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
253 |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
254 /* search genuine command */ |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
255 g_regex_match(regp[COMMAND], *str, 0, &match_info); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
256 while(g_match_info_matches(match_info)) { |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
257 match = g_match_info_fetch(match_info, 1); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
258 twitter_debug("command = %s\n", match); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
259 g_free(match); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
260 g_match_info_next(match_info, NULL); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
261 flag = TRUE; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
262 } |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
263 g_match_info_free(match_info); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
264 match_info = NULL; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
265 |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
266 if(flag) |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
267 return; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
268 |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
269 /* if not found, check pseudo command */ |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
270 g_regex_match(regp[PSEUDO], *str, 0, &match_info); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
271 while(g_match_info_matches(match_info)) { |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
272 match = g_match_info_fetch(match_info, 1); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
273 twitter_debug("pseudo = %s\n", match); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
274 g_free(match); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
275 g_match_info_next(match_info, NULL); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
276 flag = TRUE; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
277 } |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
278 g_match_info_free(match_info); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
279 match_info = NULL; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
280 |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
281 /* if there is pseudo one, escape it */ |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
282 if(flag) { |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
283 /* put ". " to the beginning of buffer */ |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
284 newstr = g_strdup_printf(". %s", *str); |
39
2ac81c0afb53
- new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
38
diff
changeset
|
285 twitter_debug("*str = %s newstr = %s\n", *str, newstr); |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
286 g_free(*str); |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
287 *str = newstr; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
288 } |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
289 } |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
290 |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
291 static void |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
292 strip_markup(gchar **str, gboolean escape) |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
293 { |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
294 gchar *plain; |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
295 |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
296 plain = strip_html_markup(*str); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
297 g_free(*str); |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
298 if(escape) { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
299 *str = g_markup_escape_text(plain, -1); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
300 g_free(plain); |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
301 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
302 else { |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
303 *str = plain; |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
304 } |
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
305 twitter_debug("result=%s\n", *str); |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
306 } |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
307 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
308 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
309 /**************************/ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
310 /* API base get functions */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
311 /**************************/ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
312 /* xml parser */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
313 static void |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
314 parse_user(xmlNode *user, status_t *st) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
315 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
316 xmlNode *nptr; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
317 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
318 for(nptr = user->children; nptr != NULL; nptr = nptr->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
319 if(nptr->type == XML_ELEMENT_NODE) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
320 if(!xmlStrcmp(nptr->name, (xmlChar *)"screen_name")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
321 gchar *str = (gchar *)xmlNodeGetContent(nptr); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
322 st->screen_name = g_strdup(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
323 xmlFree(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
324 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
325 else if(!xmlStrcmp(nptr->name, (xmlChar *)"profile_image_url")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
326 gchar *str = (gchar *)xmlNodeGetContent(nptr); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
327 st->profile_image_url = g_strdup(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
328 xmlFree(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
329 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
330 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
331 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
332 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
333 |
164 | 334 static gchar *day_of_week_name[] = { |
125
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
335 "Sun", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
336 "Mon", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
337 "Tue", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
338 "Wed", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
339 "Thu", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
340 "Fri", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
341 "Sat", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
342 NULL |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
343 }; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
344 |
164 | 345 static gchar *month_name[] = { |
125
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
346 "Jan", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
347 "Feb", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
348 "Mar", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
349 "Apr", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
350 "May", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
351 "Jun", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
352 "Jul", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
353 "Aug", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
354 "Sep", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
355 "Oct", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
356 "Nov", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
357 "Dec", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
358 NULL |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
359 }; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
360 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
361 static void |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
362 read_timestamp(const char *str, struct tm *res) |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
363 { |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
364 char day_of_week[4]; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
365 char month[4]; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
366 char time_offset[6]; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
367 int day, hour, minute, second, year; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
368 int i; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
369 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
370 if(str == NULL || res == NULL) |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
371 return; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
372 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
373 sscanf(str, "%s %s %d %d:%d:%d %s %d", |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
374 day_of_week, month, &day, |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
375 &hour, &minute, &second, |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
376 time_offset, &year); |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
377 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
378 for(i=0; i<7; i++) { |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
379 if(!strcmp(day_of_week_name[i], day_of_week)) { |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
380 res->tm_wday = i; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
381 } |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
382 } |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
383 for(i=0; i<12; i++) { |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
384 if(!strcmp(month_name[i], month)) { |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
385 res->tm_mon = i; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
386 } |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
387 } |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
388 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
389 res->tm_mday = day; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
390 res->tm_hour = hour; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
391 res->tm_min = minute; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
392 res->tm_sec = second; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
393 res->tm_year = year - 1900; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
394 #ifndef _WIN32 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
395 int offset = atoi(time_offset); |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
396 res->tm_gmtoff = -1 * (60 * 60 * offset / 100); |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
397 #endif |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
398 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
399 } |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
400 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
401 static void |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
402 parse_status(xmlNode *status, status_t *st) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
403 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
404 xmlNode *nptr; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
405 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
406 for(nptr = status->children; nptr != NULL; nptr = nptr->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
407 if(nptr->type == XML_ELEMENT_NODE) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
408 if(!xmlStrcmp(nptr->name, (xmlChar *)"created_at")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
409 gchar *str = (gchar *)xmlNodeGetContent(nptr); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
410 st->created_at = g_strdup(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
411 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
412 /* read time stamp */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
413 struct tm res; |
121
8b58990f5ee9
ensure struct tm cleared before use.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
120
diff
changeset
|
414 memset(&res, 0x00, sizeof(struct tm)); |
125
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
415 read_timestamp(str, &res); |
120
b47bc7b89de6
a better way to keep time sane.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
119
diff
changeset
|
416 tzset(); |
125
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
417 #ifdef _WIN32 |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
418 st->time = mktime(&res) - timezone; |
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
419 #else |
123
76012df4e194
time offset in BSD extension has opposite sign
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
122
diff
changeset
|
420 st->time = mktime(&res) + res.tm_gmtoff; |
125
f0305c387d32
replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
124
diff
changeset
|
421 #endif |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
422 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
423 xmlFree(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
424 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
425 else if(!xmlStrcmp(nptr->name, (xmlChar *)"id")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
426 gchar *str = (gchar *)xmlNodeGetContent(nptr); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
427 st->id = atoi(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
428 xmlFree(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
429 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
430 else if(!xmlStrcmp(nptr->name, (xmlChar *)"text")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
431 gchar *str = (gchar *)xmlNodeGetContent(nptr); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
432 st->text = g_strdup(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
433 xmlFree(str); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
434 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
435 else if(!xmlStrcmp(nptr->name, (xmlChar *)"user")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
436 parse_user(nptr, st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
437 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
438 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
439 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
440 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
441 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
442 static void |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
443 free_status(status_t *st) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
444 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
445 g_free(st->created_at); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
446 g_free(st->text); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
447 g_free(st->screen_name); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
448 g_free(st->profile_image_url); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
449 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
450 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
451 static gboolean |
178
7fb35f47a477
keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
171
diff
changeset
|
452 is_posted_message(status_t *status, guint lastid) |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
453 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
454 GList *pp; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
455 gboolean rv = FALSE; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
456 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
457 for(pp = postedlist; pp; pp=pp->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
458 status_t *posted = (status_t *)pp->data; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
459 if(posted->id == status->id) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
460 rv = TRUE; |
178
7fb35f47a477
keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
171
diff
changeset
|
461 } |
7fb35f47a477
keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
171
diff
changeset
|
462 |
7fb35f47a477
keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
171
diff
changeset
|
463 if(posted->id <= lastid) { |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
464 free_status(posted); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
465 g_free(pp->data); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
466 pp->data = NULL; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
467 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
468 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
469 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
470 postedlist = g_list_remove_all(postedlist, NULL); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
471 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
472 return rv; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
473 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
474 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
475 static void |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
476 get_status_with_api_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
477 const gchar *url_text, size_t len, |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
478 const gchar *error_message) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
479 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
480 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
481 xmlDocPtr doc; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
482 xmlNode *nptr, *nptr2; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
483 static guint lastid = 0; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
484 PurpleConversation *conv; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
485 GList *stp; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
486 const gchar *start; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
487 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
488 g_return_if_fail(url_text != NULL); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
489 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
490 conv = (PurpleConversation *)user_data; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
491 if(!conv) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
492 return; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
493 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
494 /* skip to the beginning of xml */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
495 start = strstr(url_text, "<?xml"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
496 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
497 doc = xmlRecoverMemory(start, len - (start - url_text)); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
498 if(doc == NULL) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
499 return; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
500 |
214
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
501 #ifdef _WIN32 |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
502 /* suppress notification of incoming messages. */ |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
503 if(purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION)) { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
504 if(!blink_modified) { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
505 blink_modified = TRUE; |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
506 blink_state = purple_prefs_get_bool(OPT_PIDGIN_BLINK_IM); |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
507 purple_prefs_set_bool(OPT_PIDGIN_BLINK_IM, FALSE); |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
508 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
509 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
510 #endif |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
511 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
512 for(nptr = doc->children; nptr != NULL; nptr = nptr->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
513 if(nptr->type == XML_ELEMENT_NODE && |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
514 !xmlStrcmp(nptr->name, (xmlChar *)"statuses")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
515 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
516 for(nptr2 = nptr->children; nptr2 != NULL; nptr2 = nptr2->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
517 if(nptr2->type == XML_ELEMENT_NODE && |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
518 !xmlStrcmp(nptr2->name, (xmlChar *)"status")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
519 status_t *st = g_new0(status_t, 1); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
520 statuseslist = g_list_prepend(statuseslist, st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
521 parse_status(nptr2, st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
522 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
523 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
524 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
525 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
526 |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
527 xmlFreeDoc(doc); |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
528 xmlCleanupParser(); |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
529 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
530 /* process statuseslist */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
531 for(stp = statuseslist; stp; stp=stp->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
532 status_t *st = (status_t *)stp->data; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
533 |
178
7fb35f47a477
keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
171
diff
changeset
|
534 if(st->id > lastid && !is_posted_message(st, lastid)) { |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
535 gchar *msg = NULL; |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
536 gchar *sender = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
537 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
538 sender = g_strdup("twitter@twitter.com"); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
539 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
540 PurpleMessageFlags flag = PURPLE_MESSAGE_RECV; |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
541 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
542 msg = g_strdup_printf("%s: %s", st->screen_name, st->text); |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
543 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
544 /* apply filter*/ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
545 if(purple_prefs_get_bool(OPT_FILTER)) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
546 apply_filter(&sender, &msg, &flag, twitter_service); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
547 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
548 if(sender && msg) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
549 purple_conv_im_write(conv->u.im, |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
550 sender, |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
551 msg, |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
552 flag, |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
553 st->time); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
554 } |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
555 lastid = st->id; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
556 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
557 g_free(msg); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
558 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
559 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
560 free_status(st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
561 g_free(stp->data); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
562 stp->data = NULL; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
563 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
564 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
565 statuseslist = g_list_remove_all(statuseslist, NULL); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
566 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
567 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
568 /* status fetching function. it will be called periodically. */ |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
569 static gboolean |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
570 get_status_with_api(gpointer data) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
571 { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
572 /* fetch friends time line */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
573 char *request, *header; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
574 char *basic_auth, *basic_auth_encoded; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
575 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
576 twitter_debug("called\n"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
577 |
158
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
578 /* if disabled, just return */ |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
579 if(!purple_prefs_get_bool(OPT_API_BASE_POST)) |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
580 return TRUE; |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
581 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
582 const char *screen_name = |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
583 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
584 const char *password = |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
585 purple_prefs_get_string(OPT_PASSWORD_TWITTER); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
586 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
587 if (!screen_name || !password || !screen_name[0] || !password[0]) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
588 twitter_debug("screen_name or password is empty\n"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
589 return TRUE; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
590 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
591 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
592 /* auth */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
593 basic_auth = g_strdup_printf("%s:%s", screen_name, password); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
594 basic_auth_encoded = purple_base64_encode((unsigned char *)basic_auth, |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
595 strlen(basic_auth)); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
596 g_free(basic_auth); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
597 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
598 /* header */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
599 header = g_strdup_printf(TWITTER_STATUS_GET, basic_auth_encoded); |
162
1237fc885a92
revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
161
diff
changeset
|
600 request = g_strconcat(header, "\r\n", NULL); |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
601 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
602 /* invoke fetch */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
603 purple_util_fetch_url_request(TWITTER_BASE_URL, FALSE, |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
604 NULL, TRUE, request, TRUE, |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
605 get_status_with_api_cb, data); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
606 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
607 g_free(header); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
608 g_free(basic_auth_encoded); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
609 g_free(request); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
610 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
611 return TRUE; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
612 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
613 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
614 /***************************/ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
615 /* API base post functions */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
616 /***************************/ |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
617 static void |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
618 post_status_with_api_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
619 const gchar *url_text, size_t len, |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
620 const gchar *error_message) |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
621 { |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
622 twitter_message_t *tm = (twitter_message_t *)user_data; |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
623 gchar *msg = NULL; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
624 char *p1 = NULL, *p2 = NULL; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
625 int error = 1; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
626 PurpleConversation *conv; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
627 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
628 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
629 "twitter@twitter.com", |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
630 tm->account); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
631 if (!conv) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
632 twitter_debug("failed to get conversation\n"); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
633 goto fin; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
634 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
635 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
636 if (error_message) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
637 /* connection failed or something */ |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
638 msg = g_strdup_printf("Local error: %s", error_message); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
639 } else { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
640 int code = -1; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
641 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
642 if ((strncmp(url_text, "HTTP/1.0", strlen("HTTP/1.0")) == 0 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
643 || strncmp(url_text, "HTTP/1.1", strlen("HTTP/1.1")) == 0)) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
644 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
645 p1 = strchr(url_text, ' '); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
646 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
647 if (p1) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
648 p1++; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
649 p2 = strchr(p1, ' '); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
650 if (p2) |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
651 p2++; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
652 else |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
653 p2 = NULL; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
654 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
655 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
656 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
657 code = atoi(p1); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
658 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
659 if (code == 200) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
660 error = 0; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
661 } else { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
662 switch (code) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
663 case 400: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
664 msg = g_strdup("Invalid request. Too many updates?"); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
665 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
666 case 401: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
667 msg = g_strdup("Authorization failed."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
668 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
669 case 403: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
670 msg = g_strdup("Your update has been refused by Twitter server " |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
671 "for some reason."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
672 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
673 case 404: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
674 msg = g_strdup("Requested URI is not found."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
675 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
676 case 500: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
677 msg = g_strdup("Server error."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
678 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
679 case 502: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
680 msg = g_strdup("Twitter is down or under maintenance."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
681 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
682 case 503: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
683 msg = g_strdup("Twitter is extremely crowded. " |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
684 "Try again later."); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
685 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
686 default: |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
687 msg = g_strdup_printf("Unknown error. (%d %s)", |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
688 code, p2 ? p2 : ""); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
689 break; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
690 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
691 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
692 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
693 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
694 if (!error) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
695 purple_conv_im_write(conv->u.im, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
696 purple_account_get_username(tm->account), |
91
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
697 tm->status, PURPLE_MESSAGE_SEND, tm->time); |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
698 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
699 /* cache message ID that posted via API */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
700 gchar *start = NULL; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
701 xmlDocPtr doc; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
702 xmlNode *nptr; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
703 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
704 start = strstr(url_text, "<?xml"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
705 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
706 if(!start) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
707 goto fin; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
708 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
709 doc = xmlRecoverMemory(start, len - (start - url_text)); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
710 if(doc == NULL) |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
711 return; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
712 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
713 /* enqueue posted message to postedlist */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
714 for(nptr = doc->children; nptr != NULL; nptr = nptr->next) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
715 if(nptr->type == XML_ELEMENT_NODE && |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
716 !xmlStrcmp(nptr->name, (xmlChar *)"status")) { |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
717 status_t *st = g_new0(status_t, 1); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
718 postedlist = g_list_prepend(postedlist, st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
719 parse_status(nptr, st); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
720 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
721 } |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
722 |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
723 xmlFreeDoc(doc); |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
724 xmlCleanupParser(); |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
725 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
726 } else { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
727 gchar *m; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
728 m = g_strdup_printf("%s<BR>%s", |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
729 msg, tm->status); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
730 /* FIXME: too strong. it should be more smart */ |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
731 purple_conv_im_write(conv->u.im, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
732 purple_account_get_username(tm->account), |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
733 m, PURPLE_MESSAGE_ERROR, time(NULL)); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
734 g_free(m); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
735 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
736 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
737 fin: |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
738 if (msg) |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
739 g_free(msg); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
740 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
741 if (tm) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
742 if (tm->status) |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
743 g_free(tm->status); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
744 g_free(tm); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
745 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
746 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
747 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
748 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
749 static void |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
750 post_status_with_api(PurpleAccount *account, char **buffer) |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
751 { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
752 char *request, *status, *header; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
753 const char *url_encoded = purple_url_encode(*buffer); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
754 char *basic_auth, *basic_auth_encoded; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
755 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
756 twitter_message_t *tm; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
757 |
110
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
758 const char *screen_name = |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
759 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
760 const char *password = purple_prefs_get_string(OPT_PASSWORD_TWITTER); |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
761 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
762 twitter_debug("tm.account: %s\n", |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
763 purple_account_get_username(account)); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
764 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
765 if (!screen_name || !password || !screen_name[0] || !password[0]) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
766 twitter_debug("screen_name or password is empty\n"); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
767 return; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
768 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
769 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
770 tm = g_new(twitter_message_t, 1); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
771 tm->account = account; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
772 tm->status = g_strdup(*buffer); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
773 tm->time = time(NULL); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
774 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
775 basic_auth = g_strdup_printf("%s:%s", screen_name, password); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
776 basic_auth_encoded = purple_base64_encode((unsigned char *)basic_auth, |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
777 strlen(basic_auth)); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
778 g_free(basic_auth); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
779 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
780 status = g_strdup_printf(TWITTER_STATUS_FORMAT, url_encoded); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
781 header = g_strdup_printf(TWITTER_STATUS_POST, basic_auth_encoded, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
782 (int)strlen(status)); |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
783 |
162
1237fc885a92
revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
161
diff
changeset
|
784 request = g_strconcat(header, "\r\n", status, "\r\n", NULL); |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
785 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
786 purple_util_fetch_url_request(TWITTER_BASE_URL, FALSE, |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
787 NULL, TRUE, request, TRUE, |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
788 post_status_with_api_cb, tm); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
789 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
790 g_free(header); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
791 g_free(basic_auth_encoded); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
792 g_free(status); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
793 g_free(request); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
794 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
795 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
796 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
797 /***********************/ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
798 /* intrinsic functions */ |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
799 /***********************/ |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
800 static gboolean |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
801 sending_im_cb(PurpleAccount *account, char *recipient, char **buffer, |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
802 void *data) |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
803 { |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
804 int utflen, bytes; |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
805 gboolean twitter_ac = FALSE, wassr_ac = FALSE, identica_ac = FALSE; |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
806 twitter_debug("called\n"); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
807 |
88
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
808 twitter_ac = is_twitter_account(account, recipient); |
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
809 wassr_ac = is_wassr_account(account, recipient); |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
810 identica_ac = is_identica_account(account, recipient); |
88
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
811 |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
812 /* strip all markups */ |
207
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
813 if(twitter_ac || wassr_ac || identica_ac) { |
210
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
814 gchar *tmp, *plain; |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
815 gsize dummy; |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
816 |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
817 tmp = strip_html_markup(*buffer); |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
818 |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
819 if(sanitize_utf) { |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
820 plain = sanitize_utf(tmp, -1, &dummy); |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
821 g_free(tmp); |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
822 } |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
823 else |
00e26402de03
apply sanitize_utf() if it is available.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
209
diff
changeset
|
824 plain = tmp; |
207
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
825 |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
826 if(wassr_ac) { |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
827 /* store sending message to address parrot problem */ |
209
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
828 g_utf8_strncpy(wassr_post, plain, WASSR_POST_LEN); |
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
829 twitter_debug("wassr parrot pushed:%s\n", plain); |
207
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
830 } |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
831 else if(identica_ac) { |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
832 /* store sending message to address parrot problem */ |
209
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
833 g_utf8_strncpy(identica_post, plain, IDENTICA_POST_LEN); |
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
834 twitter_debug("identica parrot pushed:%s\n", plain); |
207
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
835 } |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
836 |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
837 g_free(*buffer); |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
838 *buffer = g_markup_escape_text(plain, -1); |
0eac0abcc0aa
improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
205
diff
changeset
|
839 g_free(plain); |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
840 } |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
841 |
88
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
842 /* return here if the message is not to twitter */ |
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
843 if(!twitter_ac) |
44 | 844 return FALSE; |
845 | |
846 /* escape pseudo command */ | |
88
090e28908f09
apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
87
diff
changeset
|
847 if(twitter_ac && |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
848 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) { |
44 | 849 escape(buffer); |
850 } | |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
851 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
852 /* update status with Twitter API instead of IM protocol */ |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
853 if (purple_prefs_get_bool(OPT_API_BASE_POST)) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
854 if (buffer && *buffer) { |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
855 post_status_with_api(account, buffer); |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
856 (*buffer)[0] = '\0'; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
857 } |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
858 return FALSE; |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
859 } |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
860 |
44 | 861 /* try to suppress oops message */ |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
862 utflen = g_utf8_strlen(*buffer, -1); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
863 bytes = strlen(*buffer); |
44 | 864 twitter_debug("utflen = %d bytes = %d\n", utflen, bytes); |
865 if(bytes > 140 && utflen <= 140) | |
866 suppress_oops = TRUE; | |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
867 |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
868 return FALSE; |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
869 } |
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
870 |
1 | 871 static gboolean |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
872 eval(const GMatchInfo *match_info, GString *result, gpointer user_data) |
1 | 873 { |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
874 eval_data *data = (eval_data *)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
|
875 gint which = data->which; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
876 gint service = data->service; |
1 | 877 gchar sub[128]; |
878 | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
879 twitter_debug("which = %d service = %d\n", which, service); |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
880 |
48
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
881 if(which == RECIPIENT) { |
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
882 gchar *match = g_match_info_fetch(match_info, 1); |
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
|
883 const gchar *format = NULL; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
884 switch(service) { |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
885 case twitter_service: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
886 format = RECIPIENT_FORMAT_TWITTER; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
887 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
888 case wassr_service: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
889 format = RECIPIENT_FORMAT_WASSR; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
890 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
891 case identica_service: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
892 format = RECIPIENT_FORMAT_IDENTICA; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
893 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
894 default: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
895 twitter_debug("unknown service\n"); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
896 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
897 } |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
898 g_snprintf(sub, 128, format, match, match); |
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
|
899 g_free(match); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
900 } |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
901 else if(which == SENDER) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
902 gchar *match1 = g_match_info_fetch(match_info, 1); /*preceding CR|LF*/ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
903 gchar *match2 = g_match_info_fetch(match_info, 2); /* sender */ |
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
|
904 const gchar *format = NULL; |
10
4bd8c89b4749
now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
9
diff
changeset
|
905 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
906 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
907 case twitter_service: |
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
|
908 format = SENDER_FORMAT_TWITTER; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
909 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
910 case wassr_service: |
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
|
911 format = SENDER_FORMAT_WASSR; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
912 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
913 case identica_service: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
914 format = SENDER_FORMAT_IDENTICA; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
915 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
916 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
917 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
918 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
919 } |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
920 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
921 g_snprintf(sub, 128, format, match1 ? match1: "", match2, match2); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
922 |
48
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
923 g_free(match1); |
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
924 g_free(match2); |
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
925 } |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
926 else if(which == CHANNEL_WASSR && service == wassr_service) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
927 gchar *match1 = g_match_info_fetch(match_info, 1); /*before channel*/ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
928 gchar *match2 = g_match_info_fetch(match_info, 2); /* channel */ |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
929 const gchar *format = CHANNEL_FORMAT_WASSR; |
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
930 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
931 g_snprintf(sub, 128, format, match1 ? match1: "", match2, match2); |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
932 |
98
e460e1978ca3
- fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
97
diff
changeset
|
933 g_free(match1); |
e460e1978ca3
- fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
97
diff
changeset
|
934 g_free(match2); |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
935 } |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
936 else if(which == TAG_IDENTICA && service == identica_service) { |
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
937 gchar *match = g_match_info_fetch(match_info, 1); |
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
938 const gchar *format = TAG_FORMAT_IDENTICA; |
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
939 g_snprintf(sub, 128, format, match, match); |
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
940 g_free(match); |
202
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
941 } |
48
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
942 |
42869098eda3
adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
46
diff
changeset
|
943 g_string_append(result, sub); |
6 | 944 twitter_debug("sub = %s\n", sub); |
1 | 945 |
946 return FALSE; | |
947 } | |
0 | 948 |
8 | 949 static void |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
950 translate(gchar **str, gint which, gint service) |
0 | 951 { |
1 | 952 gchar *newstr; |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
953 eval_data *data = g_new0(eval_data, 1); |
122
a37dd74c8355
- adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
121
diff
changeset
|
954 gint regp_id; |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
955 |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
956 data->which = which; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
957 data->service = service; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
958 |
122
a37dd74c8355
- adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
121
diff
changeset
|
959 regp_id = which; /* for future use --yaz */ |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
960 newstr = g_regex_replace_eval(regp[regp_id], /* compiled regex */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
961 *str, /* subject string */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
962 -1, /* length of the subject string */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
963 0, /* start position */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
964 0, /* match options */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
965 eval, /* function to be called for each match */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
966 data, /* user data */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
967 NULL); /* error handler */ |
1 | 968 |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
969 g_free(data); data = NULL; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
970 |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
971 twitter_debug("which = %d *str = %s newstr = %s\n", which, *str, newstr); |
1 | 972 |
973 g_free(*str); | |
974 *str = newstr; | |
975 } | |
0 | 976 |
8 | 977 static void |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
978 playsound(gchar **str, gint which) |
1 | 979 { |
980 GMatchInfo *match_info; | |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
981 const gchar *list = NULL; |
7
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
982 gchar **candidates = NULL, **candidate = NULL; |
0 | 983 |
31 | 984 list = purple_prefs_get_string(which ? OPT_USERLIST_SENDER : |
985 OPT_USERLIST_RECIPIENT); | |
5
6ac1867d7e8e
string list should be initialized with NULL
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
2
diff
changeset
|
986 g_return_if_fail(list != NULL); |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
987 if(strstr(list, DEFAULT_LIST)) |
7
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
988 return; |
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
989 |
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
990 candidates = g_strsplit_set(list, " ,:;", 0); |
20
4c236a7a128f
- now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
19
diff
changeset
|
991 g_return_if_fail(candidates != NULL); |
1 | 992 |
10
4bd8c89b4749
now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
9
diff
changeset
|
993 g_regex_match(regp[which], *str, 0, &match_info); |
6 | 994 while(g_match_info_matches(match_info)) { |
52
ac1259fde1d0
due to adaptation to msn style, username of sender has been carried down by one.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
51
diff
changeset
|
995 gchar *user = NULL; |
ac1259fde1d0
due to adaptation to msn style, username of sender has been carried down by one.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
51
diff
changeset
|
996 if(which == RECIPIENT) |
ac1259fde1d0
due to adaptation to msn style, username of sender has been carried down by one.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
51
diff
changeset
|
997 user = g_match_info_fetch(match_info, 1); |
ac1259fde1d0
due to adaptation to msn style, username of sender has been carried down by one.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
51
diff
changeset
|
998 else if(which == SENDER) |
ac1259fde1d0
due to adaptation to msn style, username of sender has been carried down by one.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
51
diff
changeset
|
999 user = g_match_info_fetch(match_info, 2); |
1 | 1000 twitter_debug("user = %s\n", user); |
0 | 1001 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1002 for(candidate = candidates; *candidate; candidate++) { |
7
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
1003 if(!strcmp(*candidate, "")) |
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
1004 continue; |
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
1005 twitter_debug("candidate = %s\n", *candidate); |
9
c6b80f47d4df
added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
8
diff
changeset
|
1006 if(!strcmp(user, *candidate)) { |
1 | 1007 twitter_debug("match. play sound\n"); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1008 purple_sound_play_event(purple_prefs_get_int |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1009 (which ? OPT_SOUNDID_SENDER : |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1010 OPT_SOUNDID_RECIPIENT), NULL); |
7
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
1011 break; |
1 | 1012 } |
1013 } | |
6 | 1014 g_free(user); |
1015 g_match_info_next(match_info, NULL); | |
1 | 1016 } |
7
44a66c52b190
- userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
6
diff
changeset
|
1017 g_strfreev(candidates); |
6 | 1018 g_match_info_free(match_info); |
0 | 1019 } |
1020 | |
1 | 1021 static gboolean |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1022 writing_im_cb(PurpleAccount *account, char *sender, char **buffer, |
91
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1023 PurpleConversation *conv, int flags, void *data) |
0 | 1024 { |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
1025 twitter_debug("called\n"); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
1026 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1027 gint service = get_service_type(conv); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1028 |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1029 /* check if the conversation is between twitter */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1030 if(service == unknown_service) |
44 | 1031 return FALSE; |
1032 | |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1033 /* add screen_name if the current message is posted by myself */ |
91
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1034 if (flags & PURPLE_MESSAGE_SEND) { |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1035 gchar *m = NULL; |
145
f220da0c089e
screen_name should be initialized.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
142
diff
changeset
|
1036 const char *screen_name = NULL; |
110
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1037 |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1038 switch(service) { |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1039 case twitter_service: |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1040 screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1041 break; |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1042 case wassr_service: |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1043 screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_WASSR); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1044 break; |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1045 case identica_service: |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1046 screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_IDENTICA); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1047 break; |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1048 } |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
1049 |
91
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1050 if (screen_name) { |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1051 m = g_strdup_printf("%s: %s", screen_name, *buffer); |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1052 g_free(*buffer); |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1053 *buffer = m; |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1054 } |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1055 } |
2b7ef3538cd3
- Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
85
diff
changeset
|
1056 |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
1057 /* strip all markups */ |
136
e67b0231ba56
completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
135
diff
changeset
|
1058 strip_markup(buffer, TRUE); |
10
4bd8c89b4749
now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
9
diff
changeset
|
1059 |
44 | 1060 /* playsound */ |
1061 if(purple_prefs_get_bool(OPT_PLAYSOUND_SENDER)) { | |
1062 playsound(buffer, SENDER); | |
1063 } | |
1064 if(purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT)) { | |
1065 playsound(buffer, RECIPIENT); | |
1066 } | |
41
0a81ccfa1941
strip excessive markup where it is not needed. (work in progress)
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
40
diff
changeset
|
1067 |
44 | 1068 /* translate */ |
1069 if(purple_prefs_get_bool(OPT_TRANSLATE_SENDER)) { | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1070 translate(buffer, SENDER, service); |
44 | 1071 } |
202
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
1072 if(purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)) { |
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
1073 translate(buffer, RECIPIENT, service); |
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
1074 } |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
1075 if(service == wassr_service && |
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
1076 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) { |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
1077 translate(buffer, CHANNEL_WASSR, service); |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
1078 } |
202
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
1079 if(service == identica_service && |
67d8eaba446d
preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
201
diff
changeset
|
1080 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) { |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
1081 translate(buffer, TAG_IDENTICA, service); |
98
e460e1978ca3
- fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
97
diff
changeset
|
1082 } |
44 | 1083 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1084 /* escape pseudo command (to show the same result as sending message) */ |
146
62b90f3b0b8a
replaced a occurrence of is_twitter_conv()
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
145
diff
changeset
|
1085 if(service == twitter_service && |
62b90f3b0b8a
replaced a occurrence of is_twitter_conv()
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
145
diff
changeset
|
1086 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) { |
44 | 1087 escape(buffer); |
1088 } | |
1089 | |
19
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
1090 return FALSE; |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
1091 } |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
1092 |
31 | 1093 static void |
1094 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position, | |
1095 gchar *new_text, gint new_text_length, gpointer user_data) | |
1096 { | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1097 PurpleConversation *conv = (PurpleConversation *)user_data; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1098 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1099 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1100 GtkWidget *box, *counter = NULL; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1101 gchar *markup = NULL; |
102
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1102 gint service = get_service_type(conv); |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
1103 guint count; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1104 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1105 g_return_if_fail(gtkconv != NULL); |
31 | 1106 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1107 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1108 case twitter_service: |
208
5d1b8528e144
changed length limit for identi.ca from 140 bytes to 140 characters.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
207
diff
changeset
|
1109 case identica_service: |
102
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1110 count = gtk_text_buffer_get_char_count(textbuffer) + |
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1111 (unsigned int)g_utf8_strlen(new_text, -1); |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1112 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1113 count <= 140 ? "black" : "red", count); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1114 break; |
199
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1115 case wassr_service: |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1116 count = gtk_text_buffer_get_char_count(textbuffer) + |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1117 (unsigned int)g_utf8_strlen(new_text, -1); |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1118 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1119 count <= 255 ? "black" : "red", count); |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1120 break; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1121 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1122 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1123 break; |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1124 } |
31 | 1125 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1126 box = gtkconv->toolbar; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1127 counter = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-counter"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1128 if(counter) |
31 | 1129 gtk_label_set_markup(GTK_LABEL(counter), markup); |
1130 | |
1131 g_free(markup); | |
1132 } | |
1133 | |
1134 static void | |
1135 delete_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *start_pos, | |
1136 GtkTextIter *end_pos, gpointer user_data) | |
1137 { | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1138 PurpleConversation *conv = (PurpleConversation *)user_data; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1139 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1140 GtkWidget *box, *counter = NULL; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1141 gchar *markup = NULL; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1142 gint service = get_service_type(conv); |
102
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1143 guint count = 0; |
31 | 1144 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1145 g_return_if_fail(gtkconv != NULL); |
31 | 1146 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1147 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1148 case twitter_service: |
208
5d1b8528e144
changed length limit for identi.ca from 140 bytes to 140 characters.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
207
diff
changeset
|
1149 case identica_service: |
102
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1150 count= gtk_text_buffer_get_char_count(textbuffer) - |
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1151 (gtk_text_iter_get_offset(end_pos) - |
55c466028d48
changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
101
diff
changeset
|
1152 gtk_text_iter_get_offset(start_pos)); |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1153 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1154 count <= 140 ? "black" : "red", count); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1155 break; |
199
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1156 case wassr_service: |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1157 count= gtk_text_buffer_get_char_count(textbuffer) - |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1158 (gtk_text_iter_get_offset(end_pos) - |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1159 gtk_text_iter_get_offset(start_pos)); |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1160 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>", |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1161 count <= 255 ? "black" : "red", count); |
5ddf8bee768d
according to mojin, jisko limits each post to 140 bytes and requires at least 5 bytes. now letter counter for jisko takes account of this limit.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
198
diff
changeset
|
1162 break; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1163 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1164 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1165 break; |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1166 } |
31 | 1167 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1168 box = gtkconv->toolbar; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1169 counter = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-counter"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1170 if(counter) |
31 | 1171 gtk_label_set_markup(GTK_LABEL(counter), markup); |
1172 | |
1173 g_free(markup); | |
1174 } | |
1175 | |
1176 static void | |
1177 detach_from_window(void) | |
1178 { | |
1179 GList *list; | |
1180 | |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1181 /* find twitter conv window out and detach from that */ |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1182 for(list = pidgin_conv_windows_get_list(); list; list = list->next) { |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1183 PidginWindow *win = list->data; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1184 PurpleConversation *conv = |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1185 pidgin_conv_window_get_active_conversation(win); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1186 gint service = get_service_type(conv); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1187 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1188 case twitter_service: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1189 case wassr_service: |
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
|
1190 case identica_service: |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1191 detach_from_conv(conv, NULL); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1192 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1193 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1194 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1195 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1196 } |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1197 } |
31 | 1198 } |
1199 | |
1200 static void | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1201 detach_from_conv(PurpleConversation *conv, gpointer null) |
31 | 1202 { |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1203 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1204 GtkWidget *box, *counter = NULL, *sep = NULL; |
31 | 1205 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1206 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry_buffer), |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1207 (GFunc) insert_text_cb, conv); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1208 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry_buffer), |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1209 (GFunc) delete_text_cb, conv); |
31 | 1210 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1211 box = gtkconv->toolbar; |
31 | 1212 |
1213 /* remove counter */ | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1214 counter = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-counter"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1215 if(counter) { |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1216 gtk_container_remove(GTK_CONTAINER(box), counter); |
31 | 1217 g_object_unref(counter); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1218 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", NULL); |
31 | 1219 } |
37
bafe2abf2d3b
- made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
36
diff
changeset
|
1220 |
31 | 1221 /* remove separator */ |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1222 sep = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-sep"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1223 if(sep) { |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1224 gtk_container_remove(GTK_CONTAINER(box), sep); |
31 | 1225 g_object_unref(sep); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1226 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", NULL); |
31 | 1227 } |
1228 | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1229 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window); |
31 | 1230 } |
1231 | |
1232 static void | |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1233 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:
79
diff
changeset
|
1234 { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1235 icon_data *data = (icon_data *)value; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1236 GtkTextBuffer *text_buffer = (GtkTextBuffer *)user_data; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1237 GList *mark_list = NULL; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1238 GList *current; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1239 |
111
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
1240 if(!data) |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
1241 return; |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
1242 |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
1243 if(data->request_list) |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1244 mark_list = data->request_list; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1245 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1246 /* remove the marks in its GtkTextBuffers */ |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1247 for(current = g_list_first(mark_list); current; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1248 current = g_list_next(current)) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1249 GtkTextMark *current_mark = current->data; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1250 GtkTextBuffer *current_text_buffer = gtk_text_mark_get_buffer( |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1251 current_mark); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1252 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1253 if(!current_text_buffer) |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1254 continue; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1255 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1256 if(text_buffer) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1257 if(current_text_buffer == text_buffer) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1258 /* the mark will be freed in this function */ |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1259 gtk_text_buffer_delete_mark(current_text_buffer, |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1260 current_mark); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1261 current->data = NULL; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1262 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1263 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1264 else { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1265 gtk_text_buffer_delete_mark(current_text_buffer, current_mark); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1266 current->data = NULL; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1267 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1268 } /* end of for */ |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1269 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1270 mark_list = g_list_remove_all(mark_list, NULL); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1271 data->request_list = mark_list; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1272 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1273 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1274 static void |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1275 delete_requested_icon_marks(PidginConversation *conv, GHashTable *table) { |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1276 GtkTextBuffer *text_buffer = gtk_text_view_get_buffer( |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1277 GTK_TEXT_VIEW(conv->imhtml)); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
1278 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1279 g_hash_table_foreach(table, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1280 (GHFunc)remove_marks_func, |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1281 (gpointer)text_buffer); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1282 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1283 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1284 static void |
31 | 1285 attach_to_window(void) |
1286 { | |
1287 GList *list; | |
1288 | |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1289 twitter_debug("called\n"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1290 |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1291 /* find twitter conv window out and attach to that */ |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1292 for(list = pidgin_conv_windows_get_list(); list; list = list->next) { |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1293 PidginWindow *win = list->data; |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1294 PurpleConversation *conv = |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1295 pidgin_conv_window_get_active_conversation(win); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1296 gint service = get_service_type(conv); |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1297 /* only attach to twitter conversation window */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1298 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1299 case twitter_service: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1300 case wassr_service: |
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
|
1301 case identica_service: |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1302 attach_to_conv(conv, NULL); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1303 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1304 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1305 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1306 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1307 } |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1308 } |
31 | 1309 } |
1310 | |
1311 static void | |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1312 attach_to_conv(PurpleConversation *conv, gpointer null) |
31 | 1313 { |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1314 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
50
3e0d4fd75b03
added that to disable widgets that decorate or link text.
mikanbako <maoutwo@gmail.com>
parents:
49
diff
changeset
|
1315 GtkWidget *box, *sep, *counter, *menus; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1316 GtkIMHtml *imhtml; |
31 | 1317 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1318 box = gtkconv->toolbar; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1319 imhtml = GTK_IMHTML(gtkconv->imhtml); |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1320 |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1321 /* Disable widgets that decorate or add link to composing text |
53 | 1322 * because Twitter cannot receive marked up string. For lean-view |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1323 * and wide-view, see pidgin/gtkimhtmltoolbar.c. |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1324 */ |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1325 menus = g_object_get_data(G_OBJECT(box), "lean-view"); |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1326 if(menus) { |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1327 gtk_widget_set_sensitive(GTK_WIDGET(menus), FALSE); |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1328 } |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1329 menus = g_object_get_data(G_OBJECT(box), "wide-view"); |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1330 if(menus) { |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1331 gtk_widget_set_sensitive(GTK_WIDGET(menus), FALSE); |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1332 } |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1333 |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1334 purple_conversation_set_features( |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1335 gtkconv->active_conv, |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1336 purple_conversation_get_features(gtkconv->active_conv) & |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
1337 ~PURPLE_CONNECTION_HTML); |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1338 |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1339 /* check if the counter is enabled */ |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1340 if(!purple_prefs_get_bool(OPT_COUNTER)) |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1341 return; |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1342 |
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1343 /* get counter object */ |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1344 counter = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-counter"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1345 g_return_if_fail(counter == NULL); |
31 | 1346 |
1347 /* make counter object */ | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1348 counter = gtk_label_new(NULL); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1349 gtk_widget_set_name(counter, "counter_label"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1350 gtk_label_set_text(GTK_LABEL(counter), "0"); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1351 gtk_box_pack_end(GTK_BOX(box), counter, FALSE, FALSE, 0); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1352 gtk_widget_show_all(counter); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1353 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", counter); |
31 | 1354 |
1355 /* make separator object */ | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1356 sep = gtk_vseparator_new(); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1357 gtk_box_pack_end(GTK_BOX(box), sep, FALSE, FALSE, 0); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1358 gtk_widget_show_all(sep); |
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1359 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", sep); |
31 | 1360 |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
1361 /* connect to signals */ |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1362 g_signal_connect(G_OBJECT(gtkconv->entry_buffer), "insert_text", |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1363 G_CALLBACK(insert_text_cb), conv); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1364 g_signal_connect(G_OBJECT(gtkconv->entry_buffer), "delete_range", |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1365 G_CALLBACK(delete_text_cb), conv); |
31 | 1366 |
1367 /* redraw window */ | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1368 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window); |
31 | 1369 } |
1370 | |
1371 static gboolean | |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1372 is_twitter_account(PurpleAccount *account, const char *name) |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1373 { |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1374 const gchar *proto = purple_account_get_protocol_id(account); |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1375 |
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
|
1376 if(g_strstr_len(name, 19, "twitter@twitter.com") && |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1377 g_strstr_len(proto, 11, "prpl-jabber")) { |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1378 return TRUE; |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1379 } |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1380 |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1381 return FALSE; |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1382 } |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1383 |
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1384 static gboolean |
31 | 1385 is_twitter_conv(PurpleConversation *conv) |
1386 { | |
96
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1387 g_return_val_if_fail(conv != NULL, FALSE); |
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1388 |
31 | 1389 const char *name = purple_conversation_get_name(conv); |
1390 PurpleAccount *account = purple_conversation_get_account(conv); | |
1391 | |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
1392 return is_twitter_account(account, name); |
31 | 1393 } |
1394 | |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1395 static gboolean |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1396 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:
73
diff
changeset
|
1397 { |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1398 const gchar *proto = purple_account_get_protocol_id(account); |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1399 |
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
|
1400 if(g_strstr_len(name, 18, "wassr-bot@wassr.jp") && |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1401 g_strstr_len(proto, 11, "prpl-jabber")) { |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1402 return TRUE; |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1403 } |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1404 |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1405 return FALSE; |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1406 } |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1407 |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1408 static gboolean |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1409 is_wassr_conv(PurpleConversation *conv) |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1410 { |
96
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1411 g_return_val_if_fail(conv != NULL, FALSE); |
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1412 |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1413 const char *name = purple_conversation_get_name(conv); |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1414 PurpleAccount *account = purple_conversation_get_account(conv); |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1415 |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1416 return is_wassr_account(account, name); |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1417 } |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1418 |
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
|
1419 static gboolean |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1420 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
|
1421 { |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1422 const gchar *proto = purple_account_get_protocol_id(account); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1423 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1424 if(g_strstr_len(name, 16, "update@identi.ca") && |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1425 g_strstr_len(proto, 11, "prpl-jabber")) { |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1426 return TRUE; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1427 } |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1428 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1429 return FALSE; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1430 } |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1431 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1432 static gboolean |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1433 is_identica_conv(PurpleConversation *conv) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1434 { |
96
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1435 g_return_val_if_fail(conv != NULL, FALSE); |
987607b5ba32
made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
95
diff
changeset
|
1436 |
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
|
1437 const char *name = purple_conversation_get_name(conv); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1438 PurpleAccount *account = purple_conversation_get_account(conv); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1439 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1440 return is_identica_account(account, 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
|
1441 } |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1442 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1443 static gint |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1444 get_service_type(PurpleConversation *conv) |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1445 { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1446 gint service = unknown_service; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1447 |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1448 g_return_val_if_fail(conv != NULL, unknown_service); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1449 |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1450 if(is_twitter_conv(conv)) |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1451 service = twitter_service; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1452 else if(is_wassr_conv(conv)) |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1453 service = wassr_service; |
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
|
1454 else if(is_identica_conv(conv)) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1455 service = identica_service; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1456 |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1457 return service; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1458 } |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1459 |
31 | 1460 static void |
1461 conv_created_cb(PurpleConversation *conv, gpointer null) | |
1462 { | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1463 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1464 |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1465 twitter_debug("called\n"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1466 |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
1467 g_return_if_fail(gtkconv != NULL); |
31 | 1468 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1469 gint service = get_service_type(conv); |
31 | 1470 /* only attach to twitter conversation window */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1471 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1472 case twitter_service: |
158
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
1473 get_status_with_api((gpointer)conv); |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
1474 source.id = g_timeout_add_seconds( |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
1475 purple_prefs_get_int(OPT_API_BASE_GET_INTERVAL), |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
1476 get_status_with_api, (gpointer)conv); |
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
1477 source.conv = conv; |
115
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
1478 attach_to_conv(conv, NULL); |
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
1479 break; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1480 case wassr_service: |
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
|
1481 case identica_service: |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1482 attach_to_conv(conv, NULL); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1483 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1484 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1485 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1486 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1487 } |
31 | 1488 } |
1489 | |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1490 static void |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1491 deleting_conv_cb(PurpleConversation *conv) |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1492 { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1493 PidginConversation *gtkconv = PIDGIN_CONVERSATION(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
|
1494 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1495 twitter_debug("called\n"); |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1496 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1497 g_return_if_fail(gtkconv != NULL); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1498 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1499 gint service = get_service_type(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
|
1500 GHashTable *hash = NULL; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1501 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1502 /* only attach to twitter conversation window */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1503 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1504 case twitter_service: |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
1505 if(purple_prefs_get_bool(OPT_API_BASE_POST)) { |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1506 g_source_remove_by_user_data((gpointer)conv); |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
1507 source.id = 0; |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
1508 source.conv = NULL; |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
1509 } |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1510 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1511 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1512 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1513 hash = icon_hash[wassr_service]; |
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
|
1514 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1515 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1516 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1517 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1518 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1519 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1520 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1521 } |
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
|
1522 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1523 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1524 delete_requested_icon_marks(gtkconv, hash); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1525 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1526 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1527 static void |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1528 apply_filter(gchar **sender, gchar **buffer, PurpleMessageFlags *flags, int service) |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1529 { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1530 GMatchInfo *match_info; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1531 const gchar *list = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1532 gchar **candidates = NULL, **candidate = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1533 |
212
8670e1572be8
fix for a bug that apply_filter() would crash if both sender and buffer have been cleared.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
211
diff
changeset
|
1534 g_return_if_fail(*sender != NULL); |
8670e1572be8
fix for a bug that apply_filter() would crash if both sender and buffer have been cleared.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
211
diff
changeset
|
1535 g_return_if_fail(*buffer != NULL); |
8670e1572be8
fix for a bug that apply_filter() would crash if both sender and buffer have been cleared.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
211
diff
changeset
|
1536 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1537 gchar *plain = strip_html_markup(*buffer); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1538 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1539 switch(service) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1540 case twitter_service: |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1541 list = purple_prefs_get_string(OPT_FILTER_TWITTER); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1542 break; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1543 case wassr_service: |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1544 list = purple_prefs_get_string(OPT_FILTER_WASSR); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1545 break; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1546 case identica_service: |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1547 list = purple_prefs_get_string(OPT_FILTER_IDENTICA); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1548 break; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1549 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1550 g_return_if_fail(list != NULL); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1551 if(strstr(list, DEFAULT_LIST)) |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1552 return; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1553 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1554 candidates = g_strsplit_set(list, " ,:;", 0); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1555 g_return_if_fail(candidates != NULL); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1556 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1557 g_regex_match(regp[SENDER], plain, 0, &match_info); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1558 while(g_match_info_matches(match_info)) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1559 gchar *user = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1560 user = g_match_info_fetch(match_info, 2); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1561 twitter_debug("user = %s\n", user); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1562 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1563 for(candidate = candidates; *candidate; candidate++) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1564 if(!strcmp(*candidate, "")) |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1565 continue; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1566 twitter_debug("candidate = %s\n", *candidate); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1567 if(!strcmp(user, *candidate)) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1568 twitter_debug("match. filter %s\n", user); |
214
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1569 // *flags |= PURPLE_MESSAGE_INVISIBLE; /* pidgin should handle this flag properly --yaz */ |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1570 #if 1 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1571 /* temporal workaround */ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1572 g_free(*sender); *sender = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1573 g_free(*buffer); *buffer = NULL; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1574 #endif |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1575 break; |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1576 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1577 } |
212
8670e1572be8
fix for a bug that apply_filter() would crash if both sender and buffer have been cleared.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
211
diff
changeset
|
1578 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1579 g_free(user); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1580 g_match_info_next(match_info, NULL); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1581 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1582 g_free(plain); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1583 g_strfreev(candidates); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1584 g_match_info_free(match_info); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1585 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1586 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1587 |
8 | 1588 static gboolean |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1589 receiving_im_cb(PurpleAccount *account, char **sender, char **buffer, |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1590 PurpleConversation *conv, PurpleMessageFlags *flags, void *data) |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1591 { |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
1592 twitter_debug("called\n"); |
39
2ac81c0afb53
- new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
38
diff
changeset
|
1593 twitter_debug("buffer = %s suppress_oops = %d\n", *buffer, suppress_oops); |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1594 |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1595 gint service = get_service_type(conv); |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1596 |
214
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1597 #ifdef _WIN32 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1598 /* suppress notification of incoming messages. */ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1599 if(service != unknown_service && |
214
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1600 purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION)) { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1601 if(!blink_modified) { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1602 blink_modified = TRUE; |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1603 blink_state = purple_prefs_get_bool(OPT_PIDGIN_BLINK_IM); |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1604 purple_prefs_set_bool(OPT_PIDGIN_BLINK_IM, FALSE); |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1605 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1606 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1607 else { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1608 if(blink_modified) { |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1609 purple_prefs_set_bool(OPT_PIDGIN_BLINK_IM, blink_state); |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1610 blink_modified = FALSE; |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1611 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1612 } |
148fa8a8be8e
- trying a new way to suppress window blinking in WIN32
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
212
diff
changeset
|
1613 #endif |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1614 |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1615 if(service == wassr_service) { |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1616 /* suppress annoying completion message from wassr */ |
81
f1163f2e4920
add suppression of annoying completion message for posts to the wasser-channel.
"mojin <truffechampagne@gmail.com>"
parents:
80
diff
changeset
|
1617 if(strstr(*buffer, "<body>投稿完了:") || |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1618 strstr(*buffer, "<body>チャンネル投稿完了:")) { |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1619 twitter_debug("clearing sender and buffer\n"); |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1620 g_free(*sender); *sender = NULL; |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1621 g_free(*buffer); *buffer = NULL; |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1622 } |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1623 /* discard parrot message */ |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1624 else if(wassr_post && |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1625 strlen(wassr_post) && |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1626 strstr(*buffer, wassr_post)) { |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1627 twitter_debug("parrot clearing: buf = %s post = %s\n", *buffer, wassr_post); |
82
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1628 g_free(*sender); *sender = NULL; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1629 g_free(*buffer); *buffer = NULL; |
c9600d64781a
work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
81
diff
changeset
|
1630 } |
74
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1631 } |
6b9593d1ffed
quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
73
diff
changeset
|
1632 |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1633 if(service == identica_service) { |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1634 /* discard parrot message */ |
201
0aeeafe37ef7
revised parrot blocker for identi.ca. now it compares stripped text and the stored message.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
200
diff
changeset
|
1635 gchar *stripped = strip_html_markup(*buffer); |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1636 if(identica_post && |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1637 strlen(identica_post) && |
201
0aeeafe37ef7
revised parrot blocker for identi.ca. now it compares stripped text and the stored message.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
200
diff
changeset
|
1638 strstr(stripped, identica_post)) { |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1639 twitter_debug("identica parrot clearing: buf = %s post = %s\n", |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1640 *buffer, identica_post); |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1641 g_free(*sender); *sender = NULL; |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1642 g_free(*buffer); *buffer = NULL; |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1643 } |
201
0aeeafe37ef7
revised parrot blocker for identi.ca. now it compares stripped text and the stored message.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
200
diff
changeset
|
1644 g_free(stripped); |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1645 } |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1646 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1647 /* filtering */ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1648 if(purple_prefs_get_bool(OPT_FILTER)) { |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1649 apply_filter(sender, buffer, flags, service); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1650 } |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1651 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
1652 /* return here if it is not twitter */ |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
1653 if(service != twitter_service) { |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
1654 return FALSE; |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
1655 } |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
1656 |
194
1495b478680b
tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
183
diff
changeset
|
1657 /* if we use api, discard all incoming IM messages. */ |
115
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
1658 if(purple_prefs_get_bool(OPT_API_BASE_POST)) { |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1659 g_free(*sender); *sender = NULL; |
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1660 g_free(*buffer); *buffer = NULL; |
115
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
1661 } |
7d0dd0e1dbd0
very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
113
diff
changeset
|
1662 |
37
bafe2abf2d3b
- made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
36
diff
changeset
|
1663 if(!suppress_oops || !purple_prefs_get_bool(OPT_SUPPRESS_OOPS)) |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1664 return FALSE; |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1665 |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1666 if(strstr(*buffer, OOPS_MESSAGE)) { |
39
2ac81c0afb53
- new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
38
diff
changeset
|
1667 twitter_debug("clearing sender and buffer\n"); |
65
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
1668 g_free(*sender); *sender = NULL; |
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
1669 g_free(*buffer); *buffer = NULL; |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1670 suppress_oops = FALSE; |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1671 } |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1672 return FALSE; |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1673 } |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
1674 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1675 static void |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1676 insert_icon_at_mark(GtkTextMark *requested_mark, gpointer user_data) |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1677 { |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1678 got_icon_data *gotdata = (got_icon_data *)user_data; |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1679 |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1680 gchar *user_name = gotdata->user_name; |
86 | 1681 gint service = gotdata->service; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1682 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1683 GList *win_list; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1684 GtkIMHtml *target_imhtml = NULL; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1685 GtkTextBuffer *target_buffer = NULL; |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
1686 GtkTextIter insertion_point; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1687 icon_data *data = NULL; |
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
|
1688 GHashTable *hash = NULL; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1689 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1690 twitter_debug("called: service = %d\n", service); |
70
74524f379440
trying simple search in insert_requested_icon() due to malfunction under linux environment.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
69
diff
changeset
|
1691 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1692 /* find the conversation that contains the mark */ |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1693 for(win_list = pidgin_conv_windows_get_list(); win_list; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1694 win_list = win_list->next) { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1695 PidginWindow *win = win_list->data; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1696 GList *conv_list; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1697 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1698 for(conv_list = pidgin_conv_window_get_gtkconvs(win); conv_list; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1699 conv_list = conv_list->next) { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1700 PidginConversation *conv = conv_list->data; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1701 PurpleConversation *purple_conv = conv->active_conv; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1702 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1703 gint service = get_service_type(purple_conv); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1704 |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1705 if(service != unknown_service) { |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1706 GtkIMHtml *current_imhtml = GTK_IMHTML(conv->imhtml); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1707 GtkTextBuffer *current_buffer = gtk_text_view_get_buffer( |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1708 GTK_TEXT_VIEW(current_imhtml)); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
1709 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1710 if(current_buffer == gtk_text_mark_get_buffer(requested_mark)) { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1711 target_imhtml = current_imhtml; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1712 target_buffer = current_buffer; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1713 break; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1714 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1715 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1716 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1717 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1718 if(!(target_imhtml && target_buffer)) { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1719 return; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1720 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1721 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1722 /* insert icon to the mark */ |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1723 gtk_text_buffer_get_iter_at_mark(target_buffer, |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
1724 &insertion_point, requested_mark); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1725 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1726 /* insert icon */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1727 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1728 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1729 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1730 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1731 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1732 hash = icon_hash[wassr_service]; |
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
|
1733 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1734 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1735 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1736 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1737 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1738 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1739 } |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1740 |
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
|
1741 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1742 data = (icon_data *)g_hash_table_lookup(hash, user_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
|
1743 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1744 |
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:
151
diff
changeset
|
1745 /* in this function, we put an icon for pending marks. we should |
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:
151
diff
changeset
|
1746 * not invalidate the icon here, otherwise it may result in |
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:
151
diff
changeset
|
1747 * thrashing. --yaz */ |
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:
151
diff
changeset
|
1748 |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
1749 if(!data || !data->pixbuf) { |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1750 return; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1751 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1752 |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
1753 /* insert icon actually */ |
104
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
1754 if(purple_prefs_get_bool(OPT_SHOW_ICON)) { |
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
1755 gtk_text_buffer_insert_pixbuf(target_buffer, |
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
1756 &insertion_point, |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
1757 data->pixbuf); |
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:
151
diff
changeset
|
1758 data->use_count++; |
104
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
1759 } |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
1760 gtk_text_buffer_delete_mark(target_buffer, requested_mark); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1761 requested_mark = NULL; |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
1762 } |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1763 |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
1764 static void |
86 | 1765 insert_requested_icon(const gchar *user_name, gint service) |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
1766 { |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1767 icon_data *data = NULL; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1768 GList *mark_list = NULL; |
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
|
1769 GHashTable *hash = NULL; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1770 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1771 twitter_debug("called\n"); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1772 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1773 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1774 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1775 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1776 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1777 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1778 hash = icon_hash[wassr_service]; |
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
|
1779 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1780 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1781 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1782 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1783 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1784 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1785 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1786 } |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1787 |
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
|
1788 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
1789 data = (icon_data *)g_hash_table_lookup(hash, user_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
|
1790 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1791 if(!data) |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1792 return; |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1793 |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1794 mark_list = data->request_list; |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1795 |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1796 got_icon_data *gotdata = g_new0(got_icon_data, 1); |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1797 gotdata->user_name = g_strdup(user_name); |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1798 gotdata->service = service; |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
1799 |
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:
151
diff
changeset
|
1800 twitter_debug("about to insert icon for pending requests\n"); |
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
|
1801 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1802 if(mark_list) { |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1803 g_list_foreach(mark_list, (GFunc) insert_icon_at_mark, gotdata); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1804 mark_list = g_list_remove_all(mark_list, NULL); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1805 g_list_free(mark_list); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1806 data->request_list = NULL; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1807 } |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
1808 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1809 g_free(gotdata->user_name); |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1810 g_free(gotdata); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1811 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1812 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1813 /* this function will be called when profile page has been retrieved */ |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1814 static void |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1815 got_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1816 const gchar *url_text, gsize len, const gchar *error_message) |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1817 { |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1818 got_icon_data *gotdata = (got_icon_data *)user_data; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1819 gchar *user_name = gotdata->user_name; |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1820 gint service = gotdata->service; |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1821 GMatchInfo *match_info = NULL; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1822 icon_data *data = NULL; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1823 gchar *url = NULL; |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1824 gint regp_id = -1; |
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1825 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1826 if(service == twitter_service) { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1827 data = (icon_data *)g_hash_table_lookup( |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1828 icon_hash[twitter_service], user_name); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1829 regp_id = IMAGE_TWITTER; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1830 } |
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
|
1831 else if(service == wassr_service) { |
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
|
1832 data = (icon_data *)g_hash_table_lookup( |
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
|
1833 icon_hash[wassr_service], user_name); |
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
|
1834 regp_id = IMAGE_WASSR; |
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
|
1835 } |
196
b436d72447e8
make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
194
diff
changeset
|
1836 else if(service == identica_service) { |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1837 data = (icon_data *)g_hash_table_lookup( |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1838 icon_hash[identica_service], user_name); |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1839 regp_id = IMAGE_IDENTICA; |
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1840 } |
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1841 |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1842 if(!url_text) { |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1843 if(data) { |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1844 data->requested = FALSE; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1845 data->fetch_data = NULL; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1846 } |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1847 g_free(gotdata->user_name); |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1848 g_free(gotdata); |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1849 return; |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1850 } |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1851 |
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
|
1852 /* setup image url */ /* xxx need simplify --yaz */ |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
1853 g_regex_match(regp[regp_id], url_text, 0, &match_info); |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1854 if(!g_match_info_matches(match_info)) { |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1855 g_match_info_free(match_info); |
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
|
1856 |
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
|
1857 if(service == twitter_service) { |
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
|
1858 twitter_debug("fall back to twitter default icon\n"); |
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
|
1859 url = g_strdup(TWITTER_DEFAULT_ICON_URL); |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1860 } |
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
|
1861 else { |
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
|
1862 twitter_debug("no image url found\n"); |
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
|
1863 if(data) { |
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
|
1864 data->requested = FALSE; |
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
|
1865 data->fetch_data = NULL; |
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
|
1866 } |
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
|
1867 g_free(gotdata->user_name); |
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
|
1868 g_free(gotdata); |
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
|
1869 return; |
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
|
1870 } |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1871 } |
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
|
1872 else { |
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
|
1873 url = g_match_info_fetch(match_info, 1); |
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
|
1874 g_match_info_free(match_info); |
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
|
1875 } |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1876 |
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
|
1877 /* find out basename */ |
142
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1878 gchar *slash = strrchr(url, '/'); |
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1879 *slash = '\0'; |
154
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1880 |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1881 gchar *lower = g_ascii_strdown(slash+1, -1); |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1882 |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1883 if(strstr(lower, ".png")) |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1884 data->img_type = "png"; |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1885 else if(strstr(lower, ".gif")) |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1886 data->img_type = "gif"; |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1887 else if(strstr(lower, ".jpg") || strstr(lower, ".jpeg")) |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1888 data->img_type = "jpg"; |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1889 |
d6ecbdee0afa
fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
153
diff
changeset
|
1890 g_free(lower); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1891 |
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
|
1892 gchar *tmp; |
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
|
1893 /* url encode basename. twitter needs this. */ |
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
|
1894 if(service == twitter_service) |
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
|
1895 tmp = g_strdup_printf("%s/%s", url, |
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
|
1896 purple_url_encode(slash+1)); |
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
|
1897 else if(service == wassr_service) { |
205
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1898 gchar *tmp0 = NULL; |
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1899 tmp0 = g_regex_replace(regp[SIZE_128_WASSR], slash+1, |
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1900 -1, 0, ".64.", 0, NULL); |
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1901 tmp = g_strdup_printf("http://wassr.jp%s/%s", url, |
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1902 tmp0 ? tmp0 : slash+1); |
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
1903 g_free(tmp0); |
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
|
1904 } |
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
|
1905 else { |
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
|
1906 tmp = g_strdup_printf("%s/%s", url, slash+1); |
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
|
1907 } |
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
|
1908 |
142
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1909 g_free(url); |
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1910 url = tmp; |
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1911 |
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
|
1912 /* if requesting icon url is the same as old, return. */ |
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
|
1913 if(url && data->icon_url && !strcmp(data->icon_url, url)) { |
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
|
1914 twitter_debug("old url = %s new url = %s\n", data->icon_url, url); |
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
|
1915 data->requested = FALSE; |
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
|
1916 data->fetch_data = NULL; |
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
|
1917 g_free(url); |
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
|
1918 return; |
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
|
1919 } |
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
|
1920 |
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
|
1921 if(data && data->pixbuf) { |
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
|
1922 gdk_pixbuf_unref(data->pixbuf); |
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
|
1923 data->pixbuf = NULL; |
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
|
1924 } |
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
|
1925 |
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
|
1926 g_free(data->icon_url); |
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
|
1927 data->icon_url = g_strdup(url); |
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
|
1928 |
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
|
1929 data->use_count = 0; |
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
|
1930 data->mtime = time(NULL); /* xxx is there a better way? */ |
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
|
1931 |
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
|
1932 twitter_debug("requested url=%s\n", url); |
140
dcf980ba3f8b
url encode icon url before requesting.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
139
diff
changeset
|
1933 |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1934 /* request fetch image */ |
142
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1935 if(url) { |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1936 /* reuse gotdata. just pass given one */ |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1937 /* gotdata will be released in got_icon_cb */ |
142
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1938 data->fetch_data = purple_util_fetch_url(url, |
141
fc1bf6b9b540
fixed a silly bug introduced in 140.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
140
diff
changeset
|
1939 TRUE, NULL, TRUE, |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1940 got_icon_cb, gotdata); |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1941 twitter_debug("request %s's icon\n", user_name); |
142
b573b534f32d
modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
141
diff
changeset
|
1942 g_free(url); |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1943 } |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1944 } |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1945 |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1946 static GdkPixbuf * |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1947 make_scaled_pixbuf(const gchar *url_text, gsize len) |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1948 { |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1949 /* make pixbuf */ |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1950 GdkPixbufLoader *loader; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1951 GdkPixbuf *src = NULL, *dest = NULL; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1952 gint size; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1953 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1954 g_return_val_if_fail(url_text != NULL, NULL); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1955 g_return_val_if_fail(len > 0, NULL); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1956 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1957 loader = gdk_pixbuf_loader_new(); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1958 gdk_pixbuf_loader_write(loader, (guchar *)url_text, len, NULL); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1959 gdk_pixbuf_loader_close(loader, NULL); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1960 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1961 src = gdk_pixbuf_loader_get_pixbuf(loader); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1962 if(!src) |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1963 return NULL; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1964 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1965 size = purple_prefs_get_int(OPT_ICON_SIZE); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1966 if(size == 0) |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
1967 size = DEFAULT_ICON_SIZE; |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1968 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1969 dest = gdk_pixbuf_scale_simple(src, size, size, GDK_INTERP_HYPER); |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
1970 gdk_pixbuf_unref(src); |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1971 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1972 return dest; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1973 } |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1974 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1975 static gchar *ext_list[] = { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1976 "png", |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1977 "gif", |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1978 "jpg", |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1979 NULL |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1980 }; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
1981 |
119
0c4a83f734cd
- duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
118
diff
changeset
|
1982 /* this function will be called when requested icon has been retrieved */ |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1983 static void |
65
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
1984 got_icon_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
1985 const gchar *url_text, gsize len, const gchar *error_message) |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
1986 { |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1987 got_icon_data *gotdata = (got_icon_data *)user_data; |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1988 gchar *user_name = gotdata->user_name; |
86 | 1989 gint service = gotdata->service; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1990 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
1991 icon_data *data = NULL; |
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
|
1992 GHashTable *hash = NULL; |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1993 GdkPixbuf *pixbuf = NULL; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
1994 const gchar *dirname = NULL; |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
1995 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
1996 twitter_debug("called: service = %d\n", service); |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
1997 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1998 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
1999 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2000 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2001 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2002 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2003 hash = icon_hash[wassr_service]; |
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
|
2004 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2005 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2006 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2007 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2008 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2009 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2010 } |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2011 |
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
|
2012 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2013 data = (icon_data *)g_hash_table_lookup(hash, user_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
|
2014 |
93
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2015 /* return if download failed */ |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2016 if(!url_text) { |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2017 twitter_debug("downloading %s's icon failed : %s\n", |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2018 user_name, error_message); |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2019 if(data) |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2020 data->requested = FALSE; |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2021 |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2022 goto fin_got_icon_cb; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2023 } |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2024 |
93
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2025 if(data) { |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2026 /* remove download request */ |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2027 data->requested = FALSE; |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2028 data->fetch_data = NULL; |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2029 |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2030 /* return if user's icon had been downloaded */ |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2031 if(data->pixbuf) { |
93
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2032 twitter_debug("%s's icon has already been downloaded\n", |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2033 user_name); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2034 |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2035 goto fin_got_icon_cb; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2036 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2037 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2038 |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2039 pixbuf = make_scaled_pixbuf(url_text, len); |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2040 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2041 if(!pixbuf) |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2042 goto fin_got_icon_cb; |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2043 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2044 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2045 if(!data) { |
93
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2046 twitter_debug("allocate icon_data (shouldn't be called)\n"); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2047 data = g_new0(icon_data, 1); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2048 } |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2049 |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2050 data->pixbuf = pixbuf; |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2051 |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2052 twitter_debug("new icon pixbuf = %p size = %d\n", |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2053 pixbuf, |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2054 gdk_pixbuf_get_rowstride(pixbuf) * |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2055 gdk_pixbuf_get_height(pixbuf)); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2056 |
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
|
2057 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2058 g_hash_table_insert(hash, g_strdup(user_name), data); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2059 |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2060 dirname = purple_prefs_get_string(OPT_ICON_DIR); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2061 |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2062 /* store retrieved image to a file in icon dir */ |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2063 if(ensure_path_exists(dirname)) { |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2064 gchar *filename = NULL; |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2065 gchar *path = NULL; |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2066 const gchar *suffix = NULL; |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2067 gchar **extp; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2068 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2069 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2070 case twitter_service: |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2071 suffix = "twitter"; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2072 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2073 case wassr_service: |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2074 suffix = "wassr"; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2075 break; |
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
|
2076 case identica_service: |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2077 suffix = "identica"; |
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
|
2078 break; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2079 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2080 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2081 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2082 } |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2083 |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2084 /* remove old file first */ |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2085 for(extp = ext_list; *extp; extp++) { |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2086 filename = g_strdup_printf("%s_%s.%s", |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2087 user_name, suffix, *extp); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2088 path = g_build_filename(dirname, filename, NULL); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2089 g_remove(path); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2090 |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2091 g_free(filename); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2092 g_free(path); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2093 } |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2094 |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2095 /* setup path */ |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2096 filename = g_strdup_printf("%s_%s.%s", |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2097 user_name, suffix, data->img_type); |
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2098 |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2099 path = g_build_filename(dirname, filename, NULL); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2100 g_free(filename); filename = NULL; |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2101 |
104
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
2102 g_file_set_contents(path, url_text, len, NULL); |
159
b771ddf0b683
should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
158
diff
changeset
|
2103 g_free(path); path = NULL; |
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:
151
diff
changeset
|
2104 |
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:
151
diff
changeset
|
2105 data->mtime = time(NULL); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2106 } |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
2107 |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2108 twitter_debug("Downloading %s's icon has been complete.\n", |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2109 user_name); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2110 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2111 /* Insert the icon to messages that had been received. */ |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2112 insert_requested_icon(user_name, service); |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2113 |
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2114 fin_got_icon_cb: |
93
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2115 g_free(gotdata->user_name); |
7219f7dee52f
revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
92
diff
changeset
|
2116 g_free(gotdata); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2117 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2118 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2119 static void |
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:
151
diff
changeset
|
2120 request_icon(const char *user_name, gint service, gboolean renew) |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2121 { |
63
760006015519
added that to show follower's icons through http://twitter.g.hatena.ne.jp/ikko615/20080107/1199703400
mikanbako <maoutwo@gmail.com>
parents:
62
diff
changeset
|
2122 gchar *url = NULL; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2123 |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2124 /* look local icon cache for the requested icon */ |
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2125 gchar *path = NULL; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2126 icon_data *data = NULL; |
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
|
2127 GHashTable *hash = NULL; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2128 const gchar *suffix = NULL; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2129 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2130 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2131 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2132 hash = icon_hash[twitter_service]; |
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
|
2133 suffix = "twitter"; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2134 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2135 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2136 hash = icon_hash[wassr_service]; |
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
|
2137 suffix = "wassr"; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2138 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2139 case identica_service: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2140 suffix = "identica"; |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2141 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2142 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2143 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2144 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2145 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2146 } |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2147 |
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
|
2148 if(!hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2149 return; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2150 |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2151 /* since this function is called after mark_icon_for_user(), data |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2152 * must exist here. */ |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2153 data = (icon_data *)g_hash_table_lookup(hash, user_name); |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2154 |
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2155 /* if img has been registerd, just return */ |
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
|
2156 if(data && data->pixbuf && !renew) |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2157 return; |
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2158 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2159 /* check if saved file exists */ |
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:
151
diff
changeset
|
2160 if(suffix && !renew) { |
107
eb77d409c235
- do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
104
diff
changeset
|
2161 gchar *filename = NULL; |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2162 gchar **extp; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2163 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2164 for(extp = ext_list; *extp; extp++) { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2165 filename = g_strdup_printf("%s_%s.%s", user_name, suffix, *extp); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2166 path = g_build_filename(purple_prefs_get_string(OPT_ICON_DIR), |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2167 filename, NULL); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2168 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2169 twitter_debug("path = %s\n", path); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2170 |
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:
151
diff
changeset
|
2171 /* build image from file, if file exists */ |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2172 if(g_file_test(path, G_FILE_TEST_EXISTS)) { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2173 gchar *imgdata = NULL; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2174 size_t len; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2175 GError *err = NULL; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2176 GdkPixbuf *pixbuf = NULL; |
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:
151
diff
changeset
|
2177 struct stat buf; |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2178 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2179 if (!g_file_get_contents(path, &imgdata, &len, &err)) { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2180 twitter_debug("Error reading %s: %s\n", |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2181 path, err->message); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2182 g_error_free(err); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2183 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2184 |
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:
151
diff
changeset
|
2185 if(stat(path, &buf)) |
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:
151
diff
changeset
|
2186 data->mtime = buf.st_mtime; |
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:
151
diff
changeset
|
2187 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2188 pixbuf = make_scaled_pixbuf(imgdata, len); |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2189 g_free(imgdata); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2190 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2191 if(pixbuf) { |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2192 data->pixbuf = pixbuf; |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2193 |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2194 twitter_debug("new icon pixbuf = %p size = %d\n", |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2195 pixbuf, |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2196 gdk_pixbuf_get_rowstride(pixbuf) * |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2197 gdk_pixbuf_get_height(pixbuf)); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2198 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2199 data->img_type = *extp; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2200 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2201 twitter_debug("icon data has been loaded from file\n"); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2202 insert_requested_icon(user_name, service); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2203 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2204 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2205 g_free(path); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2206 return; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2207 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2208 } /* for */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2209 } /* suffix */ |
66
0ddcba9161fd
now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
65
diff
changeset
|
2210 |
65
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
2211 /* Return if user's icon has been requested already. */ |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2212 if(data->requested) |
65
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
2213 return; |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2214 else |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2215 data->requested = TRUE; |
65
4949d4eb34ec
- revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
64
diff
changeset
|
2216 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2217 /* Create the URL for an user's icon. */ |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2218 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2219 case twitter_service: |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
2220 url = g_strdup_printf("http://twitter.com/%s", user_name); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2221 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2222 case wassr_service: |
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
|
2223 url = g_strdup_printf("http://wassr.jp/user/%s", user_name); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2224 break; |
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
|
2225 case identica_service: |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2226 url = g_strdup_printf("http://identi.ca/%s", user_name); |
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
|
2227 break; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2228 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2229 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2230 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2231 } |
63
760006015519
added that to show follower's icons through http://twitter.g.hatena.ne.jp/ikko615/20080107/1199703400
mikanbako <maoutwo@gmail.com>
parents:
62
diff
changeset
|
2232 |
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
|
2233 if(url) { |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2234 got_icon_data *gotdata = g_new0(got_icon_data, 1); |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2235 gotdata->user_name = g_strdup(user_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
|
2236 gotdata->service = service; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2237 |
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
|
2238 /* gotdata will be released in got_icon_cb */ |
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
|
2239 if(service == twitter_service || |
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
|
2240 service == wassr_service || |
200
9a2d727f39b4
removed jisko support as a protest to their expulsion policy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
199
diff
changeset
|
2241 service == identica_service) { |
103
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2242 data->fetch_data = purple_util_fetch_url(url, TRUE, NULL, TRUE, |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2243 got_page_cb, gotdata); |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2244 } |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2245 else { |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2246 data->fetch_data = purple_util_fetch_url(url, TRUE, NULL, TRUE, |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2247 got_icon_cb, gotdata); |
8de54d420328
added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
102
diff
changeset
|
2248 } |
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
|
2249 g_free(url); url = NULL; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2250 |
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
|
2251 twitter_debug("request %s's icon\n", user_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
|
2252 } |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2253 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2254 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2255 static void |
86 | 2256 mark_icon_for_user(GtkTextMark *mark, const gchar *user_name, gint service) |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2257 { |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2258 icon_data *data = NULL; |
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
|
2259 GHashTable *hash = NULL; |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2260 |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2261 twitter_debug("called\n"); |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2262 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2263 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2264 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2265 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2266 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2267 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2268 hash = icon_hash[wassr_service]; |
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
|
2269 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2270 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2271 hash = icon_hash[identica_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2272 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2273 default: |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2274 twitter_debug("unknown service\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2275 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2276 } |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2277 |
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
|
2278 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2279 data = (icon_data *)g_hash_table_lookup(hash, user_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
|
2280 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2281 /* proper place to allocate icon_data */ |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2282 if(!data) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2283 data = g_new0(icon_data, 1); |
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
|
2284 g_hash_table_insert(hash, g_strdup(user_name), data); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2285 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2286 |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2287 data->request_list = g_list_append(data->request_list, mark); |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2288 } |
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2289 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2290 static gboolean |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2291 displaying_im_cb(PurpleAccount *account, const char *who, char **message, |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2292 PurpleConversation *conv, PurpleMessageFlags flags, |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2293 void *unused) |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2294 { |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2295 GtkIMHtml *imhtml; |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2296 GtkTextBuffer *text_buffer; |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2297 gint service = get_service_type(conv); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2298 gint linenumber = 0; |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2299 |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2300 twitter_debug("called\n"); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2301 |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2302 if(service == unknown_service) { |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2303 twitter_debug("neither twitter or wassr conv\n"); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2304 return FALSE; |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2305 } |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2306 |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2307 /* get text buffer */ |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2308 imhtml = GTK_IMHTML(PIDGIN_CONVERSATION(conv)->imhtml); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2309 text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2310 |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2311 /* store number of lines */ |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2312 linenumber = gtk_text_buffer_get_line_count(text_buffer); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2313 g_hash_table_insert(conv_hash, conv, GINT_TO_POINTER(linenumber)); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2314 twitter_debug("conv = %p linenumber = %d\n", conv, linenumber); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2315 |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2316 return FALSE; |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2317 } |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2318 |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2319 static void |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2320 displayed_im_cb(PurpleAccount *account, const char *who, char *message, |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2321 PurpleConversation *conv, PurpleMessageFlags flags) |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2322 { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2323 GMatchInfo *match_info = NULL; |
70
74524f379440
trying simple search in insert_requested_icon() due to malfunction under linux environment.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
69
diff
changeset
|
2324 gchar *user_name = NULL; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2325 GtkIMHtml *imhtml; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2326 GtkTextBuffer *text_buffer; |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2327 GtkTextIter insertion_point; |
86 | 2328 gint service = get_service_type(conv); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2329 icon_data *data = NULL; |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2330 gint linenumber; |
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
|
2331 GHashTable *hash = NULL; |
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:
151
diff
changeset
|
2332 gboolean renew = FALSE; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2333 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2334 twitter_debug("called\n"); |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2335 |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2336 if(service == unknown_service) { |
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
|
2337 twitter_debug("unknown service\n"); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2338 return; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2339 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2340 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2341 /* get user's name */ |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2342 g_regex_match(regp[USER_FORMATTED], message, 0, &match_info); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2343 if(!g_match_info_matches(match_info)) { |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2344 twitter_debug("message was not matched : %s\n", message); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2345 g_match_info_free(match_info); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2346 return; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2347 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2348 |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2349 user_name = g_match_info_fetch(match_info, 1); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2350 g_match_info_free(match_info); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2351 |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2352 /* insert icon */ |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2353 imhtml = GTK_IMHTML(PIDGIN_CONVERSATION(conv)->imhtml); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2354 text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(imhtml)); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2355 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2356 /* get GtkTextIter in the target line */ |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2357 linenumber = GPOINTER_TO_INT(g_hash_table_lookup(conv_hash, conv)); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2358 gtk_text_buffer_get_iter_at_line(text_buffer, |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2359 &insertion_point, |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2360 linenumber); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2361 |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2362 switch(service) { |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2363 case twitter_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2364 hash = icon_hash[twitter_service]; |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2365 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2366 case wassr_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2367 hash = icon_hash[wassr_service]; |
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
|
2368 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2369 case identica_service: |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2370 hash = icon_hash[identica_service]; |
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
|
2371 break; |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2372 default: |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2373 twitter_debug("unknown service\n"); |
85
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2374 break; |
fb9831fae969
- fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
84
diff
changeset
|
2375 } |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2376 |
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
|
2377 if(hash) |
ab612180e7d0
- added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
94
diff
changeset
|
2378 data = g_hash_table_lookup(hash, user_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
|
2379 |
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:
151
diff
changeset
|
2380 if(data) { |
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:
151
diff
changeset
|
2381 /* check validity of icon */ |
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:
151
diff
changeset
|
2382 int count_thres = purple_prefs_get_int(OPT_ICON_MAX_COUNT); |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2383 int days_thres = DAYS_TO_SECONDS( |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2384 purple_prefs_get_int(OPT_ICON_MAX_DAYS)); |
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:
151
diff
changeset
|
2385 |
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:
151
diff
changeset
|
2386 if(data->use_count > count_thres || |
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:
151
diff
changeset
|
2387 (data->mtime && ((time(NULL) - data->mtime)) > days_thres)) { |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2388 twitter_debug("count=%d mtime=%d\n", |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2389 data->use_count, (int)(data->mtime)); |
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:
151
diff
changeset
|
2390 renew = TRUE; |
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
|
2391 request_icon(user_name, service, renew); |
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:
151
diff
changeset
|
2392 } |
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:
151
diff
changeset
|
2393 } |
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:
151
diff
changeset
|
2394 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2395 /* if we don't have the icon for this user, put a mark instead and |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2396 * request the icon */ |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2397 if(!data || !data->pixbuf) { |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2398 twitter_debug("%s's icon is not in memory.\n", user_name); |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2399 mark_icon_for_user(gtk_text_buffer_create_mark( |
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
|
2400 text_buffer, NULL, &insertion_point, FALSE), |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2401 user_name, service); |
78
0b93dd0e0de1
fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents:
76
diff
changeset
|
2402 /* request to attach icon to the buffer */ |
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:
151
diff
changeset
|
2403 request_icon(user_name, service, renew); |
70
74524f379440
trying simple search in insert_requested_icon() due to malfunction under linux environment.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
69
diff
changeset
|
2404 g_free(user_name); user_name = NULL; |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2405 return; |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2406 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2407 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2408 /* if we have icon for this user, insert icon immediately */ |
104
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
2409 if(purple_prefs_get_bool(OPT_SHOW_ICON)) { |
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
2410 gtk_text_buffer_insert_pixbuf(text_buffer, |
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
2411 &insertion_point, |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2412 data->pixbuf); |
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:
151
diff
changeset
|
2413 data->use_count++; |
104
084e1c6de8ca
icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
103
diff
changeset
|
2414 } |
70
74524f379440
trying simple search in insert_requested_icon() due to malfunction under linux environment.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
69
diff
changeset
|
2415 g_free(user_name); user_name = NULL; |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
2416 |
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
2417 twitter_debug("reach end of function\n"); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2418 } |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2419 |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2420 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2421 static void |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2422 signed_on_cb(PurpleConnection *gc) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2423 { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2424 PurpleBuddyList *list = purple_get_blist(); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2425 PurpleBlistNode *gnode, *cnode, *bnode; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2426 PurpleBuddy *b; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2427 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2428 twitter_debug("called\n"); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2429 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2430 if(!purple_prefs_get_bool(OPT_API_BASE_POST)) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2431 return; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2432 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2433 if (!list) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2434 return; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2435 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2436 twitter_debug("scan list\n"); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2437 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2438 for (gnode = list->root; gnode; gnode = gnode->next) { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2439 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2440 continue; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2441 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2442 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2443 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2444 if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode)) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2445 continue; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2446 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2447 for(bnode = cnode->child; bnode; bnode = bnode->next) { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2448 if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2449 continue; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2450 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2451 b = (PurpleBuddy *)bnode; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2452 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2453 if(!PURPLE_BUDDY_IS_ONLINE(b)) { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2454 const char *name; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2455 PurpleAccount *account; |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2456 name = purple_buddy_get_name(b); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2457 account = purple_buddy_get_account(b); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2458 if (is_twitter_account(account, name)) { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2459 PurpleConversation *gconv; |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2460 gconv = purple_find_conversation_with_account( |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2461 PURPLE_CONV_TYPE_IM, name, account); |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2462 if (!gconv) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2463 gconv = purple_conversation_new( |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2464 PURPLE_CONV_TYPE_IM, account, name); |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2465 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2466 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2467 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2468 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2469 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2470 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2471 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2472 |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2473 static void |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2474 api_base_post_cb(const char *name, PurplePrefType type, gconstpointer value, |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2475 gpointer data) |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2476 { |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2477 signed_on_cb(NULL); |
158
ae09f0d93b17
fixed a bug that get_status_with_api() will never be called if pidgin-twitter started with api_based_post disabled. it must be submitted to main loop regardless of configuration.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
157
diff
changeset
|
2478 get_status_with_api((gpointer)(source.conv)); |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2479 } |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2480 |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
2481 static gboolean |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
2482 load_plugin(PurplePlugin *plugin) |
0 | 2483 { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2484 int i; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2485 |
6 | 2486 /* connect to signal */ |
2487 purple_signal_connect(purple_conversations_get_handle(), "writing-im-msg", | |
19
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
2488 plugin, PURPLE_CALLBACK(writing_im_cb), NULL); |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
2489 purple_signal_connect(purple_conversations_get_handle(), "sending-im-msg", |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
2490 plugin, PURPLE_CALLBACK(sending_im_cb), NULL); |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
2491 purple_signal_connect(purple_conversations_get_handle(), |
31 | 2492 "conversation-created", |
2493 plugin, PURPLE_CALLBACK(conv_created_cb), NULL); | |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
2494 purple_signal_connect(purple_conversations_get_handle(), "receiving-im-msg", |
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
2495 plugin, PURPLE_CALLBACK(receiving_im_cb), NULL); |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2496 purple_signal_connect(pidgin_conversations_get_handle(), "displaying-im-msg", |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2497 plugin, PURPLE_CALLBACK(displaying_im_cb), NULL); |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2498 |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2499 purple_signal_connect(pidgin_conversations_get_handle(), "displayed-im-msg", |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2500 plugin, PURPLE_CALLBACK(displayed_im_cb), NULL); |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2501 purple_signal_connect(purple_conversations_get_handle(), |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2502 "deleting-conversation", |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2503 plugin, PURPLE_CALLBACK(deleting_conv_cb), NULL); |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2504 purple_signal_connect(purple_connections_get_handle(), "signed-on", |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2505 plugin, PURPLE_CALLBACK(signed_on_cb), NULL); |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2506 |
0 | 2507 |
28
73e817be3267
- Fixed a crash bug. Each unload/reload cycle caused crash due to unrefed regp.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
25
diff
changeset
|
2508 /* compile regex */ |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
2509 regp[RECIPIENT] = g_regex_new(P_RECIPIENT, 0, 0, NULL); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
2510 regp[SENDER] = g_regex_new(P_SENDER, 0, 0, NULL); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
2511 regp[COMMAND] = g_regex_new(P_COMMAND, G_REGEX_RAW, 0, NULL); |
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
2512 regp[PSEUDO] = g_regex_new(P_PSEUDO, G_REGEX_RAW, 0, NULL); |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2513 regp[USER] = g_regex_new(P_USER, 0, 0, NULL); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2514 regp[USER_FIRST_LINE] = g_regex_new(P_USER_FIRST_LINE, 0, 0, NULL); |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2515 regp[USER_FORMATTED] = g_regex_new(P_USER_FORMATTED, G_REGEX_RAW, 0, NULL); |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
2516 regp[CHANNEL_WASSR] = g_regex_new(P_CHANNEL, 0, 0, NULL); |
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
|
2517 regp[IMAGE_TWITTER] = g_regex_new(P_IMAGE_TWITTER, 0, 0, NULL); |
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
|
2518 regp[IMAGE_WASSR] = g_regex_new(P_IMAGE_WASSR, 0, 0, NULL); |
134
9e80267fe566
- changed the way of retrieving icons from twitter. now pidgin-twitter retrieves icon which is embedded in user page.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
130
diff
changeset
|
2519 regp[IMAGE_IDENTICA] = g_regex_new(P_IMAGE_IDENTICA, 0, 0, NULL); |
203
6c6fe6375ce4
revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
202
diff
changeset
|
2520 regp[TAG_IDENTICA] = g_regex_new(P_TAG_IDENTICA, 0, 0, NULL); |
205
bc1448e72b1b
workaround for that wassr sometimes provides 128 pixel icon with broad white borders.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
204
diff
changeset
|
2521 regp[SIZE_128_WASSR] = g_regex_new(P_SIZE_128_WASSR, 0, 0, NULL); |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
2522 |
194
1495b478680b
tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
183
diff
changeset
|
2523 for(i = twitter_service; i < NUM_SERVICES; i++) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2524 icon_hash[i] = g_hash_table_new_full(g_str_hash, g_str_equal, |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2525 g_free, NULL); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2526 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2527 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2528 conv_hash = g_hash_table_new_full(g_direct_hash, g_direct_equal, |
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2529 NULL, NULL); |
28
73e817be3267
- Fixed a crash bug. Each unload/reload cycle caused crash due to unrefed regp.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
25
diff
changeset
|
2530 |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2531 |
37
bafe2abf2d3b
- made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
36
diff
changeset
|
2532 /* attach counter to the existing twitter window */ |
51
d5f251b37f6b
- make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
50
diff
changeset
|
2533 if(purple_prefs_get_bool(OPT_COUNTER)) { |
31 | 2534 attach_to_window(); |
2535 } | |
2536 | |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2537 /* allocate wassr_post */ |
209
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
2538 wassr_post = g_new0(gchar, 4 * WASSR_POST_LEN + 1); |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2539 |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2540 /* allocate identica_post */ |
209
d512d1d8712f
improved parrot blocker slightly.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
208
diff
changeset
|
2541 identica_post = g_new0(gchar, 4 * IDENTICA_POST_LEN + 1); |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2542 |
6 | 2543 return TRUE; |
0 | 2544 } |
2545 | |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2546 static void |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2547 cancel_fetch_func(gpointer key, gpointer value, gpointer user_data) |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2548 { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2549 icon_data *data = (icon_data *)value; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2550 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2551 if(!data) |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2552 return; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2553 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2554 if(data->fetch_data) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2555 purple_util_fetch_url_cancel(data->fetch_data); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2556 data->fetch_data = NULL; |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2557 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2558 |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2559 if(data->request_list) { |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2560 twitter_debug("somehow, request_list != NULL\n"); |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2561 } |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2562 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2563 |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2564 static void |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2565 cleanup_hash_entry_func(gpointer key, gpointer value, gpointer user_data) |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2566 { |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2567 remove_marks_func(key, value, user_data); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2568 cancel_fetch_func(key, value, user_data); |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2569 } |
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2570 |
8 | 2571 static gboolean |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
2572 unload_plugin(PurplePlugin *plugin) |
0 | 2573 { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2574 int i; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2575 |
39
2ac81c0afb53
- new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
38
diff
changeset
|
2576 twitter_debug("called\n"); |
0 | 2577 |
31 | 2578 /* disconnect from signal */ |
2579 purple_signal_disconnect(purple_conversations_get_handle(), | |
2580 "writing-im-msg", | |
2581 plugin, PURPLE_CALLBACK(writing_im_cb)); | |
2582 purple_signal_disconnect(purple_conversations_get_handle(), | |
2583 "sending-im-msg", | |
2584 plugin, PURPLE_CALLBACK(sending_im_cb)); | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
2585 purple_signal_disconnect(purple_conversations_get_handle(), |
31 | 2586 "conversation-created", |
2587 plugin, PURPLE_CALLBACK(conv_created_cb)); | |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2588 purple_signal_disconnect(pidgin_conversations_get_handle(), |
135
cae8d5dd24d0
disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
134
diff
changeset
|
2589 "displaying-im-msg", |
cae8d5dd24d0
disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
134
diff
changeset
|
2590 plugin, PURPLE_CALLBACK(displaying_im_cb)); |
cae8d5dd24d0
disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
134
diff
changeset
|
2591 purple_signal_disconnect(pidgin_conversations_get_handle(), |
61
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2592 "displayed-im-msg", |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2593 plugin, PURPLE_CALLBACK(displayed_im_cb)); |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2594 purple_signal_disconnect(purple_conversations_get_handle(), |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2595 "receiving-im-msg", |
a44d15cfd8a2
trying to fix changeset 60:ddd164e74312: clash when a message received and this plugin loaded after unloaded
mikanbako <maoutwo@gmail.com>
parents:
60
diff
changeset
|
2596 plugin, PURPLE_CALLBACK(receiving_im_cb)); |
36
ae1d059fa6fe
added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
35
diff
changeset
|
2597 purple_signal_disconnect(purple_conversations_get_handle(), |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2598 "deleting-conversation", |
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2599 plugin, PURPLE_CALLBACK(deleting_conv_cb)); |
118
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2600 purple_signal_disconnect(purple_connections_get_handle(), |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2601 "signed-on", |
8b097fcb9243
Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
117
diff
changeset
|
2602 plugin, PURPLE_CALLBACK(signed_on_cb)); |
31 | 2603 |
2604 /* unreference regp */ | |
196
b436d72447e8
make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
194
diff
changeset
|
2605 for(i = 0; i < NUM_REGPS; i++) { |
122
a37dd74c8355
- adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
121
diff
changeset
|
2606 g_regex_unref(regp[i]); |
a37dd74c8355
- adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
121
diff
changeset
|
2607 } |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2608 |
80
e0bf37c105eb
work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
79
diff
changeset
|
2609 /* remove mark list in each hash entry */ |
60
ddd164e74312
trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents:
59
diff
changeset
|
2610 /* cancel request that has not been finished yet */ |
194
1495b478680b
tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
183
diff
changeset
|
2611 for(i = twitter_service; i < NUM_SERVICES; i++) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2612 /* delete mark list and stop requeset for each hash table */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2613 g_hash_table_foreach(icon_hash[i], |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2614 (GHFunc)cleanup_hash_entry_func, NULL); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2615 /* destroy hash table for icon_data */ |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2616 g_hash_table_destroy(icon_hash[i]); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2617 } |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2618 |
94
31cddb2c2acc
fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
93
diff
changeset
|
2619 g_hash_table_destroy(conv_hash); |
9
c6b80f47d4df
added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
8
diff
changeset
|
2620 |
31 | 2621 /* detach from twitter window */ |
2622 detach_from_window(); | |
2623 | |
84
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2624 /* free wassr_post */ |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2625 g_free(wassr_post); |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2626 wassr_post = NULL; |
0c1f63882b8a
preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
83
diff
changeset
|
2627 |
138
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2628 /* free identica_post */ |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2629 g_free(identica_post); |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2630 identica_post = NULL; |
eaf5d2c4ada0
temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents:
137
diff
changeset
|
2631 |
6 | 2632 return TRUE; |
0 | 2633 } |
2634 | |
31 | 2635 static void |
2636 counter_prefs_cb(const char *name, PurplePrefType type, | |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
2637 gconstpointer val, gpointer data) |
31 | 2638 { |
2639 gboolean enabled = purple_prefs_get_bool(OPT_COUNTER); | |
45
746ff3b54c10
trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
44
diff
changeset
|
2640 |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2641 if(enabled) |
40
e60e6cbdc4c4
- added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
39
diff
changeset
|
2642 attach_to_window(); |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2643 else |
31 | 2644 detach_from_window(); |
2645 } | |
2646 | |
111
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2647 static void |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2648 invalidate_icon_data_func(gpointer key, gpointer value, gpointer user_data) |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2649 { |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2650 icon_data *data = (icon_data *)value; |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2651 |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2652 g_return_if_fail(data != NULL); |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2653 |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2654 g_object_unref(data->pixbuf); |
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2655 data->pixbuf = NULL; |
111
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2656 } |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2657 |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2658 static void |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2659 icon_size_prefs_cb(const char *name, PurplePrefType type, |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2660 gconstpointer val, gpointer data) |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2661 { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2662 int i; |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2663 |
111
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2664 /* invalidate icon cache */ |
194
1495b478680b
tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
183
diff
changeset
|
2665 for(i = twitter_service; i < NUM_SERVICES; i++) { |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2666 g_hash_table_foreach(icon_hash[i], |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2667 (GHFunc)invalidate_icon_data_func, NULL); |
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2668 } |
111
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2669 } |
799b28f181f8
added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
110
diff
changeset
|
2670 |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2671 static void |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2672 interval_prefs_cb(const char *name, PurplePrefType type, |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2673 gconstpointer val, gpointer data) |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2674 { |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2675 /* remove idle func */ |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2676 g_source_remove_by_user_data((gpointer)(source.conv)); |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2677 |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2678 /* add idle func */ |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2679 if(purple_prefs_get_bool(OPT_API_BASE_POST)) { |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2680 source.id = g_timeout_add_seconds( |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2681 purple_prefs_get_int(OPT_API_BASE_GET_INTERVAL), |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2682 get_status_with_api, (gpointer)(source.conv)); |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2683 } |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2684 } |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2685 |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2686 static void |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2687 text_changed_cb(gpointer *data) |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2688 { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2689 const gchar *text; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2690 gchar *pref = (gchar *)g_object_get_data(G_OBJECT(data), "pref"); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2691 text = gtk_entry_get_text(GTK_ENTRY(data)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2692 purple_prefs_set_string(pref, text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2693 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2694 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2695 static void |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2696 bool_toggled_cb(gpointer *data) |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2697 { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2698 gchar *pref = (gchar *)g_object_get_data(G_OBJECT(data), "pref"); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2699 gboolean value = purple_prefs_get_bool(pref); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2700 purple_prefs_set_bool(pref, !value); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2701 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2702 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2703 static void |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2704 spin_changed_cb(gpointer *data) |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2705 { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2706 gchar *pref = (gchar *)g_object_get_data(G_OBJECT(data), "pref"); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2707 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2708 twitter_debug("called\n"); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2709 |
164 | 2710 purple_prefs_set_int(pref, |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2711 gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(data))); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2712 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2713 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2714 static void |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2715 combo_changed_cb(gpointer *data) |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2716 { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2717 gint position; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2718 gchar *pref = (gchar *)g_object_get_data(G_OBJECT(data), "pref"); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2719 position = gtk_combo_box_get_active(GTK_COMBO_BOX(data)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2720 purple_prefs_set_int(pref, position); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2721 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2722 |
157
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2723 static void |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2724 disconnect_prefs_cb(GtkObject *object, gpointer data) |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2725 { |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2726 PurplePlugin *plugin = (PurplePlugin *)data; |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2727 |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2728 purple_prefs_disconnect_by_handle(plugin); |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2729 } |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2730 |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2731 static GtkWidget * |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2732 prefs_get_frame(PurplePlugin *plugin) |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2733 { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2734 GtkBuilder *builder; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2735 GError *err = NULL; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2736 gchar *filename; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2737 GtkWidget *window, *notebook, *e; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2738 const gchar *text; |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2739 GtkSpinButton *spin; |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2740 GtkObject *adjust; |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2741 gint value; |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2742 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2743 builder = gtk_builder_new(); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2744 |
129
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2745 #ifdef _WIN32 |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2746 filename = g_build_filename(purple_user_dir(), |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2747 "pidgin-twitter", "prefs.ui", NULL); |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2748 #else |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2749 filename = g_build_filename(DATADIR, |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2750 "pidgin-twitter", "prefs.ui", NULL); |
686498cc1e7a
in win 32 environment, DATADIR cannot be resolved at compile time, so that use purple_user_dir() instead.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
128
diff
changeset
|
2751 #endif |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2752 gtk_builder_add_from_file(builder, filename, &err); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2753 if(err) { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2754 twitter_debug("%s\n", err->message); |
167
10516b7b05a9
- ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
166
diff
changeset
|
2755 g_free(filename); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2756 return NULL; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2757 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2758 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2759 g_free(filename); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2760 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2761 gtk_builder_connect_signals(builder, NULL); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2762 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2763 window = GTK_WIDGET(gtk_builder_get_object(builder, "prefswindow")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2764 notebook = GTK_WIDGET(gtk_builder_get_object(builder, "prefsnotebook")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2765 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2766 gtk_container_remove(GTK_CONTAINER(window), notebook); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2767 |
157
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2768 g_signal_connect(notebook, "destroy", |
fbe526b20885
revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
156
diff
changeset
|
2769 G_CALLBACK(disconnect_prefs_cb), plugin); |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2770 |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2771 |
164 | 2772 /**********************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2773 /* connect to signals */ |
164 | 2774 /**********************/ |
2775 | |
2776 /****************/ | |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2777 /* account page */ |
164 | 2778 /****************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2779 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_twitter")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2780 g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_TWITTER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2781 text = purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2782 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2783 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2784 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2785 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2786 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_wassr")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2787 g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_WASSR); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2788 text = purple_prefs_get_string(OPT_SCREEN_NAME_WASSR); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2789 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2790 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2791 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2792 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2793 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_identica")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2794 g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_IDENTICA); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2795 text = purple_prefs_get_string(OPT_SCREEN_NAME_IDENTICA); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2796 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2797 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2798 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2799 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2800 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_api")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2801 g_object_set_data(G_OBJECT(e), "pref", OPT_API_BASE_POST); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2802 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2803 purple_prefs_get_bool(OPT_API_BASE_POST)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2804 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2805 G_CALLBACK(bool_toggled_cb), &e); |
148
4e9d0fd93fb6
- in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
147
diff
changeset
|
2806 purple_prefs_connect_callback(plugin, OPT_API_BASE_POST, /* xxx divide? */ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2807 api_base_post_cb, NULL); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2808 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2809 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_api_password")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2810 g_object_set_data(G_OBJECT(e), "pref", OPT_PASSWORD_TWITTER); |
130
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2811 |
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2812 gtk_entry_set_visibility(GTK_ENTRY(e), FALSE); |
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2813 if (gtk_entry_get_invisible_char(GTK_ENTRY(e)) == '*') |
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2814 gtk_entry_set_invisible_char(GTK_ENTRY(e), PIDGIN_INVISIBLE_CHAR); |
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2815 |
30f3695bb969
made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
129
diff
changeset
|
2816 text = purple_prefs_get_string(OPT_PASSWORD_TWITTER); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2817 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2818 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2819 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2820 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2821 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2822 /* interval spin */ |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2823 e = GTK_WIDGET(gtk_builder_get_object (builder, |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2824 "account_api_get_interval_spin")); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2825 g_object_set_data(G_OBJECT(e), "pref", OPT_API_BASE_GET_INTERVAL); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2826 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2827 spin = GTK_SPIN_BUTTON(e); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2828 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2829 value = purple_prefs_get_int(OPT_API_BASE_GET_INTERVAL); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2830 twitter_debug("spin value = %d\n", value); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2831 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2832 adjust = gtk_adjustment_new(value, 40, 3600, 10, 100, 100); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2833 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2834 gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2835 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2836 if(value == 0) { |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2837 value = TWITTER_DEFAULT_INTERVAL; |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2838 purple_prefs_set_int(OPT_API_BASE_GET_INTERVAL, value); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2839 } |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2840 gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2841 g_signal_connect(e, "value-changed", |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2842 G_CALLBACK(spin_changed_cb), &e); |
156
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2843 purple_prefs_connect_callback(plugin, OPT_API_BASE_GET_INTERVAL, |
e65f81211340
now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
155
diff
changeset
|
2844 interval_prefs_cb, NULL); |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2845 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2846 |
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2847 |
164 | 2848 /********************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2849 /* translation page */ |
164 | 2850 /********************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2851 e = GTK_WIDGET(gtk_builder_get_object (builder, "translation_recipient")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2852 g_object_set_data(G_OBJECT(e), "pref", OPT_TRANSLATE_RECIPIENT); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2853 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2854 purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2855 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2856 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2857 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2858 e = GTK_WIDGET(gtk_builder_get_object (builder, "translation_sender")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2859 g_object_set_data(G_OBJECT(e), "pref", OPT_TRANSLATE_SENDER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2860 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2861 purple_prefs_get_bool(OPT_TRANSLATE_SENDER)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2862 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2863 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2864 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2865 e = GTK_WIDGET(gtk_builder_get_object (builder, "translation_channel")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2866 g_object_set_data(G_OBJECT(e), "pref", OPT_TRANSLATE_CHANNEL); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2867 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2868 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2869 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2870 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2871 |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2872 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2873 |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2874 /***************/ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2875 /* filter page */ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2876 /***************/ |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2877 e = GTK_WIDGET(gtk_builder_get_object (builder, "filter_check")); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2878 g_object_set_data(G_OBJECT(e), "pref", OPT_FILTER); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2879 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2880 purple_prefs_get_bool(OPT_FILTER)); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2881 g_signal_connect(e, "toggled", |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2882 G_CALLBACK(bool_toggled_cb), &e); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2883 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2884 e = GTK_WIDGET(gtk_builder_get_object (builder, "filter_twitter")); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2885 g_object_set_data(G_OBJECT(e), "pref", OPT_FILTER_TWITTER); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2886 text = purple_prefs_get_string(OPT_FILTER_TWITTER); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2887 gtk_entry_set_text(GTK_ENTRY(e), text); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2888 g_signal_connect(e, "changed", |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2889 G_CALLBACK(text_changed_cb), &e); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2890 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2891 e = GTK_WIDGET(gtk_builder_get_object (builder, "filter_wassr")); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2892 g_object_set_data(G_OBJECT(e), "pref", OPT_FILTER_WASSR); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2893 text = purple_prefs_get_string(OPT_FILTER_WASSR); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2894 gtk_entry_set_text(GTK_ENTRY(e), text); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2895 g_signal_connect(e, "changed", |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2896 G_CALLBACK(text_changed_cb), &e); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2897 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2898 e = GTK_WIDGET(gtk_builder_get_object (builder, "filter_identica")); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2899 g_object_set_data(G_OBJECT(e), "pref", OPT_FILTER_IDENTICA); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2900 text = purple_prefs_get_string(OPT_FILTER_IDENTICA); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2901 gtk_entry_set_text(GTK_ENTRY(e), text); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2902 g_signal_connect(e, "changed", |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2903 G_CALLBACK(text_changed_cb), &e); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2904 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2905 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
2906 |
164 | 2907 /*************/ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2908 /* icon page */ |
164 | 2909 /*************/ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2910 e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_show_icon")); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2911 g_object_set_data(G_OBJECT(e), "pref", OPT_SHOW_ICON); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2912 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2913 purple_prefs_get_bool(OPT_SHOW_ICON)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2914 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2915 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2916 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2917 /* icon size spin */ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2918 e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_icon_size_spin")); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2919 g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_SIZE); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2920 |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2921 spin = GTK_SPIN_BUTTON(e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2922 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2923 value = purple_prefs_get_int(OPT_ICON_SIZE); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2924 twitter_debug("spin value = %d\n", value); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2925 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2926 adjust = gtk_adjustment_new(value, 16, 128, 4, 4, 4); |
128 | 2927 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); |
2928 gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); | |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2929 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2930 if(value == 0) { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2931 value = DEFAULT_ICON_SIZE; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2932 purple_prefs_set_int(OPT_ICON_SIZE, value); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2933 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2934 gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2935 g_signal_connect(e, "value-changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2936 G_CALLBACK(spin_changed_cb), &e); |
128 | 2937 purple_prefs_connect_callback(plugin, OPT_ICON_SIZE, |
2938 icon_size_prefs_cb, NULL); | |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2939 |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2940 /* enable update */ |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2941 e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_enable_update")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2942 g_object_set_data(G_OBJECT(e), "pref", OPT_UPDATE_ICON); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2943 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2944 purple_prefs_get_bool(OPT_UPDATE_ICON)); |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2945 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2946 G_CALLBACK(bool_toggled_cb), &e); |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2947 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2948 /* max count spin */ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2949 e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_max_count_spin")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2950 g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_MAX_COUNT); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2951 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2952 spin = GTK_SPIN_BUTTON(e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2953 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2954 value = purple_prefs_get_int(OPT_ICON_MAX_COUNT); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2955 twitter_debug("spin value = %d\n", value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2956 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2957 adjust = gtk_adjustment_new(value, 2, 10000, 1, 10, 10); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2958 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2959 gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2960 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2961 if(value == 0) { |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2962 value = DEFAULT_ICON_MAX_COUNT; |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2963 purple_prefs_set_int(OPT_ICON_MAX_COUNT, value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2964 } |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2965 gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2966 g_signal_connect(e, "value-changed", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2967 G_CALLBACK(spin_changed_cb), &e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2968 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2969 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
2970 /* max days spin */ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2971 e = GTK_WIDGET(gtk_builder_get_object (builder, "icon_max_days_spin")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2972 g_object_set_data(G_OBJECT(e), "pref", OPT_ICON_MAX_DAYS); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2973 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2974 spin = GTK_SPIN_BUTTON(e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2975 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2976 value = purple_prefs_get_int(OPT_ICON_MAX_DAYS); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2977 twitter_debug("spin value = %d\n", value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2978 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2979 adjust = gtk_adjustment_new(value, 1, 180, 1, 10, 10); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2980 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2981 gtk_widget_set_size_request(GTK_WIDGET(spin), 50, -1); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2982 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2983 if(value == 0) { |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2984 value = DEFAULT_ICON_MAX_DAYS; |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2985 purple_prefs_set_int(OPT_ICON_MAX_DAYS, value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2986 } |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2987 gtk_spin_button_set_value(GTK_SPIN_BUTTON(e), (gdouble)value); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2988 g_signal_connect(e, "value-changed", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2989 G_CALLBACK(spin_changed_cb), &e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2990 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
2991 |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2992 |
164 | 2993 /**************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2994 /* sound page */ |
164 | 2995 /**************/ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2996 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_recip_check")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2997 g_object_set_data(G_OBJECT(e), "pref", OPT_PLAYSOUND_RECIPIENT); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2998 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
2999 purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3000 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3001 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3002 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3003 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_recip_list")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3004 g_object_set_data(G_OBJECT(e), "pref", OPT_USERLIST_RECIPIENT); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3005 text = purple_prefs_get_string(OPT_USERLIST_RECIPIENT); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3006 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3007 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3008 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3009 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
3010 /* recipient combobox */ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3011 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_recip_combo")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3012 gtk_combo_box_set_active(GTK_COMBO_BOX(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3013 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3014 g_object_set_data(G_OBJECT(e), "pref", OPT_SOUNDID_RECIPIENT); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3015 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3016 G_CALLBACK(combo_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3017 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3018 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3019 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3020 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_send_check")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3021 g_object_set_data(G_OBJECT(e), "pref", OPT_PLAYSOUND_SENDER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3022 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3023 purple_prefs_get_bool(OPT_PLAYSOUND_SENDER)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3024 g_signal_connect(e, "toggled", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3025 G_CALLBACK(bool_toggled_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3026 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3027 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_send_list")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3028 g_object_set_data(G_OBJECT(e), "pref", OPT_USERLIST_SENDER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3029 text = purple_prefs_get_string(OPT_USERLIST_SENDER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3030 gtk_entry_set_text(GTK_ENTRY(e), text); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3031 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3032 G_CALLBACK(text_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3033 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
3034 /* sender combobox */ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3035 e = GTK_WIDGET(gtk_builder_get_object (builder, "sound_send_combo")); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3036 gtk_combo_box_set_active(GTK_COMBO_BOX(e), |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3037 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT)); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3038 g_object_set_data(G_OBJECT(e), "pref", OPT_SOUNDID_SENDER); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3039 g_signal_connect(e, "changed", |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3040 G_CALLBACK(combo_changed_cb), &e); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3041 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3042 |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3043 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3044 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
3045 /****************/ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3046 /* utility page */ |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
3047 /****************/ |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3048 e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_counter")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3049 g_object_set_data(G_OBJECT(e), "pref", OPT_COUNTER); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3050 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3051 purple_prefs_get_bool(OPT_COUNTER)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3052 g_signal_connect(e, "toggled", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3053 G_CALLBACK(bool_toggled_cb), &e); |
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
|
3054 purple_prefs_connect_callback(plugin, OPT_COUNTER, |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3055 counter_prefs_cb, NULL); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3056 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3057 e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_pseudo")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3058 g_object_set_data(G_OBJECT(e), "pref", OPT_ESCAPE_PSEUDO); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3059 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3060 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3061 g_signal_connect(e, "toggled", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3062 G_CALLBACK(bool_toggled_cb), &e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3063 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3064 e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_oops")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3065 g_object_set_data(G_OBJECT(e), "pref", OPT_SUPPRESS_OOPS); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3066 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3067 purple_prefs_get_bool(OPT_SUPPRESS_OOPS)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3068 g_signal_connect(e, "toggled", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3069 G_CALLBACK(bool_toggled_cb), &e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3070 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3071 e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_notify")); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3072 g_object_set_data(G_OBJECT(e), "pref", OPT_PREVENT_NOTIFICATION); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3073 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3074 purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION)); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3075 g_signal_connect(e, "toggled", |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3076 G_CALLBACK(bool_toggled_cb), &e); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3077 |
168
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3078 e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_log_output")); |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3079 g_object_set_data(G_OBJECT(e), "pref", OPT_LOG_OUTPUT); |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3080 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3081 purple_prefs_get_bool(OPT_LOG_OUTPUT)); |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3082 g_signal_connect(e, "toggled", |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3083 G_CALLBACK(bool_toggled_cb), &e); |
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3084 |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3085 |
155
0921655b4ae1
added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
154
diff
changeset
|
3086 /* all done */ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3087 gtk_widget_show_all(notebook); |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3088 return notebook; |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3089 } |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3090 |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3091 static PidginPluginUiInfo ui_info = { |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3092 prefs_get_frame, |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3093 0, /* page number - reserved */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3094 NULL, /* reserved 1 */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3095 NULL, /* reserved 2 */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3096 NULL, /* reserved 3 */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3097 NULL /* reserved 4 */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3098 }; |
0 | 3099 |
6 | 3100 static PurplePluginInfo info = { |
3101 PURPLE_PLUGIN_MAGIC, | |
3102 PURPLE_MAJOR_VERSION, | |
3103 PURPLE_MINOR_VERSION, | |
3104 PURPLE_PLUGIN_STANDARD, /**< type */ | |
147
3abee459c81c
removed old prefs stuff.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
146
diff
changeset
|
3105 PIDGIN_PLUGIN_TYPE, /**< ui_req */ |
19
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
3106 0, /**< flags */ |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
3107 NULL, /**< deps */ |
6 | 3108 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
31 | 3109 PLUGIN_ID, /**< id */ |
6 | 3110 "Pidgin-Twitter", /**< name */ |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3111 "0.8.0d1", /**< version */ |
76
63bd9ca28be0
- added nosuke and iratqq to the authors.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
74
diff
changeset
|
3112 "provides useful features for twitter", /** summary */ |
63bd9ca28be0
- added nosuke and iratqq to the authors.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
74
diff
changeset
|
3113 "provides useful features for twitter", /** desc */ |
183 | 3114 "Yoshiki Yazawa, mikanbako, \nKonosuke Watanabe, IWATA Ray, \nmojin, umq, \nthe pidging-twitter team", /**< author */ |
164 | 3115 "http://www.honeyplanet.jp/pidgin-twitter/", /**< homepage */ |
19
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
3116 load_plugin, /**< load */ |
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
3117 unload_plugin, /**< unload */ |
6 | 3118 NULL, /**< destroy */ |
126
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3119 &ui_info, /**< ui_info */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3120 NULL, /**< extra_info */ |
bac987852e66
switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
125
diff
changeset
|
3121 NULL, /**< pref info */ |
6 | 3122 NULL |
0 | 3123 }; |
3124 | |
8 | 3125 static void |
38
625e385036c3
applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
37
diff
changeset
|
3126 init_plugin(PurplePlugin *plugin) |
0 | 3127 { |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
3128 char *dirname = NULL; |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
3129 |
6 | 3130 g_type_init(); |
67
000575bce35d
path should not be hard-coded. windows uses another delimiter.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
66
diff
changeset
|
3131 dirname = g_build_filename(purple_user_dir(), "pidgin-twitter", "icons", NULL); |
64
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
3132 if(dirname) |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
3133 purple_prefs_add_string(OPT_ICON_DIR, dirname); |
da37857f3033
- separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
63
diff
changeset
|
3134 g_free(dirname); |
0 | 3135 |
6 | 3136 /* add plugin preferences */ |
3137 purple_prefs_add_none(OPT_PIDGINTWITTER); | |
9
c6b80f47d4df
added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
8
diff
changeset
|
3138 purple_prefs_add_bool(OPT_TRANSLATE_RECIPIENT, TRUE); |
c6b80f47d4df
added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
8
diff
changeset
|
3139 purple_prefs_add_bool(OPT_TRANSLATE_SENDER, TRUE); |
97
24ad534e438e
linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
96
diff
changeset
|
3140 purple_prefs_add_bool(OPT_TRANSLATE_CHANNEL, TRUE); |
19
0d7cbc984570
escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
16
diff
changeset
|
3141 purple_prefs_add_bool(OPT_ESCAPE_PSEUDO, TRUE); |
9
c6b80f47d4df
added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
8
diff
changeset
|
3142 |
10
4bd8c89b4749
now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
9
diff
changeset
|
3143 purple_prefs_add_bool(OPT_PLAYSOUND_RECIPIENT, TRUE); |
15
6be35fe9d18c
changed default value of playsound for sender. now it is enabled by default.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
14
diff
changeset
|
3144 purple_prefs_add_bool(OPT_PLAYSOUND_SENDER, TRUE); |
11
7ea2a717af42
now sender list and sender sound can be set in independent of recipient settings.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
10
diff
changeset
|
3145 purple_prefs_add_int(OPT_SOUNDID_RECIPIENT, PURPLE_SOUND_POUNCE_DEFAULT); |
7ea2a717af42
now sender list and sender sound can be set in independent of recipient settings.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
10
diff
changeset
|
3146 purple_prefs_add_string(OPT_USERLIST_RECIPIENT, DEFAULT_LIST); |
16
728c068534d1
default soundid for sender has been changed to pounce default since anything other may be disabled by configuration so that it may be confusing.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
15
diff
changeset
|
3147 purple_prefs_add_int(OPT_SOUNDID_SENDER, PURPLE_SOUND_POUNCE_DEFAULT); |
11
7ea2a717af42
now sender list and sender sound can be set in independent of recipient settings.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
10
diff
changeset
|
3148 purple_prefs_add_string(OPT_USERLIST_SENDER, DEFAULT_LIST); |
31 | 3149 |
3150 purple_prefs_add_bool(OPT_COUNTER, TRUE); | |
37
bafe2abf2d3b
- made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
36
diff
changeset
|
3151 purple_prefs_add_bool(OPT_SUPPRESS_OOPS, TRUE); |
99
f207cc8da6cd
quick hack to make show icon configurable
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
98
diff
changeset
|
3152 purple_prefs_add_bool(OPT_PREVENT_NOTIFICATION, FALSE); |
59
3f9148c1dc60
added that to prevent notifications of incoming messages from twitter.com.
mikanbako <maoutwo@gmail.com>
parents:
56
diff
changeset
|
3153 |
72
af4f31bce461
Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents:
71
diff
changeset
|
3154 purple_prefs_add_bool(OPT_API_BASE_POST, FALSE); |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3155 purple_prefs_add_int(OPT_API_BASE_GET_INTERVAL, TWITTER_DEFAULT_INTERVAL); |
110
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
3156 purple_prefs_add_string(OPT_SCREEN_NAME_TWITTER, EMPTY); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
3157 purple_prefs_add_string(OPT_PASSWORD_TWITTER, EMPTY); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
3158 purple_prefs_add_string(OPT_SCREEN_NAME_WASSR, EMPTY); |
8b98a26f44ce
made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
109
diff
changeset
|
3159 purple_prefs_add_string(OPT_SCREEN_NAME_IDENTICA, EMPTY); |
153
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3160 |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3161 purple_prefs_add_bool(OPT_SHOW_ICON, TRUE); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3162 purple_prefs_add_int(OPT_ICON_SIZE, DEFAULT_ICON_SIZE); |
07cedffb1c63
implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
152
diff
changeset
|
3163 purple_prefs_add_bool(OPT_UPDATE_ICON, TRUE); |
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:
151
diff
changeset
|
3164 purple_prefs_add_int(OPT_ICON_MAX_COUNT, DEFAULT_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:
151
diff
changeset
|
3165 purple_prefs_add_int(OPT_ICON_MAX_DAYS, DEFAULT_ICON_MAX_DAYS); |
168
56e3873e58a8
made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
167
diff
changeset
|
3166 purple_prefs_add_bool(OPT_LOG_OUTPUT, FALSE); |
211
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3167 |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3168 purple_prefs_add_bool(OPT_FILTER, TRUE); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3169 purple_prefs_add_string(OPT_FILTER_TWITTER, DEFAULT_LIST); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3170 purple_prefs_add_string(OPT_FILTER_WASSR, DEFAULT_LIST); |
e13103257b33
implemented filtering functionality.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
210
diff
changeset
|
3171 purple_prefs_add_string(OPT_FILTER_IDENTICA, DEFAULT_LIST); |
0 | 3172 } |
3173 | |
3174 PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info) |