annotate pidgin-twitter.c @ 196:b436d72447e8

make use of got_page_cb to obtain icons for jisko.
author Yoshiki Yazawa <yaz@honeyplnaet.jp>
date Sat, 09 Aug 2008 13:42:12 +0900
parents 1495b478680b
children 85484ddf8823
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 /***********/
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
27 #define NUM_REGPS 11
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
28 #define NUM_SERVICES 4 /* twitter, wassr, identica, jisko. */
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 */
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
785 if(twitter_ac || wassr_ac || identica_ac)
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
786 strip_markup(buffer, TRUE);
e67b0231ba56 completely re-wrote strip_html_markup(). new function permits non-tag strings surrounded by <>.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 135
diff changeset
787
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
788 if(wassr_ac) {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
789 /* store sending message to address parrot problem */
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
790 g_strlcpy(wassr_post, *buffer, WASSR_POST_LEN);
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
791 twitter_debug("wassr parrot pushed:%s\n", *buffer);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
792 }
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
793
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
794 if(identica_ac) {
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
795 /* store sending message to address parrot problem */
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
796 g_strlcpy(identica_post, *buffer, IDENTICA_POST_LEN);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
797 twitter_debug("identica parrot pushed:%s\n", *buffer);
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
798 }
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
799
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
800 /* 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
801 if(!twitter_ac)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
802 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
803
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
804 /* escape pseudo command */
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
805 if(twitter_ac &&
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
806 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
807 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
808 }
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
809
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
810 /* update status with Twitter API instead of IM protocol */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
811 if (purple_prefs_get_bool(OPT_API_BASE_POST)) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
812 if (buffer && *buffer) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
813 post_status_with_api(account, buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
814 (*buffer)[0] = '\0';
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
815 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
816 return FALSE;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
817 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
818
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
819 /* 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
820 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
821 bytes = strlen(*buffer);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
822 twitter_debug("utflen = %d bytes = %d\n", utflen, bytes);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
823 if(bytes > 140 && utflen <= 140)
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
824 suppress_oops = TRUE;
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
825
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
826 return FALSE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
827 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
828
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
829 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
830 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
831 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
832 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
833 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
834 gint service = data->service;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
835 gchar sub[128];
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
836
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
837 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
838
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
839 if(which == RECIPIENT) {
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
840 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
841 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
842 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
843 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
844 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
845 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
846 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
847 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
848 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
849 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
850 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
851 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
852 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
853 format = RECIPIENT_FORMAT_JISKO;
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
854 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
855 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
856 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
857 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
858 }
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
859 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
860 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
861 }
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 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
863 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
864 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
865 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
866
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
867 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
868 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
869 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
870 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
871 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
872 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
873 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
874 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
875 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
876 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
877 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
878 format = SENDER_FORMAT_JISKO;
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
879 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
880 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
881 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
882 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
883 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
884
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
885 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
886
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
887 g_free(match1);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
888 g_free(match2);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
889 }
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
890 else if(service == wassr_service && which == CHANNEL) {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
891 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
892 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
893 const gchar *format = CHANNEL_FORMAT_WASSR;
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
894
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
895 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
896
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
897 g_free(match1);
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
898 g_free(match2);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
899 }
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
900
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
901 g_string_append(result, sub);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
902 twitter_debug("sub = %s\n", sub);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
903
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
904 return FALSE;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
905 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
906
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
907 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
908 translate(gchar **str, gint which, gint service)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
909 {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
910 gchar *newstr;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
911 eval_data *data = g_new0(eval_data, 1);
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
912 gint regp_id;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
913
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
914 data->which = which;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
915 data->service = service;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
916
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
917 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
918 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
919 *str, /* subject string */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
920 -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
921 0, /* start position */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
922 0, /* match options */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
923 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
924 data, /* user data */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
925 NULL); /* error handler */
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
926
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
927 g_free(data); data = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
928
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
929 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
930
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
931 g_free(*str);
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
932 *str = newstr;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
933 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
934
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
935 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
936 playsound(gchar **str, gint which)
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
937 {
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
938 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
939 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
940 gchar **candidates = NULL, **candidate = NULL;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
941
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
942 list = purple_prefs_get_string(which ? OPT_USERLIST_SENDER :
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
943 OPT_USERLIST_RECIPIENT);
5
6ac1867d7e8e string list should be initialized with NULL
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 2
diff changeset
944 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
945 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
946 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
947
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
948 candidates = g_strsplit_set(list, " ,:;", 0);
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
949 g_return_if_fail(candidates != NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
950
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
951 g_regex_match(regp[which], *str, 0, &match_info);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
952 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
953 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
954 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
955 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
956 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
957 user = g_match_info_fetch(match_info, 2);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
958 twitter_debug("user = %s\n", user);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
959
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
960 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
961 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
962 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
963 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
964 if(!strcmp(user, *candidate)) {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
965 twitter_debug("match. play sound\n");
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
966 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
967 (which ? OPT_SOUNDID_SENDER :
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
968 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
969 break;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
970 }
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
971 }
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
972 g_free(user);
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
973 g_match_info_next(match_info, NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
974 }
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
975 g_strfreev(candidates);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
976 g_match_info_free(match_info);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
977 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
978
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
979 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
980 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
981 PurpleConversation *conv, int flags, void *data)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
982 {
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
983 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
984
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
985 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
986
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
987 /* 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
988 if(service == unknown_service)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
989 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
990
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
991 /* 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
992 if (flags & PURPLE_MESSAGE_SEND) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
993 gchar *m = NULL;
145
f220da0c089e screen_name should be initialized.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 142
diff changeset
994 const char *screen_name = NULL;
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
995
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
996 switch(service) {
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
997 case twitter_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
998 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
999 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1000 case wassr_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1001 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
1002 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1003 case identica_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1004 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
1005 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1006 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1007 screen_name = purple_prefs_get_string(OPT_SCREEN_NAME_JISKO);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1008 break;
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1009 }
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
1010
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1011 if (screen_name) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1012 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
1013 g_free(*buffer);
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1014 *buffer = m;
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
1015 }
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
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
1018 /* 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
1019 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
1020
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1021 /* playsound */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1022 if(purple_prefs_get_bool(OPT_PLAYSOUND_SENDER)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1023 playsound(buffer, SENDER);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1024 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1025 if(purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1026 playsound(buffer, RECIPIENT);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1027 }
41
0a81ccfa1941 strip excessive markup where it is not needed. (work in progress)
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 40
diff changeset
1028
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1029 /* translate */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1030 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
1031 translate(buffer, SENDER, service);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1032 }
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1033 if(service == wassr_service &&
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1034 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) {
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1035 translate(buffer, CHANNEL, service);
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
1036 }
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
1037 if(purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)) {
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
1038 translate(buffer, RECIPIENT, service);
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
1039 }
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1040
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
1041 /* 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
1042 if(service == twitter_service &&
62b90f3b0b8a replaced a occurrence of is_twitter_conv()
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 145
diff changeset
1043 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1044 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1045 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
1046
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1047 return FALSE;
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1048 }
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
1049
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1050 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1051 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1052 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
1053 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1054 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1055 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1056
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1057 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1058 gchar *markup = NULL;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1059 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
1060 guint count;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1061 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1062 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1063 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
1064
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1065 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1066
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1067 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1068 case twitter_service:
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1069 case jisko_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1070 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
1071 (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
1072 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
1073 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
1074 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1075 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1076 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
1077 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
1078
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1079 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
1080 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1081 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
1082 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1083 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
1084 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
1085 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1086 case wassr_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1087 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
1088 (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
1089 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
1090 count <= 255 ? "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
1091 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1092 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1093 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
1094 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1095 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1096
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1097 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1098 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
1099 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1100 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1101
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1102 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1103 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1104
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1105 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1106 delete_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *start_pos,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1107 GtkTextIter *end_pos, gpointer user_data)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1108 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1109 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1110 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1111 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1112 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
1113 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
1114 guint count = 0;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1115 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1116 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1117 guint bytes = 0;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1118
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1119 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1120
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1121 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1122 case twitter_service:
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1123 case jisko_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1124 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
1125 (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
1126 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
1127 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
1128 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
1129 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1130 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1131 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
1132 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
1133
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1134 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
1135 &head, &tail, TRUE);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1136 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1137 bytes = strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1138 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1139
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1140 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
1141 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
1142 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1143 bytes -= strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1144 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1145
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1146 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
1147 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
1148 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1149 case wassr_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1150 count= gtk_text_buffer_get_char_count(textbuffer) -
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1151 (gtk_text_iter_get_offset(end_pos) -
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1152 gtk_text_iter_get_offset(start_pos));
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1153 markup = g_markup_printf_escaped("<span color=\"%s\">%u</span>",
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1154 count <= 255 ? "black" : "red", count);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1155 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1156 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1157 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
1158 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1159 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1160
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1161 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1162 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
1163 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1164 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1165
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1166 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1167 }
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 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1170 detach_from_window(void)
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 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1173
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1174 /* 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
1175 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
1176 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1177 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1178 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
1179 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
1180 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1181 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
1182 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
1183 case identica_service:
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1184 case jisko_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1185 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
1186 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1187 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1188 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
1189 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1190 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1191 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1192 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1193
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1194 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1195 detach_from_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1196 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1197 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1198 GtkWidget *box, *counter = NULL, *sep = NULL;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1199
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1200 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
1201 (GFunc) insert_text_cb, conv);
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) delete_text_cb, conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1204
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1205 box = gtkconv->toolbar;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1206
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1207 /* remove counter */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1208 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
1209 if(counter) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1210 gtk_container_remove(GTK_CONTAINER(box), counter);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1211 g_object_unref(counter);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1212 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
1213 }
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1214
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1215 /* remove separator */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1216 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
1217 if(sep) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1218 gtk_container_remove(GTK_CONTAINER(box), sep);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1219 g_object_unref(sep);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1220 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
1221 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1222
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1223 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
1224 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1225
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1226 static void
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1227 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
1228 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1229 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
1230 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
1231 GList *mark_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1232 GList *current;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1233
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1234 if(!data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1235 return;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1236
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1237 if(data->request_list)
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1238 mark_list = data->request_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1239
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1240 /* 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
1241 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
1242 current = g_list_next(current)) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1243 GtkTextMark *current_mark = current->data;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1244 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
1245 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1246
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1247 if(!current_text_buffer)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1248 continue;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1249
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1250 if(text_buffer) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1251 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
1252 /* 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
1253 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
1254 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1255 current->data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1256 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1257 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1258 else {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1259 gtk_text_buffer_delete_mark(current_text_buffer, current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1260 current->data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1261 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1262 } /* end of for */
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 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
1265 data->request_list = mark_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1266 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1267
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1268 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1269 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
1270 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
1271 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
1272
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1273 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
1274 (GHFunc)remove_marks_func,
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1275 (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
1276 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1277
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 static void
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1279 attach_to_window(void)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1280 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1281 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1282
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1283 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1284
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1285 /* 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
1286 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
1287 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1288 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1289 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
1290 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
1291 /* 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
1292 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1293 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
1294 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
1295 case identica_service:
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1296 case jisko_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1297 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
1298 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1299 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1300 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
1301 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1302 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1303 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1304 }
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 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1307 attach_to_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1308 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1309 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
1310 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
1311 GtkIMHtml *imhtml;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1312
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1313 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
1314 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
1315
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 /* 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
1317 * 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
1318 * 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
1319 */
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 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
1321 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
1322 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
1323 }
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 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
1325 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
1326 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
1327 }
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
1328
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
1329 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
1330 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
1331 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
1332 ~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
1333
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 /* 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
1335 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
1336 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
1337
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 /* get counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1339 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
1340 g_return_if_fail(counter == NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1341
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1342 /* make counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1343 counter = gtk_label_new(NULL);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1344 gtk_widget_set_name(counter, "counter_label");
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1345 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
1346 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
1347 gtk_widget_show_all(counter);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1348 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
1349
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1350 /* make separator object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1351 sep = gtk_vseparator_new();
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1352 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
1353 gtk_widget_show_all(sep);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1354 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
1355
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
1356 /* connect to signals */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1357 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
1358 G_CALLBACK(insert_text_cb), conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1359 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
1360 G_CALLBACK(delete_text_cb), conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1361
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1362 /* redraw window */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1363 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
1364 }
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 static gboolean
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1367 is_twitter_account(PurpleAccount *account, const char *name)
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1368 {
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1369 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
1370
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
1371 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
1372 g_strstr_len(proto, 11, "prpl-jabber")) {
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1373 return TRUE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1374 }
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 return FALSE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1377 }
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 static gboolean
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1380 is_twitter_conv(PurpleConversation *conv)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1381 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1382 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
1383
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1384 const char *name = purple_conversation_get_name(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1385 PurpleAccount *account = purple_conversation_get_account(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1386
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1387 return is_twitter_account(account, name);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1388 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1389
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1390 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1391 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
1392 {
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1393 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
1394
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
1395 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
1396 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
1397 return TRUE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1398 }
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 return FALSE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1401 }
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 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1404 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
1405 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1406 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
1407
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1408 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
1409 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
1410
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1411 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
1412 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1413
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
1414 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
1415 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
1416 {
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 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
1418
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 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
1420 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
1421 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
1422 }
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 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
1425 }
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 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
1428 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
1429 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1430 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
1431
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
1432 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
1433 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
1434
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 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
1436 }
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
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1438 static gboolean
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1439 is_jisko_account(PurpleAccount *account, const char *name)
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1440 {
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1441 const gchar *proto = purple_account_get_protocol_id(account);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1442
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1443 if(g_strstr_len(name, 16, "bot@jisko.net") &&
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1444 g_strstr_len(proto, 11, "prpl-jabber")) {
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1445 return TRUE;
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1446 }
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1447
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1448 return FALSE;
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1449 }
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1450
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1451 static gboolean
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1452 is_jisko_conv(PurpleConversation *conv)
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1453 {
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1454 g_return_val_if_fail(conv != NULL, FALSE);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1455
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1456 const char *name = purple_conversation_get_name(conv);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1457 PurpleAccount *account = purple_conversation_get_account(conv);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1458
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1459 return is_jisko_account(account, name);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1460 }
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1461
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1462 static gint
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1463 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
1464 {
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 = unknown_service;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1466
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1467 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
1468
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1469 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
1470 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
1471 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
1472 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
1473 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
1474 service = identica_service;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1475 else if(is_jisko_conv(conv))
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1476 service = jisko_service;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1477
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1478 return service;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1479 }
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1480
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1481 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1482 conv_created_cb(PurpleConversation *conv, gpointer null)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1483 {
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1484 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
1485
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1486 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1487
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1488 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1489
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1490 gint service = get_service_type(conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1491 /* 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
1492 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1493 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
1494 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
1495 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
1496 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
1497 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
1498 source.conv = conv;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1499 attach_to_conv(conv, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1500 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1501 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
1502 case identica_service:
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1503 case jisko_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1504 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
1505 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1506 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1507 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
1508 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1509 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1510 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1511
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
1512 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
1513 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
1514 {
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
1515 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
1516
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1517 twitter_debug("called\n");
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1518
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
1519 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
1520
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1521 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
1522 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
1523
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
1524 /* 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
1525 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1526 case twitter_service:
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1527 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
1528 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
1529 source.id = 0;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1530 source.conv = NULL;
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
1531 }
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1532 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
1533 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1534 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1535 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
1536 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
1537 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1538 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
1539 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1540 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1541 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1542 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1543 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1544 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
1545 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1546 }
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
1547
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1548 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
1549 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
1550 }
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
1551
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
1552 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
1553 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
1554 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
1555 {
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
1556 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
1557 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
1558
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1559 gint service = get_service_type(conv);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1560
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1561 if(service != unknown_service) {
100
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1562 /* suppress notification of incoming messages. */
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1563 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
1564 *flags |= PURPLE_MESSAGE_SYSTEM;
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1565 }
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1566
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1567 /* 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
1568 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
1569 if(strstr(*buffer, "<body>投稿完了:") ||
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1570 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
1571 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
1572 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
1573 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
1574 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1575 /* 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
1576 else if(wassr_post &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1577 strlen(wassr_post) &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1578 strstr(*buffer, wassr_post)) {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1579 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
1580 g_free(*sender); *sender = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1581 g_free(*buffer); *buffer = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1582 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1583 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1584
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1585 if(service == identica_service) {
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1586 if(identica_post &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1587 strlen(identica_post) &&
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1588 strstr(*buffer, identica_post)) {
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1589 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
1590 *buffer, identica_post);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1591 g_free(*sender); *sender = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1592 g_free(*buffer); *buffer = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1593 }
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1594 }
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1595
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
1596 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
1597 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
1598 }
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
1599
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1600 /* 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
1601 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
1602 g_free(*sender); *sender = NULL;
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1603 g_free(*buffer); *buffer = NULL;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1604 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1605
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1606 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
1607 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
1608
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
1609 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
1610 twitter_debug("clearing sender and buffer\n");
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1611 g_free(*sender); *sender = NULL;
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1612 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
1613 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
1614 }
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
1615 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
1616 }
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
1617
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
1618 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1619 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
1620 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1621 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
1622
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1623 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1624 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
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 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
1627 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
1628 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
1629 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
1630 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
1631 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
1632
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1633 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
1634
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
1635 /* 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
1636 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
1637 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
1638 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
1639 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
1640
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 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
1642 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
1643 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
1644 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
1645
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1646 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
1647
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1648 if(service != unknown_service) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1649 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
1650 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
1651 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
1652
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
1653 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
1654 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
1655 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
1656 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
1657 }
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
1658 }
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
1659 }
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
1660 }
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
1661 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
1662 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
1663 }
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
1664
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
1665 /* 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
1666 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
1667 &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
1668
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
1669 /* 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
1670 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1671 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1672 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
1673 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1674 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1675 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
1676 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
1677 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1678 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
1679 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1680 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1681 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1682 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1683 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1684 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
1685 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1686
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
1687 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
1688 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
1689
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1690
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
1691 /* 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
1692 * 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
1693 * 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
1694 #if 0
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
1695 /* 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
1696 int count_thres = purple_prefs_get_int(OPT_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
1697 int days_thres = DAYS_TO_SECONDS(purple_prefs_get_int(OPT_ICON_MAX_DAYS));
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
1698
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
1699 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
1700 (data->mtime && ((time(NULL) - data->mtime)) > days_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
1701 twitter_debug("count=%d mtime=%ld\n", data->use_count, data->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
1702 icon_id = 0;
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
1703 data->icon_id = 0;
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
1704 data->use_count = 0;
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
1705 data->mtime = time(NULL); //xxx not good
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
1706 }
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
1707 #endif
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
1708
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1709 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
1710 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
1711 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1712
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1713 /* insert icon actually */
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1714 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1715 gtk_text_buffer_insert_pixbuf(target_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1716 &insertion_point,
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1717 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
1718 data->use_count++;
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1719 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1720 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
1721 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
1722 }
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
1723
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1724 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1725 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
1726 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1727 icon_data *data = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1728 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
1729 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
1730
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1731 twitter_debug("called\n");
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1732
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1733 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1734 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1735 hash = icon_hash[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
1736 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1737 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1738 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
1739 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
1740 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1741 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
1742 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1743 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1744 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1745 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1746 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1747 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
1748 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1749 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1750
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
1751 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
1752 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
1753
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1754 if(!data)
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1755 return;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1756
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1757 mark_list = data->request_list;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1758
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1759 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
1760 gotdata->user_name = g_strdup(user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1761 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
1762
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
1763 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
1764
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1765 if(mark_list) {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1766 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
1767 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
1768 g_list_free(mark_list);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1769 data->request_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1770 }
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1771
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1772 g_free(gotdata->user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1773 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
1774 }
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
1775
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1776 /* 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
1777 static void
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1778 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
1779 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
1780 {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1781 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
1782 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
1783 gint service = gotdata->service;
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1784 GMatchInfo *match_info = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1785 icon_data *data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1786 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
1787 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
1788
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1789 if(service == twitter_service) {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1790 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
1791 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
1792 regp_id = IMAGE_TWITTER;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1793 }
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1794 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
1795 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
1796 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
1797 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
1798 }
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1799 else if(service == jisko_service) {
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1800 data = (icon_data *)g_hash_table_lookup(
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1801 icon_hash[jisko_service], user_name);
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1802 regp_id = IMAGE_JISKO;
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
1803 }
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
1804
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1805 if(!url_text) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1806 if(data) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1807 data->requested = FALSE;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1808 data->fetch_data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1809 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1810 g_free(gotdata->user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1811 g_free(gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1812 return;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1813 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1814
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
1815 /* 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
1816 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
1817 if(!g_match_info_matches(match_info)) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1818 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
1819
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
1820 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
1821 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
1822 url = g_strdup(TWITTER_DEFAULT_ICON_URL);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1823 }
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
1824 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
1825 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
1826 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
1827 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
1828 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
1829 }
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
1830 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
1831 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
1832 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
1833 }
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1834 }
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
1835 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
1836 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
1837 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
1838 }
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1839
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1840 gchar *slash = strrchr(url, '/');
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1841 *slash = '\0';
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1842 gchar *tmp = g_strdup_printf("%s/%s", url,
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1843 purple_url_encode(slash+1));
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1844
154
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1845
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1846 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
1847
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1848 if(strstr(lower, ".png"))
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1849 data->img_type = "png";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1850 else if(strstr(lower, ".gif"))
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1851 data->img_type = "gif";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1852 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
1853 data->img_type = "jpg";
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1854
d6ecbdee0afa fixed a bug around strchr() pointed out by mojin.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 153
diff changeset
1855 g_free(lower);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1856
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1857 g_free(url);
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1858 url = tmp;
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1859
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
1860 twitter_debug("requested url=%s\n", url);
140
dcf980ba3f8b url encode icon url before requesting.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 139
diff changeset
1861
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1862 /* request fetch image */
142
b573b534f32d modified the way of encoding icon url.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 141
diff changeset
1863 if(url) {
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1864 /* reuse gotdata. just pass given one */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1865 /* 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
1866 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
1867 TRUE, NULL, TRUE,
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1868 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1869 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
1870 g_free(url);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1871 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1872 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1873
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1874 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
1875 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
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 /* 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
1878 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
1879 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
1880 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
1881
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1882 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
1883 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
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 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
1886 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
1887 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
1888
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1889 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
1890 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
1891 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
1892
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1893 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
1894 if(size == 0)
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
1895 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
1896
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1897 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
1898 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
1899
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1900 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
1901 }
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1902
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1903 static gchar *ext_list[] = {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1904 "png",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1905 "gif",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1906 "jpg",
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1907 NULL
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1908 };
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1909
119
0c4a83f734cd - duplication avoidance for the posted messages has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 118
diff changeset
1910 /* 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
1911 static void
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1912 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
1913 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
1914 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1915 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
1916 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1917 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1918
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1919 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
1920 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
1921 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
1922 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
1923
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1924 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
1925
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1926 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1927 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1928 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
1929 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1930 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1931 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
1932 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
1933 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1934 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
1935 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1936 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1937 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
1938 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1939 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1940 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
1941 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1942
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
1943 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
1944 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
1945
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1946 /* 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
1947 if(!url_text) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1948 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
1949 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
1950 if(data)
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1951 data->requested = FALSE;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1952
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1953 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
1954 }
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
1955
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1956 if(data) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1957 /* remove download request */
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1958 data->requested = FALSE;
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1959 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
1960
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1961 /* return if user's icon had been downloaded */
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1962 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
1963 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
1964 user_name);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1965
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1966 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
1967 }
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
1968 }
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
1969
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1970 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
1971
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1972 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
1973 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
1974
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
1975
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1976 if(!data) {
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1977 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
1978 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
1979 }
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1980
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1981 data->pixbuf = pixbuf;
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1982
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1983 twitter_debug("new icon pixbuf = %p size = %d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1984 pixbuf,
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1985 gdk_pixbuf_get_rowstride(pixbuf) *
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
1986 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
1987
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
1988 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
1989 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
1990
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1991 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
1992
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1993 /* 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
1994 if(ensure_path_exists(dirname)) {
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1995 gchar *filename = NULL;
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1996 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
1997 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
1998 gchar **extp;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1999
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2000 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2001 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
2002 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
2003 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2004 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
2005 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
2006 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
2007 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
2008 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
2009 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2010 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2011 suffix = "jisko";
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2012 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2013 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2014 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
2015 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2016 }
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2017
159
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2018 /* 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
2019 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
2020 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
2021 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
2022 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
2023 g_remove(path);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2024
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2025 g_free(filename);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2026 g_free(path);
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2027 }
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2028
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2029 /* setup path */
b771ddf0b683 should remove old icon files when pidgin-twitter create new one.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 158
diff changeset
2030 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
2031 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
2032
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2033 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
2034 g_free(filename); filename = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2035
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2036 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
2037 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
2038
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
2039 data->mtime = time(NULL);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2040 }
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2041
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2042 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
2043 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
2044
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
2045 /* 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
2046 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
2047
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2048 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
2049 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
2050 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
2051 }
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
2052
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
2053 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
2054 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
2055 {
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
2056 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
2057
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2058 /* 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
2059 gchar *path = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2060 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
2061 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
2062 const gchar *suffix = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2063
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2064 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2065 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2066 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
2067 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
2068 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2069 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2070 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
2071 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
2072 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
2073 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
2074 suffix = "identica";
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2075 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
2076 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2077 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2078 suffix = "jisko";
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2079 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2080 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2081 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2082 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
2083 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2084 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2085
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
2086 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
2087 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
2088
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2089 /* 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
2090 * 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
2091 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
2092
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2093 /* if img has been registerd, just return */
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2094 if(data && data->pixbuf)
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2095 return;
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2096
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2097 /* 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
2098 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
2099 gchar *filename = NULL;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2100 gchar **extp;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2101
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2102 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
2103 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
2104 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
2105 filename, NULL);
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 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
2108
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
2109 /* 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
2110 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
2111 gchar *imgdata = NULL;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2112 size_t len;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2113 GError *err = NULL;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2114 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
2115 struct stat buf;
148
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 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
2118 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
2119 path, err->message);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2120 g_error_free(err);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2121 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2122
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
2123 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
2124 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
2125
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2126 pixbuf = make_scaled_pixbuf(imgdata, len);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2127 g_free(imgdata);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2128
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2129 if(pixbuf) {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2130 data->pixbuf = pixbuf;
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2131
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2132 twitter_debug("new icon pixbuf = %p size = %d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2133 pixbuf,
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2134 gdk_pixbuf_get_rowstride(pixbuf) *
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2135 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
2136
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2137 data->img_type = *extp;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2138
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2139 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
2140 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
2141 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2142
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2143 g_free(path);
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2144 return;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2145 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2146 } /* for */
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2147 } /* suffix */
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
2148
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2149 /* 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
2150 if(data->requested)
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2151 return;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2152 else
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2153 data->requested = TRUE;
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
2154
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2155 /* 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
2156 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2157 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
2158 url = g_strdup_printf("http://twitter.com/%s", user_name);
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
2159
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2160 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2161 case wassr_service:
149
0594a81d967d back to 64 pixel icon for wassr. 128 pixel ones are usually better, but sometimes would be smaller image with broad white border so that resulting image would be extremely small.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 148
diff changeset
2162 url = g_strdup_printf("http://wassr.jp/user/%s/profile_img.png.64",
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2163 user_name);
151
8ba0c0593621 img_type for wassr is always png. it should be set in request_icon().
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 150
diff changeset
2164 data->img_type = "png";
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2165 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
2166 case identica_service:
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2167 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
2168 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2169 case jisko_service:
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2170 url = g_strdup_printf("http://jisko.net/%s", user_name);
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2171 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2172 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2173 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
2174 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2175 }
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
2176
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
2177 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
2178 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
2179 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
2180 gotdata->service = service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2181
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
2182 /* gotdata will be released in got_icon_cb */
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
2183 if(service == identica_service ||
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2184 service == twitter_service ||
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2185 service == jisko_service) {
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2186 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
2187 got_page_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2188 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2189 else {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2190 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
2191 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2192 }
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
2193 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
2194
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
2195 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
2196 }
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
2197 }
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
2198
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
2199 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
2200 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
2201 {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2202 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
2203 GHashTable *hash = NULL;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2204
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2205 twitter_debug("called\n");
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2206
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2207 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2208 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2209 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
2210 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2211 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2212 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
2213 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
2214 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2215 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
2216 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2217 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2218 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2219 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2220 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2221 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
2222 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2223 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2224
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2225 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
2226 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
2227
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2228 /* 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
2229 if(!data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2230 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
2231 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
2232 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2233
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2234 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
2235 }
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2236
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2237 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
2238 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
2239 PurpleConversation *conv, PurpleMessageFlags flags,
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2240 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
2241 {
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2242 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
2243 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
2244 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
2245 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
2246
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2247 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
2248
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2249 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
2250 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
2251 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
2252 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2253
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2254 /* 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
2255 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
2256 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
2257
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2258 /* 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
2259 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
2260 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
2261 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
2262
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2263 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
2264 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2265
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
2266 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
2267 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
2268 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
2269 {
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 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
2271 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
2272 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
2273 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
2274 GtkTextIter insertion_point;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
2275 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
2276 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
2277 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
2278 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
2279 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
2280
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2281 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
2282
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2283 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
2284 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
2285 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
2286 }
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
2287
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
2288 /* 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
2289 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
2290 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
2291 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
2292 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
2293 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
2294 }
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
2295
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
2296 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
2297 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
2298
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
2299 /* 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
2300 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
2301 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
2302
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2303 /* 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
2304 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
2305 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
2306 &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
2307 linenumber);
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2308
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2309 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2310 case twitter_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2311 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
2312 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2313 case wassr_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2314 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
2315 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
2316 case identica_service:
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2317 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
2318 break;
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2319 case jisko_service:
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2320 hash = icon_hash[jisko_service];
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2321 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
2322 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
2323 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
2324 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2325 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2326
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
2327 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
2328 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
2329
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
2330 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
2331 /* 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
2332 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
2333 int days_thres = DAYS_TO_SECONDS(
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2334 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
2335
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
2336 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
2337 (data->mtime && ((time(NULL) - data->mtime)) > days_thres)) {
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2338 twitter_debug("count=%d mtime=%d\n",
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2339 data->use_count, (int)(data->mtime));
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2340 g_object_unref(data->pixbuf);
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2341 data->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
2342 data->use_count = 0;
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
2343 data->mtime = time(NULL); //xxx not good
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
2344 renew = TRUE;
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
2345 }
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
2346 }
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
2347
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2348 /* 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
2349 * request the icon */
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2350 if(!data || !data->pixbuf) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2351 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
2352 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
2353 text_buffer, NULL, &insertion_point, FALSE),
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2354 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
2355 /* 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
2356 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
2357 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
2358 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
2359 }
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
2360
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2361 /* 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
2362 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2363 gtk_text_buffer_insert_pixbuf(text_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2364 &insertion_point,
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2365 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
2366 data->use_count++;
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2367 }
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
2368 g_free(user_name); user_name = NULL;
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2369
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2370 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
2371 }
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
2372
118
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2373
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2374 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2375 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
2376 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2377 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
2378 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
2379 PurpleBuddy *b;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2380
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2381 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
2382
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2383 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
2384 return;
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 if (!list)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2387 return;
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 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
2390
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2391 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
2392 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
2393 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2394
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2395 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
2396
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2397 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
2398 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2399
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2400 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
2401 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
2402 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2403
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2404 b = (PurpleBuddy *)bnode;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2405
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2406 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
2407 const char *name;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2408 PurpleAccount *account;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2409 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
2410 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
2411 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
2412 PurpleConversation *gconv;
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2413 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
2414 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
2415 if (!gconv) {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2416 gconv = purple_conversation_new(
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2417 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
2418 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2419 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2420 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2421 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2422 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2423 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2424 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2425
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2426 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2427 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
2428 gpointer data)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2429 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2430 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
2431 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
2432 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2433
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
2434 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2435 load_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2436 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2437 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2438
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2439 /* connect to signal */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2440 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
2441 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
2442 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
2443 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
2444 purple_signal_connect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2445 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2446 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
2447 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
2448 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
2449 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
2450 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
2451
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
2452 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
2453 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
2454 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
2455 "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
2456 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
2457 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
2458 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
2459
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2460
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
2461 /* 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
2462 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
2463 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
2464 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
2465 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
2466 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
2467 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
2468 regp[USER_FORMATTED] = g_regex_new(P_USER_FORMATTED, G_REGEX_RAW, 0, NULL);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2469 regp[CHANNEL] = g_regex_new(P_CHANNEL, 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
2470 regp[IMAGE_IDENTICA] = g_regex_new(P_IMAGE_IDENTICA, 0, 0, NULL);
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
2471 regp[IMAGE_TWITTER] = g_regex_new(P_IMAGE_TWITTER, 0, 0, NULL);
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2472 regp[IMAGE_JISKO] = g_regex_new(P_IMAGE_JISKO, 0, 0, NULL);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2473
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2474 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
2475 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
2476 g_free, NULL);
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2477 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2478
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2479 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
2480 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
2481
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2482
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2483 /* 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
2484 if(purple_prefs_get_bool(OPT_COUNTER)) {
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2485 attach_to_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2486 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2487
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2488 /* allocate wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2489 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
2490
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2491 /* allocate identica_post */
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2492 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
2493
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2494 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2495 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2496
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2497 static void
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2498 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
2499 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2500 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
2501
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2502 if(!data)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2503 return;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2504
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2505 if(data->fetch_data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2506 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
2507 data->fetch_data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2508 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2509
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2510 if(data->request_list) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2511 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
2512 }
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2513 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2514
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2515 static void
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2516 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
2517 {
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2518 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
2519 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
2520 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2521
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2522 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2523 unload_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2524 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2525 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2526
39
2ac81c0afb53 - new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 38
diff changeset
2527 twitter_debug("called\n");
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2528
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2529 /* disconnect from signal */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2530 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2531 "writing-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2532 plugin, PURPLE_CALLBACK(writing_im_cb));
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2533 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2534 "sending-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2535 plugin, PURPLE_CALLBACK(sending_im_cb));
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2536 purple_signal_disconnect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2537 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2538 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
2539 purple_signal_disconnect(pidgin_conversations_get_handle(),
135
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2540 "displaying-im-msg",
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2541 plugin, PURPLE_CALLBACK(displaying_im_cb));
cae8d5dd24d0 disconnect displaying_im_cb when unload.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 134
diff changeset
2542 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
2543 "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
2544 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
2545 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
2546 "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
2547 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
2548 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
2549 "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
2550 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
2551 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
2552 "signed-on",
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2553 plugin, PURPLE_CALLBACK(signed_on_cb));
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 /* unreference regp */
196
b436d72447e8 make use of got_page_cb to obtain icons for jisko.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 194
diff changeset
2556 for(i = 0; i < NUM_REGPS; i++) {
122
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
2557 g_regex_unref(regp[i]);
a37dd74c8355 - adapted to identi.ca changes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 121
diff changeset
2558 }
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
2559
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2560 /* 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
2561 /* cancel request that has not been finished yet */
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2562 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
2563 /* 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
2564 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
2565 (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
2566 /* 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
2567 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
2568 }
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2569
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2570 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
2571
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2572 /* detach from twitter window */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2573 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2574
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2575 /* free wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2576 g_free(wassr_post);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2577 wassr_post = NULL;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2578
138
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2579 /* free identica_post */
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2580 g_free(identica_post);
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2581 identica_post = NULL;
eaf5d2c4ada0 temporal fix for identi.ca problems:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 137
diff changeset
2582
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2583 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2584 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2585
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2586 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2587 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
2588 gconstpointer val, gpointer data)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2589 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2590 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
2591
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2592 if(enabled)
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
2593 attach_to_window();
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2594 else
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2595 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2596 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2597
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2598 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2599 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
2600 {
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2601 icon_data *data = (icon_data *)value;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2602
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2603 g_return_if_fail(data != NULL);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2604
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2605 g_object_unref(data->pixbuf);
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2606 data->pixbuf = NULL;
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2607 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2608
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2609 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2610 icon_size_prefs_cb(const char *name, PurplePrefType type,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2611 gconstpointer val, gpointer data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2612 {
148
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2613 int i;
4e9d0fd93fb6 - in saving icon file for twitter, proper extension is used.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 147
diff changeset
2614
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2615 /* invalidate icon cache */
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2616 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
2617 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
2618 (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
2619 }
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2620 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2621
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2622 static void
156
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2623 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
2624 gconstpointer val, gpointer data)
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2625 {
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2626 /* remove idle func */
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2627 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
2628
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2629 /* add idle func */
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2630 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
2631 source.id = g_timeout_add_seconds(
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2632 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
2633 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
2634 }
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2635 }
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2636
e65f81211340 now interval setting from UI takes effect immediately.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 155
diff changeset
2637 static void
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2638 text_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2639 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2640 const gchar *text;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2641 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
2642 text = gtk_entry_get_text(GTK_ENTRY(data));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2643 purple_prefs_set_string(pref, text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2644 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2645
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2646 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2647 bool_toggled_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2648 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2649 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
2650 gboolean value = purple_prefs_get_bool(pref);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2651 purple_prefs_set_bool(pref, !value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2652 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2653
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2654 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2655 spin_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2656 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2657 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
2658
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2659 twitter_debug("called\n");
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2660
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2661 purple_prefs_set_int(pref,
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2662 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
2663 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2664
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2665 static void
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2666 combo_changed_cb(gpointer *data)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2667 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2668 gint position;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2669 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
2670 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
2671 purple_prefs_set_int(pref, position);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2672 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2673
157
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2674 static void
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2675 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
2676 {
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2677 PurplePlugin *plugin = (PurplePlugin *)data;
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2678
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2679 purple_prefs_disconnect_by_handle(plugin);
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2680 }
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2681
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2682 static GtkWidget *
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2683 prefs_get_frame(PurplePlugin *plugin)
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2684 {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2685 GtkBuilder *builder;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2686 GError *err = NULL;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2687 gchar *filename;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2688 GtkWidget *window, *notebook, *e;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2689 const gchar *text;
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2690 GtkSpinButton *spin;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2691 GtkObject *adjust;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2692 gint value;
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2693
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2694 builder = gtk_builder_new();
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2695
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
2696 #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
2697 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
2698 "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
2699 #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
2700 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
2701 "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
2702 #endif
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2703 gtk_builder_add_from_file(builder, filename, &err);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2704 if(err) {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2705 twitter_debug("%s\n", err->message);
167
10516b7b05a9 - ceased use of purple_imgstore_*
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 166
diff changeset
2706 g_free(filename);
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2707 return NULL;
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
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2710 g_free(filename);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2711
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2712 gtk_builder_connect_signals(builder, NULL);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2713
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2714 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
2715 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
2716
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2717 gtk_container_remove(GTK_CONTAINER(window), notebook);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2718
157
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2719 g_signal_connect(notebook, "destroy",
fbe526b20885 revised handler for destroy signal in config dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 156
diff changeset
2720 G_CALLBACK(disconnect_prefs_cb), plugin);
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2721
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2722
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2723 /**********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2724 /* connect to signals */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2725 /**********************/
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2726
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2727 /****************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2728 /* account page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2729 /****************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2730 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
2731 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
2732 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
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
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2737 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
2738 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
2739 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
2740 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2741 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2742 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2743
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2744 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
2745 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
2746 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
2747 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2748 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2749 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2750
194
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2751 e = GTK_WIDGET(gtk_builder_get_object (builder, "account_jisko"));
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2752 g_object_set_data(G_OBJECT(e), "pref", OPT_SCREEN_NAME_JISKO);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2753 text = purple_prefs_get_string(OPT_SCREEN_NAME_JISKO);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2754 gtk_entry_set_text(GTK_ENTRY(e), text);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2755 g_signal_connect(e, "changed",
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2756 G_CALLBACK(text_changed_cb), &e);
1495b478680b tentative support for jisko.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 183
diff changeset
2757
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2758 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
2759 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
2760 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
2761 purple_prefs_get_bool(OPT_API_BASE_POST));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2762 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2763 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
2764 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
2765 api_base_post_cb, NULL);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2766
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, "account_api_password"));
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_PASSWORD_TWITTER);
130
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2769
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2770 gtk_entry_set_visibility(GTK_ENTRY(e), FALSE);
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2771 if (gtk_entry_get_invisible_char(GTK_ENTRY(e)) == '*')
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2772 gtk_entry_set_invisible_char(GTK_ENTRY(e), PIDGIN_INVISIBLE_CHAR);
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2773
30f3695bb969 made password invisible.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 129
diff changeset
2774 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
2775 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2776 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2777 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2778
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2779
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2780 /* interval spin */
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2781 e = GTK_WIDGET(gtk_builder_get_object (builder,
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2782 "account_api_get_interval_spin"));
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2783 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
2784
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2785 spin = GTK_SPIN_BUTTON(e);
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2786
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2787 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
2788 twitter_debug("spin value = %d\n", value);
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2789
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2790 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
2791 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
2792 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
2793
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2794 if(value == 0) {
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2795 value = TWITTER_DEFAULT_INTERVAL;
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2796 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
2797 }
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2798 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
2799 g_signal_connect(e, "value-changed",
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2800 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
2801 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
2802 interval_prefs_cb, NULL);
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2803
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2804
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2805
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2806 /********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2807 /* translation page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2808 /********************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2809 e = GTK_WIDGET(gtk_builder_get_object (builder, "translation_recipient"));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2810 g_object_set_data(G_OBJECT(e), "pref", OPT_TRANSLATE_RECIPIENT);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2811 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
2812 purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2813 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2814 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2815
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2816 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
2817 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
2818 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
2819 purple_prefs_get_bool(OPT_TRANSLATE_SENDER));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2820 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2821 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2822
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2823 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
2824 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
2825 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
2826 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2827 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2828 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2829
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2830
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2831
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2832 /*************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2833 /* icon page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2834 /*************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2835 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
2836 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
2837 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
2838 purple_prefs_get_bool(OPT_SHOW_ICON));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2839 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2840 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2841
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2842 /* icon size spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2843 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
2844 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
2845
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2846 spin = GTK_SPIN_BUTTON(e);
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 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
2849 twitter_debug("spin value = %d\n", value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2850
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2851 adjust = gtk_adjustment_new(value, 16, 128, 4, 4, 4);
128
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2852 gtk_spin_button_set_adjustment(spin, GTK_ADJUSTMENT(adjust));
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2853 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
2854
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2855 if(value == 0) {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2856 value = DEFAULT_ICON_SIZE;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2857 purple_prefs_set_int(OPT_ICON_SIZE, value);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2858 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2859 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
2860 g_signal_connect(e, "value-changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2861 G_CALLBACK(spin_changed_cb), &e);
128
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2862 purple_prefs_connect_callback(plugin, OPT_ICON_SIZE,
249174fdd63d minor fixes.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 126
diff changeset
2863 icon_size_prefs_cb, NULL);
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2864
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2865 /* enable update */
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2866 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
2867 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
2868 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
2869 purple_prefs_get_bool(OPT_UPDATE_ICON));
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2870 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2871 G_CALLBACK(bool_toggled_cb), &e);
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2872
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2873 /* max count spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2874 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
2875 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
2876
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2877 spin = GTK_SPIN_BUTTON(e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2878
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2879 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
2880 twitter_debug("spin value = %d\n", value);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2881
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2882 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
2883 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
2884 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
2885
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2886 if(value == 0) {
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2887 value = DEFAULT_ICON_MAX_COUNT;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2888 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
2889 }
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2890 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
2891 g_signal_connect(e, "value-changed",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2892 G_CALLBACK(spin_changed_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2893
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2894
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2895 /* max days spin */
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2896 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
2897 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
2898
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2899 spin = GTK_SPIN_BUTTON(e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2900
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2901 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
2902 twitter_debug("spin value = %d\n", value);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2903
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2904 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
2905 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
2906 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
2907
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2908 if(value == 0) {
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2909 value = DEFAULT_ICON_MAX_DAYS;
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2910 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
2911 }
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2912 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
2913 g_signal_connect(e, "value-changed",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2914 G_CALLBACK(spin_changed_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2915
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2916
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2917
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2918 /**************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2919 /* sound page */
164
5043d4d9766d clean up.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 162
diff changeset
2920 /**************/
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2921 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
2922 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
2923 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
2924 purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2925 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2926 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2927
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2928 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
2929 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
2930 text = purple_prefs_get_string(OPT_USERLIST_RECIPIENT);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2931 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2932 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2933 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2934
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2935 /* recipient combobox */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2936 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
2937 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
2938 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2939 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
2940 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2941 G_CALLBACK(combo_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2942
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2943
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2944
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2945 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
2946 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
2947 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
2948 purple_prefs_get_bool(OPT_PLAYSOUND_SENDER));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2949 g_signal_connect(e, "toggled",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2950 G_CALLBACK(bool_toggled_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2951
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2952 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
2953 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
2954 text = purple_prefs_get_string(OPT_USERLIST_SENDER);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2955 gtk_entry_set_text(GTK_ENTRY(e), text);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2956 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2957 G_CALLBACK(text_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2958
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2959 /* sender combobox */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2960 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
2961 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
2962 purple_prefs_get_int(OPT_SOUNDID_RECIPIENT));
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2963 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
2964 g_signal_connect(e, "changed",
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2965 G_CALLBACK(combo_changed_cb), &e);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2966
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
2967
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2968
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2969
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2970 /****************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2971 /* utility page */
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
2972 /****************/
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2973 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
2974 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
2975 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
2976 purple_prefs_get_bool(OPT_COUNTER));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2977 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2978 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2979 purple_prefs_connect_callback(plugin, OPT_COUNTER, /* xxx */
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2980 counter_prefs_cb, NULL);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2981
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2982 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
2983 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
2984 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
2985 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2986 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2987 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2988
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2989 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
2990 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
2991 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
2992 purple_prefs_get_bool(OPT_SUPPRESS_OOPS));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2993 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2994 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2995
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
2996 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
2997 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
2998 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
2999 purple_prefs_get_bool(OPT_PREVENT_NOTIFICATION));
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3000 g_signal_connect(e, "toggled",
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3001 G_CALLBACK(bool_toggled_cb), &e);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3002
168
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
3003 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
3004 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
3005 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e),
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
3006 purple_prefs_get_bool(OPT_LOG_OUTPUT));
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
3007 g_signal_connect(e, "toggled",
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
3008 G_CALLBACK(bool_toggled_cb), &e);
56e3873e58a8 made log output configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 167
diff changeset
3009
153
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3010
155
0921655b4ae1 added UI for configuring retrieve interval.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 154
diff changeset
3011 /* all done */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3012 gtk_widget_show_all(notebook);
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3013 return notebook;
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3014 }
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3015
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3016 static PidginPluginUiInfo ui_info = {
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3017 prefs_get_frame,
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3018 0, /* page number - reserved */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3019 NULL, /* reserved 1 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3020 NULL, /* reserved 2 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3021 NULL, /* reserved 3 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3022 NULL /* reserved 4 */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3023 };
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3024
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3025 static PurplePluginInfo info = {
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3026 PURPLE_PLUGIN_MAGIC,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3027 PURPLE_MAJOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3028 PURPLE_MINOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3029 PURPLE_PLUGIN_STANDARD, /**< type */
147
3abee459c81c removed old prefs stuff.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 146
diff changeset
3030 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
3031 0, /**< flags */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
3032 NULL, /**< deps */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3033 PURPLE_PRIORITY_DEFAULT, /**< priority */
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
3034 PLUGIN_ID, /**< id */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3035 "Pidgin-Twitter", /**< name */
183
64007ccd2039 tweaked plugin info
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 178
diff changeset
3036 "0.7.0", /**< version */
76
63bd9ca28be0 - added nosuke and iratqq to the authors.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 74
diff changeset
3037 "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
3038 "provides useful features for twitter", /** desc */
183
64007ccd2039 tweaked plugin info
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 178
diff changeset
3039 "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
3040 "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
3041 load_plugin, /**< load */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
3042 unload_plugin, /**< unload */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3043 NULL, /**< destroy */
126
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3044 &ui_info, /**< ui_info */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3045 NULL, /**< extra_info */
bac987852e66 switched to native gtk preferences dialog.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 125
diff changeset
3046 NULL, /**< pref info */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3047 NULL
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3048 };
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3049
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
3050 static void
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
3051 init_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3052 {
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3053 char *dirname = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3054
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3055 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
3056 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
3057 if(dirname)
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
3058 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
3059 g_free(dirname);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3060
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3061 /* add plugin preferences */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
3062 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
3063 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
3064 purple_prefs_add_bool(OPT_TRANSLATE_SENDER, TRUE);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
3065 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
3066 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
3067
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
3068 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
3069 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
3070 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
3071 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
3072 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
3073 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
3074
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
3075 purple_prefs_add_bool(OPT_COUNTER, TRUE);
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
3076 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
3077 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
3078
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
3079 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
3080 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
3081 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
3082 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
3083 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
3084 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
3085
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3086 purple_prefs_add_bool(OPT_SHOW_ICON, TRUE);
07cedffb1c63 implemented UI for configuring icon update.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 152
diff changeset
3087 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
3088 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
3089 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
3090 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
3091 purple_prefs_add_bool(OPT_LOG_OUTPUT, FALSE);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3092 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3093
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3094 PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info)