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