annotate pidgin-twitter.c @ 207:0eac0abcc0aa

improved parrot blocker. the string to be pushed should not be escaped.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 22 Aug 2008 19:19:52 +0900
parents bc1448e72b1b
children 5d1b8528e144
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
1 /*
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2 * Pidgin-Twitter plugin.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
5 * modify it under the terms of the GNU General Public License as
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
6 * published by the Free Software Foundation; either version 2 of the
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
7 * License, or (at your option) any later version.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
8 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful, but
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
12 * General Public License for more details.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
13 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
15 * along with this program; if not, write to the Free Software
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
17 * 02111-1307, USA.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
18 */
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
19 #define PURPLE_PLUGINS 1
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
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
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
23
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
24 /***********/
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
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;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
37
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
38 static struct _source {
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
39 guint id;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
40 PurpleConversation *conv;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
41 } source;
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
42
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
43
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
44 /*************/
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
45 /* functions */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
46 /*************/
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
47
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
48 /* 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
49 static gboolean
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
50 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
51 {
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
52 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
53 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
54 return FALSE;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
55 }
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
56
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
57 return TRUE;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
58 }
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
59
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
60
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
61 /**********************/
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
62 /* our implementation */
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
63 /**********************/
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
64
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
65 static gchar *
170
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
66 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
67 {
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
68 int nn = n;
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
69
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
70 g_return_val_if_fail(s != NULL, NULL);
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
71
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
72 while(nn+1) {
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
73 if((int)*(s+nn) == c)
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
74 return (gchar *)(s+nn);
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
75 nn--;
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 return NULL;
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
78 }
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
79
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
80 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
81 "<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
82 "</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
83 "<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
84 "</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
85 "<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
86 "</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
87 "<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
88 "</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
89 "<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
90 "</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
91 "<body>",
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
92 "<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
93 "</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
94 "<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
95 "</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
96 "<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
97 "</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
98 "<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
99 "<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
100 "<img ",
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
101 "<html>",
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
102 "<html ",
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
103 "</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
104 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
105 };
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
106
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
107 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
108 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
109 {
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 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
111 gchar *begin, *end; /* begin:< end:> */
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
112 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
113 /* 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
114 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
115 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
116 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
117
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
118 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
119
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 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
121 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
122 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
123
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 /* unescape &x; */
137
97f11d057071 fixed "off by one" bug.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 136
diff changeset
125 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
126 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
127 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
128 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
129 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
130 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
131 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
132 *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
133 }
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 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 }
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
136 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
137 *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
138 }
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
139 }
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 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
141 *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
142 }
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
143 } /* 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
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 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
146
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 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
148 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
149 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
150
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 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
152 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
153 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
154
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 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
156 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
157 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
158 }
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
170
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
160 end = strchr(startp, '>');
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
161 if(end) {
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
162 begin = twitter_memrchr(startp, '<', end - startp);
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
163 if(begin < startp)
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
164 begin = NULL;
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
165
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
166 if(!begin) { /* '>' found but no corresponding '<' */
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
167 tmp = g_strndup(startp, end - startp + 1); /* concat until '>' */
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
168 tmp2 = g_strconcat(str, tmp, NULL);
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
169 g_free(str);
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
170 str = tmp2;
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
171 startp = end + 1;
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
172 goto loop;
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
173 }
170
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
174 }
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
175 else { /* neither '>' nor '<' were found */
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
176 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
177 g_free(str);
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
178 str = tmp;
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
179 g_free(html);
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
180 return str;
170
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
181 }
c3f205ec4619 work in progress asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 168
diff changeset
182
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
183 /* 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
184 /* 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
185 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
186 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
187 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
188 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
189 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
190
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 /* 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
192 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
193 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
194 /* 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
195 /* if tag is <a href=, extract address. */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
196 #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
197 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
198 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
199
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 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
201 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
202 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
203 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
204 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
205 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
206 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
207 }
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 && 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
209 *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
210 /* 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
211 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
212 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
213 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
214 }
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 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
216 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
217 } /* <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
218 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
219 /* 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
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 }
171
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
223 #else
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
224 /* anything else: discard whole <>. */
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
225 startp = end + 1;
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
226 goto loop;
dfe644871483 revised asymmetric bracket code.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 170
diff changeset
227 #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
228 } /* 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
229 }
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
230
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
231 /* 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 }
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
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
241 /* string utilities */
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
242 static void
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
243 escape(gchar **str)
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
244 {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
245 GMatchInfo *match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
246 gchar *newstr = NULL, *match = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
247 gboolean flag = FALSE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
248
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
249 /* search genuine command */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
250 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
251 while(g_match_info_matches(match_info)) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
252 match = g_match_info_fetch(match_info, 1);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
253 twitter_debug("command = %s\n", match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
254 g_free(match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
255 g_match_info_next(match_info, NULL);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
256 flag = TRUE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
257 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
258 g_match_info_free(match_info);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
259 match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
260
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
261 if(flag)
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
262 return;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
263
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
264 /* if not found, check pseudo command */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
265 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
266 while(g_match_info_matches(match_info)) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
267 match = g_match_info_fetch(match_info, 1);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
268 twitter_debug("pseudo = %s\n", match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
269 g_free(match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
270 g_match_info_next(match_info, NULL);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
271 flag = TRUE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
272 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
273 g_match_info_free(match_info);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
274 match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
275
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
276 /* if there is pseudo one, escape it */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
277 if(flag) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
278 /* put ". " to the beginning of buffer */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
279 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
280 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
281 g_free(*str);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
282 *str = newstr;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
283 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
284 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
285
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
286 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
287 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
288 {
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
289 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
290
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 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
292 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
293 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
294 *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
295 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
296 }
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
297 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
298 *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
299 }
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 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
301 }
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
302
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
303
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
304 /**************************/
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
305 /* API base get functions */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
306 /**************************/
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
307 /* xml parser */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
308 static void
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
309 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
310 {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
311 xmlNode *nptr;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
312
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
313 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
314 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
315 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
316 gchar *str = (gchar *)xmlNodeGetContent(nptr);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
317 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
318 xmlFree(str);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
319 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
320 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
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->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
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 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
326 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
327 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
328
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
329 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
330 "Sun",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
331 "Mon",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
332 "Tue",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
333 "Wed",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
334 "Thu",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
335 "Fri",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
336 "Sat",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
337 NULL
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
338 };
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
339
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
340 static gchar *month_name[] = {
125
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
341 "Jan",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
342 "Feb",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
343 "Mar",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
344 "Apr",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
345 "May",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
346 "Jun",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
347 "Jul",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
348 "Aug",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
349 "Sep",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
350 "Oct",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
351 "Nov",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
352 "Dec",
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
353 NULL
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
354 };
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
355
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
356 static void
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
357 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
358 {
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
359 char day_of_week[4];
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
360 char month[4];
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
361 char time_offset[6];
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
362 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
363 int i;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
364
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
365 if(str == NULL || res == NULL)
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
366 return;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
367
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
368 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
369 day_of_week, month, &day,
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
370 &hour, &minute, &second,
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
371 time_offset, &year);
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 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
374 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
375 res->tm_wday = i;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
376 }
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<12; i++) {
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
379 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
380 res->tm_mon = 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
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
384 res->tm_mday = day;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
385 res->tm_hour = hour;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
386 res->tm_min = minute;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
387 res->tm_sec = second;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
388 res->tm_year = year - 1900;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
389 #ifndef _WIN32
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
390 int offset = atoi(time_offset);
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
391 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
392 #endif
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
393
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
394 }
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
395
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
396 static void
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
397 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
398 {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
399 xmlNode *nptr;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
400
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
401 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
402 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
403 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
404 gchar *str = (gchar *)xmlNodeGetContent(nptr);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
405 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
406
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
407 /* read time stamp */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
408 struct tm res;
121
8b58990f5ee9 ensure struct tm cleared before use.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 120
diff changeset
409 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
410 read_timestamp(str, &res);
120
b47bc7b89de6 a better way to keep time sane.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 119
diff changeset
411 tzset();
125
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
412 #ifdef _WIN32
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
413 st->time = mktime(&res) - timezone;
f0305c387d32 replaced troublesome strptime() with our own function read_timestamp().
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 124
diff changeset
414 #else
123
76012df4e194 time offset in BSD extension has opposite sign
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 122
diff changeset
415 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
416 #endif
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
417
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
418 xmlFree(str);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
419 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
420 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
421 gchar *str = (gchar *)xmlNodeGetContent(nptr);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
422 st->id = atoi(str);
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 *)"text")) {
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->text = g_strdup(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 *)"user")) {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
431 parse_user(nptr, st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
432 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
433 }
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 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
436
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
437 static void
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
438 free_status(status_t *st)
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 g_free(st->created_at);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
441 g_free(st->text);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
442 g_free(st->screen_name);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
443 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
444 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
445
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
446 static gboolean
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 171
diff changeset
447 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
448 {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
449 GList *pp;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
450 gboolean rv = FALSE;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
451
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
452 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
453 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
454 if(posted->id == status->id) {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
455 rv = TRUE;
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 171
diff changeset
456 }
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 171
diff changeset
457
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 171
diff changeset
458 if(posted->id <= lastid) {
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
459 free_status(posted);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
460 g_free(pp->data);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
461 pp->data = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
462 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
463 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
464
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
465 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
466
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
467 return rv;
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 static void
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
471 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
472 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
473 const gchar *error_message)
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 {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
476 xmlDocPtr doc;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
477 xmlNode *nptr, *nptr2;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
478 static guint lastid = 0;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
479 PurpleConversation *conv;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
480 GList *stp;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
481 const gchar *start;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
482
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
483 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
484
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
485 conv = (PurpleConversation *)user_data;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
486 if(!conv)
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
487 return;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
488
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
489 /* 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
490 start = strstr(url_text, "<?xml");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
491
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
492 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
493 if(doc == NULL)
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
494 return;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
495
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
496 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
497 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
498 !xmlStrcmp(nptr->name, (xmlChar *)"statuses")) {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
499
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
500 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
501 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
502 !xmlStrcmp(nptr2->name, (xmlChar *)"status")) {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
503 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
504 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
505 parse_status(nptr2, st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
506 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
507 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
508 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
509 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
510
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
511 xmlFreeDoc(doc);
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
512 xmlCleanupParser();
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
513
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
514 /* process statuseslist */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
515 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
516 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
517
178
7fb35f47a477 keep posted statuses in the postedlist until they certainly become useless.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 171
diff changeset
518 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
519 gchar *msg = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
520
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
521 msg = g_strdup_printf("%s: %s", st->screen_name, st->text);
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
522 purple_conv_im_write(conv->u.im,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
523 "twitter@twitter.com",
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
524 msg,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
525 PURPLE_MESSAGE_RECV,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
526 st->time);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
527 lastid = st->id;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
528
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
529 g_free(msg);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
530 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
531
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
532 free_status(st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
533 g_free(stp->data);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
534 stp->data = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
535 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
536
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
537 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
538 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
539
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
540 /* 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
541 static gboolean
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
542 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
543 {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
544 /* fetch friends time line */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
545 char *request, *header;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
546 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
547
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
548 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
549
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
550 /* 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
551 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
552 return TRUE;
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
553
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
554 const char *screen_name =
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
555 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
556 const char *password =
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
557 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
558
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
559 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
560 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
561 return TRUE;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
562 }
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 /* auth */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
565 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
566 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
567 strlen(basic_auth));
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
568 g_free(basic_auth);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
569
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
570 /* header */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
571 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
572 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
573
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
574 /* invoke fetch */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
575 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
576 NULL, TRUE, request, TRUE,
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
577 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
578
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
579 g_free(header);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
580 g_free(basic_auth_encoded);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
581 g_free(request);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
582
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
583 return TRUE;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
584 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
585
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 /* API base post functions */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
588 /***************************/
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
589 static void
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
590 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
591 const gchar *url_text, size_t len,
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
592 const gchar *error_message)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
593 {
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
594 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
595 gchar *msg = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
596 char *p1 = NULL, *p2 = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
597 int error = 1;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
598 PurpleConversation *conv;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
599
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
600 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
601 "twitter@twitter.com",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
602 tm->account);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
603 if (!conv) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
604 twitter_debug("failed to get conversation\n");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
605 goto fin;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
606 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
607
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
608 if (error_message) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
609 /* connection failed or something */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
610 msg = g_strdup_printf("Local error: %s", error_message);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
611 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
612 int code = -1;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
613
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
614 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
615 || 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
616
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
617 p1 = strchr(url_text, ' ');
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
618
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
619 if (p1) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
620 p1++;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
621 p2 = strchr(p1, ' ');
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
622 if (p2)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
623 p2++;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
624 else
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
625 p2 = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
626 }
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
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
629 code = atoi(p1);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
630
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
631 if (code == 200) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
632 error = 0;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
633 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
634 switch (code) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
635 case 400:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
636 msg = g_strdup("Invalid request. Too many updates?");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
637 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
638 case 401:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
639 msg = g_strdup("Authorization failed.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
640 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
641 case 403:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
642 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
643 "for some reason.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
644 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
645 case 404:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
646 msg = g_strdup("Requested URI is not found.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
647 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
648 case 500:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
649 msg = g_strdup("Server error.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
650 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
651 case 502:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
652 msg = g_strdup("Twitter is down or under maintenance.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
653 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
654 case 503:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
655 msg = g_strdup("Twitter is extremely crowded. "
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
656 "Try again later.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
657 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
658 default:
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
659 msg = g_strdup_printf("Unknown error. (%d %s)",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
660 code, p2 ? p2 : "");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
661 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
662 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
663 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
664 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
665
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
666 if (!error) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
667 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
668 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
669 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
670
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
671 /* 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
672 gchar *start = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
673 xmlDocPtr doc;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
674 xmlNode *nptr;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
675
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
676 start = strstr(url_text, "<?xml");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
677
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
678 if(!start)
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
679 goto fin;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
680
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
681 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
682 if(doc == NULL)
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
683 return;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
684
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
685 /* enqueue posted message to postedlist */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
686 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
687 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
688 !xmlStrcmp(nptr->name, (xmlChar *)"status")) {
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
689 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
690 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
691 parse_status(nptr, st);
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
692 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
693 }
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
694
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
695 xmlFreeDoc(doc);
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
696 xmlCleanupParser();
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
697
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
698 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
699 gchar *m;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
700 m = g_strdup_printf("%s<BR>%s",
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
701 msg, tm->status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
702 /* FIXME: too strong. it should be more smart */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
703 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
704 purple_account_get_username(tm->account),
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
705 m, PURPLE_MESSAGE_ERROR, time(NULL));
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
706 g_free(m);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
707 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
708
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
709 fin:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
710 if (msg)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
711 g_free(msg);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
712
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
713 if (tm) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
714 if (tm->status)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
715 g_free(tm->status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
716 g_free(tm);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
717 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
718
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
719 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
720
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
721 static void
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
722 post_status_with_api(PurpleAccount *account, char **buffer)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
723 {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
724 char *request, *status, *header;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
725 const char *url_encoded = purple_url_encode(*buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
726 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
727
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
728 twitter_message_t *tm;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
729
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
730 const char *screen_name =
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
731 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
732 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
733
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
734 twitter_debug("tm.account: %s\n",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
735 purple_account_get_username(account));
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 if (!screen_name || !password || !screen_name[0] || !password[0]) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
738 twitter_debug("screen_name or password is empty\n");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
739 return;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
740 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
741
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
742 tm = g_new(twitter_message_t, 1);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
743 tm->account = account;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
744 tm->status = g_strdup(*buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
745 tm->time = time(NULL);
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 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
748 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
749 strlen(basic_auth));
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
750 g_free(basic_auth);
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 status = g_strdup_printf(TWITTER_STATUS_FORMAT, url_encoded);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
753 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
754 (int)strlen(status));
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
755
162
1237fc885a92 revised http request. "broken_firewall" no longre needed?
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 161
diff changeset
756 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
757
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
758 purple_util_fetch_url_request(TWITTER_BASE_URL, FALSE,
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
759 NULL, TRUE, request, TRUE,
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
760 post_status_with_api_cb, tm);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
761
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
762 g_free(header);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
763 g_free(basic_auth_encoded);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
764 g_free(status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
765 g_free(request);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
766
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
767 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
768
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
769 /***********************/
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
770 /* intrinsic functions */
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
771 /***********************/
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
772 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
773 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
774 void *data)
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
775 {
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
776 int utflen, bytes;
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
777 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
778 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
779
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
780 twitter_ac = is_twitter_account(account, recipient);
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
781 wassr_ac = is_wassr_account(account, recipient);
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
782 identica_ac = is_identica_account(account, recipient);
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
783
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
784 /* 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
785 if(twitter_ac || wassr_ac || identica_ac) {
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
786 gchar *plain = strip_html_markup(*buffer);
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
787
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
788 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
789 /* store sending message to address parrot problem */
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
790 g_strlcpy(wassr_post, plain, WASSR_POST_LEN);
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
791 twitter_debug("wassr parrot pushed:%s\n", *buffer);
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
792 }
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
793 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
794 /* store sending message to address parrot problem */
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
795 g_strlcpy(identica_post, plain, IDENTICA_POST_LEN);
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
796 twitter_debug("identica parrot pushed:%s\n", *buffer);
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
797 }
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
798
0eac0abcc0aa improved parrot blocker. the string to be pushed should not be escaped.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 205
diff changeset
799 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
800 *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
801 g_free(plain);
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
802 }
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
803
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
804 /* 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
805 if(!twitter_ac)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
806 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
807
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
808 /* escape pseudo command */
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
809 if(twitter_ac &&
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
810 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
811 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
812 }
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
813
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
814 /* update status with Twitter API instead of IM protocol */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
815 if (purple_prefs_get_bool(OPT_API_BASE_POST)) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
816 if (buffer && *buffer) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
817 post_status_with_api(account, buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
818 (*buffer)[0] = '\0';
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
819 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
820 return FALSE;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
821 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
822
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
823 /* 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
824 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
825 bytes = strlen(*buffer);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
826 twitter_debug("utflen = %d bytes = %d\n", utflen, bytes);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
827 if(bytes > 140 && utflen <= 140)
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
828 suppress_oops = TRUE;
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
829
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
830 return FALSE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
831 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
832
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
833 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
834 eval(const GMatchInfo *match_info, GString *result, gpointer user_data)
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
835 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
836 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
837 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
838 gint service = data->service;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
839 gchar sub[128];
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
840
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
841 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
842
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
843 if(which == RECIPIENT) {
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
844 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
845 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
846 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
847 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
848 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
849 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
850 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
851 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
852 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
853 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
854 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
855 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
856 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
857 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
858 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
859 }
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
860 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
861 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
862 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
863 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
864 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
865 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
866 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
867
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
868 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
869 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
870 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
871 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
872 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
873 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
874 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
875 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
876 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
877 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
878 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
879 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
880 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
881 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
882
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
883 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
884
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
885 g_free(match1);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
886 g_free(match2);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
887 }
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
888 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
889 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
890 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
891 const gchar *format = CHANNEL_FORMAT_WASSR;
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
892
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
893 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
894
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
895 g_free(match1);
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
896 g_free(match2);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
897 }
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
898 else if(which == TAG_IDENTICA && service == identica_service) {
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
899 gchar *match = g_match_info_fetch(match_info, 1);
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
900 const gchar *format = TAG_FORMAT_IDENTICA;
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
901 g_snprintf(sub, 128, format, match, match);
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
902 g_free(match);
202
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
903 }
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
904
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
905 g_string_append(result, sub);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
906 twitter_debug("sub = %s\n", sub);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
907
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
908 return FALSE;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
909 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
910
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
911 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
912 translate(gchar **str, gint which, gint service)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
913 {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
914 gchar *newstr;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
915 eval_data *data = g_new0(eval_data, 1);
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
916 gint regp_id;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
917
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
918 data->which = which;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
919 data->service = service;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
920
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
921 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
922 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
923 *str, /* subject string */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
924 -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
925 0, /* start position */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
926 0, /* match options */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
927 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
928 data, /* user data */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
929 NULL); /* error handler */
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
930
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
931 g_free(data); data = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
932
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
933 twitter_debug("which = %d *str = %s newstr = %s\n", which, *str, newstr);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
934
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
935 g_free(*str);
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
936 *str = newstr;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
937 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
938
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
939 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
940 playsound(gchar **str, gint which)
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
941 {
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
942 GMatchInfo *match_info;
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
943 const gchar *list;
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
944 gchar **candidates = NULL, **candidate = NULL;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
945
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
946 list = purple_prefs_get_string(which ? OPT_USERLIST_SENDER :
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
947 OPT_USERLIST_RECIPIENT);
5
6ac1867d7e8e string list should be initialized with NULL
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 2
diff changeset
948 g_return_if_fail(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
949 if(!strcmp(list, DEFAULT_LIST))
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
950 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
951
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
952 candidates = g_strsplit_set(list, " ,:;", 0);
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
953 g_return_if_fail(candidates != NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
954
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
955 g_regex_match(regp[which], *str, 0, &match_info);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
956 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
957 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
958 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
959 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
960 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
961 user = g_match_info_fetch(match_info, 2);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
962 twitter_debug("user = %s\n", user);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
963
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
964 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
965 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
966 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
967 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
968 if(!strcmp(user, *candidate)) {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
969 twitter_debug("match. play sound\n");
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
970 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
971 (which ? OPT_SOUNDID_SENDER :
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
972 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
973 break;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
974 }
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
975 }
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
976 g_free(user);
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
977 g_match_info_next(match_info, NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
978 }
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
979 g_strfreev(candidates);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
980 g_match_info_free(match_info);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
981 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
982
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
983 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
984 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
985 PurpleConversation *conv, int flags, void *data)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
986 {
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
987 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
988
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
989 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
990
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
991 /* 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
992 if(service == unknown_service)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
993 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
994
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
995 /* Add screen_name if the current message is posted by owner */
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
996 if (flags & PURPLE_MESSAGE_SEND) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
997 gchar *m = NULL;
145
f220da0c089e screen_name should be initialized.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 142
diff changeset
998 const char *screen_name = NULL;
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
999
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1000 switch(service) {
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1001 case twitter_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1002 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
1003 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1004 case wassr_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1005 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
1006 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1007 case identica_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1008 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
1009 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1010 }
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1011
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1012 if (screen_name) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1013 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
1014 g_free(*buffer);
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1015 *buffer = m;
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1016 }
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1017 }
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1018
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
1019 /* 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
1020 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
1021
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1022 /* playsound */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1023 if(purple_prefs_get_bool(OPT_PLAYSOUND_SENDER)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1024 playsound(buffer, SENDER);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1025 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1026 if(purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1027 playsound(buffer, RECIPIENT);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1028 }
41
0a81ccfa1941 strip excessive markup where it is not needed. (work in progress)
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 40
diff changeset
1029
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1030 /* translate */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1031 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
1032 translate(buffer, SENDER, service);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1033 }
202
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
1034 if(purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)) {
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
1035 translate(buffer, RECIPIENT, service);
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
1036 }
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1037 if(service == wassr_service &&
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1038 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) {
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
1039 translate(buffer, CHANNEL_WASSR, service);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1040 }
202
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
1041 if(service == identica_service &&
67d8eaba446d preliminary identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 201
diff changeset
1042 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) {
203
6c6fe6375ce4 revised identi.ca tag support.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 202
diff changeset
1043 translate(buffer, TAG_IDENTICA, service);
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
1044 }
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1045
46
e4f8e5708afd due to application of strip_markup() in writing_im_cb(), translation for sender had not worked. changed P_SENDER so that it matches striped representation of sender.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 45
diff changeset
1046 /* escape pseudo command (to show same result to sending message) */
146
62b90f3b0b8a replaced a occurrence of is_twitter_conv()
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 145
diff changeset
1047 if(service == twitter_service &&
62b90f3b0b8a replaced a occurrence of is_twitter_conv()
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 145
diff changeset
1048 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1049 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1050 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1051
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1052 return FALSE;
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1053 }
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1054
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1055 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1056 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1057 gchar *new_text, gint new_text_length, gpointer user_data)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1058 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1059 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1060 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1061
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1062 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1063 gchar *markup = NULL;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1064 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
1065 guint count;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1066 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1067 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1068 guint bytes = 0;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1069
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1070 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1071
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1072 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1073 case twitter_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1074 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
1075 (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
1076 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
1077 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
1078 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
1079 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
1080 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
1081 (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
1082 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
1083 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
1084 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1085 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1086 gtk_text_buffer_get_start_iter(textbuffer, &head);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1087 gtk_text_buffer_get_end_iter(textbuffer, &tail);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1088
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1089 text = gtk_text_buffer_get_text(textbuffer, &head, &tail, TRUE);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1090 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1091 bytes = strlen(text) + new_text_length;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1092 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1093 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>",
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1094 bytes <= 140 ? "black" : "red", bytes);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1095 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1096 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1097 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
1098 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1099 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1100
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1101 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1102 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
1103 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1104 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1105
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1106 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1107 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1108
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1109 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1110 delete_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *start_pos,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1111 GtkTextIter *end_pos, gpointer user_data)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1112 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1113 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1114 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1115 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1116 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
1117 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
1118 guint count = 0;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1119 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1120 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1121 guint bytes = 0;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1122
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1123 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1124
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1125 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1126 case twitter_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1127 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
1128 (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
1129 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
1130 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
1131 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
1132 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
1133 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
1134 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
1135 (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
1136 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
1137 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
1138 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
1139 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1140 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1141 gtk_text_buffer_get_start_iter(textbuffer, &head);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1142 gtk_text_buffer_get_end_iter(textbuffer, &tail);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1143
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1144 text = gtk_text_buffer_get_text(textbuffer,
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1145 &head, &tail, TRUE);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1146 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1147 bytes = strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1148 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1149
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1150 text = gtk_text_buffer_get_text(textbuffer,
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1151 start_pos, end_pos, TRUE);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1152 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1153 bytes -= strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1154 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1155
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1156 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>",
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1157 bytes <= 140 ? "black" : "red", bytes);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1158 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1159 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1160 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
1161 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1162 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1163
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1164 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1165 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
1166 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1167 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1168
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1169 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1170 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1171
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1172 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1173 detach_from_window(void)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1174 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1175 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1176
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1177 /* 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
1178 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
1179 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1180 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1181 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
1182 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
1183 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1184 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
1185 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
1186 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1187 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
1188 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1189 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1190 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
1191 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1192 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1193 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1194 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1195
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1196 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1197 detach_from_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1198 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1199 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1200 GtkWidget *box, *counter = NULL, *sep = NULL;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1201
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1202 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
1203 (GFunc) insert_text_cb, conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1204 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
1205 (GFunc) delete_text_cb, conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1206
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1207 box = gtkconv->toolbar;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1208
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1209 /* remove counter */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1210 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
1211 if(counter) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1212 gtk_container_remove(GTK_CONTAINER(box), counter);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1213 g_object_unref(counter);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1214 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1215 }
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1216
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1217 /* remove separator */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1218 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
1219 if(sep) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1220 gtk_container_remove(GTK_CONTAINER(box), sep);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1221 g_object_unref(sep);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1222 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1223 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1224
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1225 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1226 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1227
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1228 static void
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1229 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
1230 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1231 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
1232 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
1233 GList *mark_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1234 GList *current;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1235
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1236 if(!data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1237 return;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1238
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1239 if(data->request_list)
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1240 mark_list = data->request_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1241
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1242 /* 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
1243 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
1244 current = g_list_next(current)) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1245 GtkTextMark *current_mark = current->data;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1246 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
1247 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1248
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1249 if(!current_text_buffer)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1250 continue;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1251
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1252 if(text_buffer) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1253 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
1254 /* 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
1255 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
1256 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1257 current->data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1258 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1259 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1260 else {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1261 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
1262 current->data = NULL;
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 } /* end of for */
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1265
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1266 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
1267 data->request_list = mark_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1268 }
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 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1271 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
1272 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
1273 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
1274
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1275 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
1276 (GHFunc)remove_marks_func,
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1277 (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
1278 }
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
1279
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
1280 static void
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1281 attach_to_window(void)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1282 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1283 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1284
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1285 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1286
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1287 /* 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
1288 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
1289 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1290 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1291 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
1292 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
1293 /* 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
1294 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1295 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
1296 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
1297 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1298 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
1299 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1300 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1301 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
1302 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1303 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1304 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1305 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1306
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1307 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1308 attach_to_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1309 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1310 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
1311 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
1312 GtkIMHtml *imhtml;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1313
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1314 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
1315 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
1316
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1317 /* Disable widgets that decorate or add link to composing text
53
872f418ba45d - revised README
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 52
diff changeset
1318 * 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
1319 * 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
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 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
1322 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
1323 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
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), "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
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 }
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
1329
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
1330 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
1331 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
1332 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
1333 ~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
1334
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 /* 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
1336 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
1337 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
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 /* get counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1340 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
1341 g_return_if_fail(counter == NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1342
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1343 /* make counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1344 counter = gtk_label_new(NULL);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1345 gtk_widget_set_name(counter, "counter_label");
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1346 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
1347 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
1348 gtk_widget_show_all(counter);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1349 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", counter);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1350
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1351 /* make separator object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1352 sep = gtk_vseparator_new();
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1353 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
1354 gtk_widget_show_all(sep);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1355 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", sep);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1356
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
1357 /* connect to signals */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1358 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
1359 G_CALLBACK(insert_text_cb), conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1360 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
1361 G_CALLBACK(delete_text_cb), conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1362
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1363 /* redraw window */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1364 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1365 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1366
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1367 static gboolean
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1368 is_twitter_account(PurpleAccount *account, const char *name)
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1369 {
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1370 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
1371
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
1372 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
1373 g_strstr_len(proto, 11, "prpl-jabber")) {
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1374 return TRUE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1375 }
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1376
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1377 return FALSE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1378 }
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 static gboolean
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1381 is_twitter_conv(PurpleConversation *conv)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1382 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1383 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
1384
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1385 const char *name = purple_conversation_get_name(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1386 PurpleAccount *account = purple_conversation_get_account(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1387
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1388 return is_twitter_account(account, name);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1389 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1390
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1391 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1392 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
1393 {
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1394 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
1395
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
1396 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
1397 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
1398 return TRUE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1399 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1400
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1401 return FALSE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1402 }
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 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1405 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
1406 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1407 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
1408
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1409 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
1410 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
1411
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1412 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
1413 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1414
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
1415 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
1416 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
1417 {
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1418 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
1419
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 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
1421 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
1422 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
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
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 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
1426 }
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 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
1429 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
1430 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1431 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
1432
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
1433 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
1434 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
1435
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1436 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
1437 }
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
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1439 static gint
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1440 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
1441 {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1442 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
1443
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1444 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
1445
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1446 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
1447 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
1448 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
1449 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
1450 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
1451 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
1452
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1453 return service;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1454 }
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1455
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1456 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1457 conv_created_cb(PurpleConversation *conv, gpointer null)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1458 {
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1459 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
1460
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1461 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1462
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1463 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1464
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1465 gint service = get_service_type(conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1466 /* 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
1467 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1468 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
1469 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
1470 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
1471 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
1472 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
1473 source.conv = conv;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1474 attach_to_conv(conv, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1475 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1476 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
1477 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1478 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
1479 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1480 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1481 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
1482 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1483 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1484 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1485
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
1486 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
1487 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
1488 {
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
1489 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
1490
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1491 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1492
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
1493 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
1494
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1495 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
1496 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
1497
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
1498 /* 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
1499 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1500 case twitter_service:
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1501 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
1502 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
1503 source.id = 0;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1504 source.conv = NULL;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1505 }
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1506 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
1507 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1508 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1509 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
1510 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
1511 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1512 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
1513 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1514 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1515 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
1516 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1517 }
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
1518
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1519 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
1520 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
1521 }
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
1522
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
1523 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
1524 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
1525 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
1526 {
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
1527 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
1528 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
1529
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1530 gint service = get_service_type(conv);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1531
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1532 if(service != unknown_service) {
100
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1533 /* suppress notification of incoming messages. */
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1534 if(purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION))
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1535 *flags |= PURPLE_MESSAGE_SYSTEM;
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1536 }
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1537
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1538 /* quick hack to suppress annoying completion message from wassr */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1539 if(service == wassr_service) {
81
f1163f2e4920 add suppression of annoying completion message for posts to the wasser-channel.
"mojin <truffechampagne@gmail.com>"
parents: 80
diff changeset
1540 if(strstr(*buffer, "<body>投稿完了:") ||
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1541 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
1542 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
1543 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
1544 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
1545 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1546 /* fix for parrot problem during post to a channel */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1547 else if(wassr_post &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1548 strlen(wassr_post) &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1549 strstr(*buffer, wassr_post)) {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1550 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
1551 g_free(*sender); *sender = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1552 g_free(*buffer); *buffer = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1553 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1554 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1555
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1556 if(service == identica_service) {
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
1557 gchar *stripped = strip_html_markup(*buffer);
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1558 if(identica_post &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1559 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
1560 strstr(stripped, identica_post)) {
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1561 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
1562 *buffer, identica_post);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1563 g_free(*sender); *sender = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1564 g_free(*buffer); *buffer = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1565 }
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
1566 g_free(stripped);
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1567 }
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1568
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1569 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
1570 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
1571 }
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
1572
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1573 /* 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
1574 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
1575 g_free(*sender); *sender = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1576 g_free(*buffer); *buffer = NULL;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1577 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1578
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1579 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
1580 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
1581
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
1582 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
1583 twitter_debug("clearing sender and buffer\n");
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1584 g_free(*sender); *sender = NULL;
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1585 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
1586 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
1587 }
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
1588 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
1589 }
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
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
1591 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1592 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
1593 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1594 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
1595
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1596 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1597 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1598
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
1599 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
1600 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
1601 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
1602 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
1603 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
1604 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
1605
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1606 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
1607
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
1608 /* 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
1609 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
1610 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
1611 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
1612 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
1613
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
1614 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
1615 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
1616 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
1617 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
1618
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1619 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
1620
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1621 if(service != unknown_service) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1622 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
1623 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
1624 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
1625
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
1626 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
1627 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
1628 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
1629 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
1630 }
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
1631 }
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
1632 }
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
1633 }
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
1634 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
1635 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
1636 }
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
1637
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
1638 /* 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
1639 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
1640 &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
1641
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
1642 /* 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
1643 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1644 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1645 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
1646 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1647 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1648 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
1649 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
1650 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1651 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
1652 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1653 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1654 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
1655 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1656
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
1657 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
1658 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
1659
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1660
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
1661 /* 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
1662 * 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
1663 * 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
1664
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1665 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
1666 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
1667 }
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
1668
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1669 /* insert icon actually */
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1670 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1671 gtk_text_buffer_insert_pixbuf(target_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1672 &insertion_point,
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1673 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
1674 data->use_count++;
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1675 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1676 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
1677 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
1678 }
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
1679
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1680 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1681 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
1682 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1683 icon_data *data = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1684 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
1685 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
1686
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1687 twitter_debug("called\n");
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1688
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1689 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1690 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1691 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
1692 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1693 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1694 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
1695 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
1696 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1697 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
1698 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1699 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1700 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
1701 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1702 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1703
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
1704 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
1705 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
1706
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1707 if(!data)
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1708 return;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1709
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1710 mark_list = data->request_list;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1711
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1712 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
1713 gotdata->user_name = g_strdup(user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1714 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
1715
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
1716 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
1717
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1718 if(mark_list) {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1719 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
1720 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
1721 g_list_free(mark_list);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1722 data->request_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1723 }
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1724
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1725 g_free(gotdata->user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1726 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
1727 }
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
1728
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1729 /* 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
1730 static void
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1731 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
1732 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
1733 {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1734 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
1735 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
1736 gint service = gotdata->service;
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1737 GMatchInfo *match_info = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1738 icon_data *data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1739 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
1740 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
1741
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1742 if(service == twitter_service) {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1743 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
1744 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
1745 regp_id = IMAGE_TWITTER;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1746 }
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
1747 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
1748 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
1749 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
1750 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
1751 }
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1752 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
1753 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
1754 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
1755 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
1756 }
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
1757
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1758 if(!url_text) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1759 if(data) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1760 data->requested = FALSE;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1761 data->fetch_data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1762 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1763 g_free(gotdata->user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1764 g_free(gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1765 return;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1766 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1767
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
1768 /* 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
1769 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
1770 if(!g_match_info_matches(match_info)) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1771 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
1772
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
1773 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
1774 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
1775 url = g_strdup(TWITTER_DEFAULT_ICON_URL);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1776 }
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
1777 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
1778 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
1779 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
1780 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
1781 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
1782 }
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
1783 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
1784 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
1785 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
1786 }
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1787 }
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
1788 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
1789 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
1790 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
1791 }
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1792
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
1793 /* find out basename */
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1794 gchar *slash = strrchr(url, '/');
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1795 *slash = '\0';
154
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1796
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1797 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
1798
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1799 if(strstr(lower, ".png"))
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1800 data->img_type = "png";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1801 else if(strstr(lower, ".gif"))
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1802 data->img_type = "gif";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1803 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
1804 data->img_type = "jpg";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1805
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1806 g_free(lower);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1807
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
1808 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
1809 /* 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
1810 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
1811 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
1812 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
1813 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
1814 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
1815 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
1816 -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
1817 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
1818 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
1819 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
1820 }
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
1821 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
1822 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
1823 }
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
1824
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1825 g_free(url);
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1826 url = tmp;
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1827
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
1828 /* 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
1829 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
1830 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
1831 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
1832 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
1833 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
1834 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
1835 }
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
1836
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
1837 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
1838 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
1839 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
1840 }
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
1841
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
1842 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
1843 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
1844
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
1845 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
1846 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
1847
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
1848 twitter_debug("requested url=%s\n", url);
140
dcf980ba3f8b url encode icon url before requesting.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 139
diff changeset
1849
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1850 /* request fetch image */
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1851 if(url) {
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1852 /* reuse gotdata. just pass given one */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1853 /* 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
1854 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
1855 TRUE, NULL, TRUE,
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1856 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1857 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
1858 g_free(url);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1859 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1860 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1861
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1862 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
1863 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
1864 {
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1865 /* 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
1866 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
1867 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
1868 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
1869
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1870 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
1871 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
1872
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1873 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
1874 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
1875 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
1876
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1877 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
1878 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
1879 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
1880
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1881 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
1882 if(size == 0)
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
1883 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
1884
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1885 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
1886 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
1887
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1888 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
1889 }
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1890
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1891 static gchar *ext_list[] = {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1892 "png",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1893 "gif",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1894 "jpg",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1895 NULL
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1896 };
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1897
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1898 /* 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
1899 static void
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1900 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
1901 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
1902 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1903 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
1904 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1905 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1906
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1907 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
1908 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
1909 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
1910 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
1911
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1912 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
1913
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1914 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1915 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1916 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
1917 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1918 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1919 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
1920 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
1921 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1922 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
1923 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1924 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1925 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
1926 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1927
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
1928 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
1929 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
1930
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1931 /* 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
1932 if(!url_text) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1933 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
1934 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
1935 if(data)
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1936 data->requested = FALSE;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1937
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1938 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
1939 }
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
1940
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1941 if(data) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1942 /* remove download request */
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1943 data->requested = FALSE;
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1944 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
1945
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1946 /* return if user's icon had been downloaded */
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1947 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
1948 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
1949 user_name);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1950
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1951 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
1952 }
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
1953 }
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
1954
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1955 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
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 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
1958 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
1959
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1960
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1961 if(!data) {
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1962 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
1963 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
1964 }
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1965
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1966 data->pixbuf = pixbuf;
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1967
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1968 twitter_debug("new icon pixbuf = %p size = %d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1969 pixbuf,
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1970 gdk_pixbuf_get_rowstride(pixbuf) *
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1971 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
1972
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
1973 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
1974 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
1975
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1976 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
1977
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1978 /* 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
1979 if(ensure_path_exists(dirname)) {
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1980 gchar *filename = NULL;
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1981 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
1982 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
1983 gchar **extp;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1984
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1985 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1986 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
1987 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
1988 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1989 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
1990 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
1991 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
1992 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
1993 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
1994 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1995 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1996 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
1997 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1998 }
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1999
159
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2000 /* 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
2001 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
2002 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
2003 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
2004 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
2005 g_remove(path);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2006
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2007 g_free(filename);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2008 g_free(path);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2009 }
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2010
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2011 /* setup path */
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2012 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
2013 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
2014
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2015 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
2016 g_free(filename); filename = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2017
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2018 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
2019 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
2020
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
2021 data->mtime = time(NULL);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2022 }
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2023
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2024 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
2025 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
2026
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
2027 /* 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
2028 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
2029
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2030 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
2031 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
2032 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
2033 }
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
2034
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
2035 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
2036 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
2037 {
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
2038 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
2039
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2040 /* 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
2041 gchar *path = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2042 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
2043 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
2044 const gchar *suffix = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2045
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2046 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2047 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2048 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
2049 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
2050 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2051 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2052 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
2053 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
2054 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
2055 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
2056 suffix = "identica";
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2057 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
2058 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2059 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2060 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
2061 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2062 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2063
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
2064 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
2065 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
2066
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2067 /* 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
2068 * 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
2069 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
2070
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2071 /* 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
2072 if(data && data->pixbuf && !renew)
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2073 return;
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2074
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2075 /* 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
2076 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
2077 gchar *filename = NULL;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2078 gchar **extp;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2079
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2080 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
2081 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
2082 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
2083 filename, NULL);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2084
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2085 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
2086
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
2087 /* 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
2088 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
2089 gchar *imgdata = NULL;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2090 size_t len;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2091 GError *err = NULL;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2092 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
2093 struct stat buf;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2094
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2095 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
2096 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
2097 path, err->message);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2098 g_error_free(err);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2099 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2100
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
2101 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
2102 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
2103
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2104 pixbuf = make_scaled_pixbuf(imgdata, len);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2105 g_free(imgdata);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2106
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2107 if(pixbuf) {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2108 data->pixbuf = pixbuf;
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2109
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2110 twitter_debug("new icon pixbuf = %p size = %d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2111 pixbuf,
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2112 gdk_pixbuf_get_rowstride(pixbuf) *
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2113 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
2114
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2115 data->img_type = *extp;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2116
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2117 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
2118 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
2119 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2120
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2121 g_free(path);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2122 return;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2123 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2124 } /* for */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2125 } /* suffix */
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2126
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2127 /* 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
2128 if(data->requested)
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2129 return;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2130 else
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2131 data->requested = TRUE;
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2132
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2133 /* 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
2134 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2135 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
2136 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
2137 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2138 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
2139 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
2140 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
2141 case identica_service:
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2142 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
2143 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2144 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2145 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
2146 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2147 }
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
2148
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
2149 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
2150 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
2151 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
2152 gotdata->service = service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2153
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
2154 /* 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
2155 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
2156 service == wassr_service ||
200
9a2d727f39b4 removed jisko support as a protest to their expulsion policy.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 199
diff changeset
2157 service == identica_service) {
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2158 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
2159 got_page_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2160 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2161 else {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2162 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
2163 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2164 }
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
2165 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
2166
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
2167 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
2168 }
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
2169 }
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
2170
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
2171 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
2172 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
2173 {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2174 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
2175 GHashTable *hash = NULL;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2176
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2177 twitter_debug("called\n");
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2178
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2179 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2180 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2181 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
2182 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2183 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2184 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
2185 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
2186 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2187 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
2188 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2189 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2190 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
2191 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2192 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2193
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
2194 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
2195 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
2196
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2197 /* 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
2198 if(!data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2199 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
2200 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
2201 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2202
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2203 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
2204 }
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2205
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2206 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
2207 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
2208 PurpleConversation *conv, PurpleMessageFlags flags,
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2209 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
2210 {
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2211 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
2212 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
2213 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
2214 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
2215
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2216 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
2217
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2218 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
2219 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
2220 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
2221 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2222
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2223 /* 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
2224 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
2225 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
2226
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2227 /* 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
2228 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
2229 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
2230 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
2231
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2232 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
2233 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2234
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2235 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
2236 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
2237 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
2238 {
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
2239 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
2240 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
2241 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
2242 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
2243 GtkTextIter insertion_point;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
2244 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
2245 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
2246 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
2247 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
2248 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
2249
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2250 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
2251
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2252 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
2253 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
2254 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
2255 }
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
2256
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
2257 /* 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
2258 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
2259 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
2260 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
2261 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
2262 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
2263 }
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
2264
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
2265 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
2266 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
2267
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
2268 /* 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
2269 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
2270 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
2271
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2272 /* 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
2273 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
2274 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
2275 &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
2276 linenumber);
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2277
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2278 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2279 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2280 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
2281 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2282 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2283 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
2284 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
2285 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2286 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
2287 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
2288 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
2289 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
2290 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2291 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2292
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
2293 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
2294 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
2295
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
2296 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
2297 /* 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
2298 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
2299 int days_thres = DAYS_TO_SECONDS(
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2300 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
2301
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
2302 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
2303 (data->mtime && ((time(NULL) - data->mtime)) > days_thres)) {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2304 twitter_debug("count=%d mtime=%d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2305 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
2306 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
2307 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
2308 }
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
2309 }
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
2310
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2311 /* 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
2312 * request the icon */
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2313 if(!data || !data->pixbuf) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2314 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
2315 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
2316 text_buffer, NULL, &insertion_point, FALSE),
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2317 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
2318 /* 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
2319 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
2320 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
2321 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
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
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2324 /* 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
2325 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2326 gtk_text_buffer_insert_pixbuf(text_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2327 &insertion_point,
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2328 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
2329 data->use_count++;
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2330 }
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
2331 g_free(user_name); user_name = NULL;
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2332
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2333 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
2334 }
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
2335
118
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2336
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2337 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2338 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
2339 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2340 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
2341 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
2342 PurpleBuddy *b;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2343
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2344 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
2345
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2346 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
2347 return;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2348
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2349 if (!list)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2350 return;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2351
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2352 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
2353
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2354 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
2355 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
2356 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2357
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2358 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
2359
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2360 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
2361 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2362
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2363 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
2364 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
2365 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2366
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2367 b = (PurpleBuddy *)bnode;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2368
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2369 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
2370 const char *name;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2371 PurpleAccount *account;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2372 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
2373 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
2374 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
2375 PurpleConversation *gconv;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2376 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
2377 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
2378 if (!gconv) {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2379 gconv = purple_conversation_new(
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2380 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
2381 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2382 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2383 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2384 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2385 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2386 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2387 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2388
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2389 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2390 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
2391 gpointer data)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2392 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2393 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
2394 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
2395 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2396
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
2397 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2398 load_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2399 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2400 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2401
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2402 /* connect to signal */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2403 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
2404 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
2405 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
2406 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
2407 purple_signal_connect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2408 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2409 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
2410 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
2411 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
2412 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
2413 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
2414
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
2415 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
2416 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
2417 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
2418 "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
2419 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
2420 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
2421 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
2422
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2423
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
2424 /* 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
2425 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
2426 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
2427 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
2428 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
2429 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
2430 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
2431 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
2432 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
2433 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
2434 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
2435 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
2436 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
2437 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
2438
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2439 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
2440 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
2441 g_free, NULL);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2442 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2443
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2444 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
2445 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
2446
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2447
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2448 /* 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
2449 if(purple_prefs_get_bool(OPT_COUNTER)) {
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2450 attach_to_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2451 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2452
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2453 /* allocate wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2454 wassr_post = g_new0(gchar, WASSR_POST_LEN + 1);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2455
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2456 /* allocate identica_post */
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2457 identica_post = g_new0(gchar, IDENTICA_POST_LEN + 1);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2458
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2459 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2460 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2461
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2462 static void
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2463 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
2464 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2465 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
2466
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2467 if(!data)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2468 return;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2469
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2470 if(data->fetch_data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2471 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
2472 data->fetch_data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2473 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2474
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2475 if(data->request_list) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2476 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
2477 }
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2478 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2479
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2480 static void
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2481 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
2482 {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2483 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
2484 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
2485 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2486
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2487 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2488 unload_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2489 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2490 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2491
39
2ac81c0afb53 - new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 38
diff changeset
2492 twitter_debug("called\n");
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2493
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2494 /* disconnect from signal */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2495 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2496 "writing-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2497 plugin, PURPLE_CALLBACK(writing_im_cb));
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2498 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2499 "sending-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2500 plugin, PURPLE_CALLBACK(sending_im_cb));
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2501 purple_signal_disconnect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2502 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2503 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
2504 purple_signal_disconnect(pidgin_conversations_get_handle(),
135
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2505 "displaying-im-msg",
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2506 plugin, PURPLE_CALLBACK(displaying_im_cb));
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2507 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
2508 "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
2509 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
2510 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
2511 "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
2512 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
2513 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
2514 "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
2515 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
2516 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
2517 "signed-on",
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2518 plugin, PURPLE_CALLBACK(signed_on_cb));
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2519
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2520 /* unreference regp */
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2521 for(i = 0; i < NUM_REGPS; i++) {
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
2522 g_regex_unref(regp[i]);
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
2523 }
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
2524
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2525 /* 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
2526 /* cancel request that has not been finished yet */
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2527 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
2528 /* 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
2529 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
2530 (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
2531 /* 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
2532 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
2533 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2534
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2535 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
2536
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2537 /* detach from twitter window */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2538 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2539
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2540 /* free wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2541 g_free(wassr_post);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2542 wassr_post = NULL;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2543
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2544 /* free identica_post */
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2545 g_free(identica_post);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2546 identica_post = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2547
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2548 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2549 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2550
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2551 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2552 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
2553 gconstpointer val, gpointer data)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2554 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2555 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
2556
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2557 if(enabled)
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
2558 attach_to_window();
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2559 else
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2560 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2561 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2562
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2563 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2564 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
2565 {
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2566 icon_data *data = (icon_data *)value;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2567
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2568 g_return_if_fail(data != NULL);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2569
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2570 g_object_unref(data->pixbuf);
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2571 data->pixbuf = NULL;
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2572 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2573
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2574 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2575 icon_size_prefs_cb(const char *name, PurplePrefType type,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2576 gconstpointer val, gpointer data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2577 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2578 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2579
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2580 /* invalidate icon cache */
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2581 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
2582 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
2583 (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
2584 }
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2585 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2586
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2587 static void
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2588 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
2589 gconstpointer val, gpointer data)
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2590 {
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2591 /* remove idle func */
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2592 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
2593
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2594 /* add idle func */
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2595 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
2596 source.id = g_timeout_add_seconds(
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2597 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
2598 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
2599 }
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2600 }
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2601
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2602 static void
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2603 text_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2604 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2605 const gchar *text;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2606 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
2607 text = gtk_entry_get_text(GTK_ENTRY(data));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2608 purple_prefs_set_string(pref, text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2609 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2610
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2611 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2612 bool_toggled_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2613 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2614 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
2615 gboolean value = purple_prefs_get_bool(pref);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2616 purple_prefs_set_bool(pref, !value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2617 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2618
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2619 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2620 spin_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2621 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2622 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
2623
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2624 twitter_debug("called\n");
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2625
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2626 purple_prefs_set_int(pref,
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2627 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
2628 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2629
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2630 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2631 combo_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2632 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2633 gint position;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2634 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
2635 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
2636 purple_prefs_set_int(pref, position);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2637 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2638
157
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2639 static void
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2640 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
2641 {
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2642 PurplePlugin *plugin = (PurplePlugin *)data;
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2643
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2644 purple_prefs_disconnect_by_handle(plugin);
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2645 }
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2646
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2647 static GtkWidget *
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2648 prefs_get_frame(PurplePlugin *plugin)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2649 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2650 GtkBuilder *builder;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2651 GError *err = NULL;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2652 gchar *filename;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2653 GtkWidget *window, *notebook, *e;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2654 const gchar *text;
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2655 GtkSpinButton *spin;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2656 GtkObject *adjust;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2657 gint value;
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2658
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2659 builder = gtk_builder_new();
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2660
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
2661 #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
2662 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
2663 "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
2664 #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
2665 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
2666 "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
2667 #endif
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2668 gtk_builder_add_from_file(builder, filename, &err);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2669 if(err) {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2670 twitter_debug("%s\n", err->message);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2671 g_free(filename);
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2672 return NULL;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2673 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2674
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2675 g_free(filename);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2676
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2677 gtk_builder_connect_signals(builder, NULL);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2678
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2679 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
2680 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
2681
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2682 gtk_container_remove(GTK_CONTAINER(window), notebook);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2683
157
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2684 g_signal_connect(notebook, "destroy",
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2685 G_CALLBACK(disconnect_prefs_cb), plugin);
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2686
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2687
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2688 /**********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2689 /* connect to signals */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2690 /**********************/
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2691
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2692 /****************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2693 /* account page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2694 /****************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2695 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
2696 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
2697 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
2698 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2699 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2700 G_CALLBACK(text_changed_cb), &e);
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 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
2703 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
2704 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
2705 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2706 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2707 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2708
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2709 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
2710 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
2711 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
2712 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2713 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2714 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2715
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2716 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
2717 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
2718 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
2719 purple_prefs_get_bool(OPT_API_BASE_POST));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2720 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2721 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
2722 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
2723 api_base_post_cb, NULL);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2724
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2725 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
2726 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
2727
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2728 gtk_entry_set_visibility(GTK_ENTRY(e), FALSE);
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2729 if (gtk_entry_get_invisible_char(GTK_ENTRY(e)) == '*')
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2730 gtk_entry_set_invisible_char(GTK_ENTRY(e), PIDGIN_INVISIBLE_CHAR);
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2731
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2732 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
2733 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2734 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2735 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2736
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2737
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2738 /* interval spin */
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2739 e = GTK_WIDGET(gtk_builder_get_object (builder,
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2740 "account_api_get_interval_spin"));
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2741 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
2742
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2743 spin = GTK_SPIN_BUTTON(e);
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2744
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2745 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
2746 twitter_debug("spin value = %d\n", value);
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2747
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2748 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
2749 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
2750 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
2751
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2752 if(value == 0) {
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2753 value = TWITTER_DEFAULT_INTERVAL;
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2754 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
2755 }
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2756 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
2757 g_signal_connect(e, "value-changed",
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2758 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
2759 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
2760 interval_prefs_cb, NULL);
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2761
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2762
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2763
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2764 /********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2765 /* translation page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2766 /********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2767 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
2768 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
2769 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
2770 purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2771 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2772 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2773
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2774 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
2775 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
2776 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
2777 purple_prefs_get_bool(OPT_TRANSLATE_SENDER));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2778 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2779 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2780
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2781 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
2782 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
2783 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
2784 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2785 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2786 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2787
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2788
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2789
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2790 /*************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2791 /* icon page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2792 /*************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2793 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
2794 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
2795 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
2796 purple_prefs_get_bool(OPT_SHOW_ICON));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2797 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2798 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2799
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2800 /* icon size spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2801 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
2802 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
2803
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2804 spin = GTK_SPIN_BUTTON(e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2805
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2806 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
2807 twitter_debug("spin value = %d\n", value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2808
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2809 adjust = gtk_adjustment_new(value, 16, 128, 4, 4, 4);
128
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2810 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust));
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2811 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
2812
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2813 if(value == 0) {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2814 value = DEFAULT_ICON_SIZE;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2815 purple_prefs_set_int(OPT_ICON_SIZE, value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2816 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2817 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
2818 g_signal_connect(e, "value-changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2819 G_CALLBACK(spin_changed_cb), &e);
128
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2820 purple_prefs_connect_callback(plugin, OPT_ICON_SIZE,
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2821 icon_size_prefs_cb, NULL);
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2822
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2823 /* enable update */
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2824 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
2825 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
2826 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
2827 purple_prefs_get_bool(OPT_UPDATE_ICON));
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2828 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2829 G_CALLBACK(bool_toggled_cb), &e);
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2830
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2831 /* max count spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2832 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
2833 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
2834
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2835 spin = GTK_SPIN_BUTTON(e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2836
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2837 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
2838 twitter_debug("spin value = %d\n", value);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2839
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2840 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
2841 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
2842 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
2843
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2844 if(value == 0) {
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2845 value = DEFAULT_ICON_MAX_COUNT;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2846 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
2847 }
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2848 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
2849 g_signal_connect(e, "value-changed",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2850 G_CALLBACK(spin_changed_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2851
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2852
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2853 /* max days spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2854 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
2855 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
2856
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2857 spin = GTK_SPIN_BUTTON(e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2858
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2859 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
2860 twitter_debug("spin value = %d\n", value);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2861
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2862 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
2863 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
2864 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
2865
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2866 if(value == 0) {
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2867 value = DEFAULT_ICON_MAX_DAYS;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2868 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
2869 }
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2870 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
2871 g_signal_connect(e, "value-changed",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2872 G_CALLBACK(spin_changed_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2873
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2874
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2875
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2876 /**************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2877 /* sound page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2878 /**************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2879 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
2880 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
2881 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
2882 purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2883 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2884 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2885
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2886 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
2887 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
2888 text = purple_prefs_get_string(OPT_USERLIST_RECIPIENT);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2889 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2890 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2891 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2892
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2893 /* recipient combobox */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2894 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
2895 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
2896 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2897 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
2898 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2899 G_CALLBACK(combo_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2900
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2901
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2902
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2903 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
2904 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
2905 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
2906 purple_prefs_get_bool(OPT_PLAYSOUND_SENDER));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2907 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2908 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2909
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2910 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
2911 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
2912 text = purple_prefs_get_string(OPT_USERLIST_SENDER);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2913 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2914 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2915 G_CALLBACK(text_changed_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 /* sender combobox */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2918 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
2919 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
2920 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2921 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
2922 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2923 G_CALLBACK(combo_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2924
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2925
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2926
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2927
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2928 /****************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2929 /* utility page */
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2930 /****************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2931 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
2932 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
2933 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
2934 purple_prefs_get_bool(OPT_COUNTER));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2935 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2936 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
2937 purple_prefs_connect_callback(plugin, OPT_COUNTER,
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2938 counter_prefs_cb, NULL);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2939
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2940 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
2941 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
2942 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
2943 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2944 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2945 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2946
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2947 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
2948 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
2949 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
2950 purple_prefs_get_bool(OPT_SUPPRESS_OOPS));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2951 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2952 G_CALLBACK(bool_toggled_cb), &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 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
2955 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
2956 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
2957 purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2958 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2959 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2960
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
2961 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
2962 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
2963 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e),
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
2964 purple_prefs_get_bool(OPT_LOG_OUTPUT));
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
2965 g_signal_connect(e, "toggled",
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
2966 G_CALLBACK(bool_toggled_cb), &e);
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
2967
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2968
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2969 /* all done */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2970 gtk_widget_show_all(notebook);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2971 return notebook;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2972 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2973
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2974 static PidginPluginUiInfo ui_info = {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2975 prefs_get_frame,
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2976 0, /* page number - reserved */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2977 NULL, /* reserved 1 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2978 NULL, /* reserved 2 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2979 NULL, /* reserved 3 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2980 NULL /* reserved 4 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2981 };
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2982
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2983 static PurplePluginInfo info = {
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2984 PURPLE_PLUGIN_MAGIC,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2985 PURPLE_MAJOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2986 PURPLE_MINOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2987 PURPLE_PLUGIN_STANDARD, /**< type */
147
3abee459c81c removed old prefs stuff.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 146
diff changeset
2988 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
2989 0, /**< flags */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2990 NULL, /**< deps */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2991 PURPLE_PRIORITY_DEFAULT, /**< priority */
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2992 PLUGIN_ID, /**< id */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2993 "Pidgin-Twitter", /**< name */
183
64007ccd2039 tweaked plugin info
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 178
diff changeset
2994 "0.7.0", /**< version */
76
63bd9ca28be0 - added nosuke and iratqq to the authors.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 74
diff changeset
2995 "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
2996 "provides useful features for twitter", /** desc */
183
64007ccd2039 tweaked plugin info
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 178
diff changeset
2997 "Yoshiki Yazawa, mikanbako, \nKonosuke Watanabe, IWATA Ray, \nmojin, umq, \nthe pidging-twitter team", /**< author */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2998 "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
2999 load_plugin, /**< load */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
3000 unload_plugin, /**< unload */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3001 NULL, /**< destroy */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3002 &ui_info, /**< ui_info */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3003 NULL, /**< extra_info */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3004 NULL, /**< pref info */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3005 NULL
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3006 };
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3007
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
3008 static void
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
3009 init_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3010 {
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3011 char *dirname = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3012
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3013 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
3014 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
3015 if(dirname)
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3016 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
3017 g_free(dirname);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3018
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3019 /* add plugin preferences */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3020 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
3021 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
3022 purple_prefs_add_bool(OPT_TRANSLATE_SENDER, TRUE);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
3023 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
3024 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
3025
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
3026 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
3027 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
3028 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
3029 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
3030 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
3031 purple_prefs_add_string(OPT_USERLIST_SENDER, DEFAULT_LIST);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
3032
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
3033 purple_prefs_add_bool(OPT_COUNTER, TRUE);
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
3034 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
3035 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
3036
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
3037 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
3038 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
3039 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
3040 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
3041 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
3042 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
3043
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3044 purple_prefs_add_bool(OPT_SHOW_ICON, TRUE);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3045 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
3046 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
3047 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
3048 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
3049 purple_prefs_add_bool(OPT_LOG_OUTPUT, FALSE);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3050 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3051
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3052 PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info)