annotate pidgin-twitter.c @ 118:8b097fcb9243

Add function that opens twitter's conversation window automatically when the API-based post is enabled.
author Konosuke Watanabe <sasugaanija@gmail.com>
date Thu, 17 Jul 2008 23:53:15 +0900
parents 423dc1a670c9
children 0c4a83f734cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
1 /*
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2 * Pidgin-Twitter plugin.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
3 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
5 * modify it under the terms of the GNU General Public License as
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
6 * published by the Free Software Foundation; either version 2 of the
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
7 * License, or (at your option) any later version.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
8 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful, but
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
12 * General Public License for more details.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
13 *
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
15 * along with this program; if not, write to the Free Software
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
17 * 02111-1307, USA.
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
18 */
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
19 #define PURPLE_PLUGINS 1
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
20
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
21 #include "pidgin-twitter.h"
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
22 #include <gdk-pixbuf/gdk-pixbuf.h>
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
23
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
24 /* globals */
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
25 static GRegex *regp[9];
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
26 static gboolean suppress_oops = FALSE;
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
27 static GHashTable *icon_data_by_user = NULL; // twitter
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
28 static GHashTable *icon_data_by_user2 = NULL; // wassr
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
29 static GHashTable *icon_data_by_user3 = NULL; // identi.ca
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;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
31
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
32 #define WASSR_POST_LEN (255 * 4)
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
33 static gchar *wassr_post = NULL;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
34
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
35 typedef struct _icon_data {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
36 gint icon_id; // image id
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
37 gboolean requested; // TRUE if download icon has been requested
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
38 GList *request_list; // marker list
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
39 PurpleUtilFetchUrlData *fetch_data; // icon fetch data
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
40 } icon_data;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
41
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
42 enum {
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
43 unknown_service = 0,
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
44 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
45 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
46 identica_service
83
15f4886720e4 build fix
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 82
diff changeset
47 };
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
48
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
49 typedef struct _eval_data {
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
50 gint which;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
51 gint service;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
52 } eval_data;
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
53
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
54 typedef struct _got_icon_data {
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
55 gchar *user_name;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
56 gint service;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
57 } got_icon_data;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
58
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
59 #define TWITTER_STATUS_POST "POST /statuses/update.xml HTTP/1.0\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
60 "Host: twitter.com\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
61 "User-Agent: Pidgin-Twitter\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
62 "Authorization: Basic %s\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
63 "Content-Length: %d\r\n\r\n"
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
64
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
65 #define TWITTER_STATUS_FORMAT "status=%s"
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
66 #define TWITTER_STATUS_TERMINATOR "\r\n\r\n"
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
67
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
68 #define TWITTER_BASE_URL "http://twitter.com"
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
69
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
70 #define TWITTER_STATUS_GET "GET /statuses/friends_timeline.xml HTTP/1.0\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
71 "Host: twitter.com\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
72 "User-Agent: Pidgin-Twitter\r\n" \
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
73 "Authorization: Basic %s\r\n"
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
74
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
75
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
76
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
77
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
78
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
79
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
80
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
81 /* xml parser*/
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
82 #include <libxml/tree.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
83 #include <libxml/parser.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
84 #include <libxml/xmlreader.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
85 #include <libxml/xpath.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
86 #include <libxml/xpathInternals.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
87 #include <libxml/uri.h>
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
88
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
89 typedef struct _status {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
90 time_t time;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
91 guint id;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
92 gchar *created_at;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
93 gchar *text;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
94 gchar *screen_name;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
95 gchar *profile_image_url;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
96 } status_t;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
97
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
98 GList *stlist = NULL;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
99
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
100 static void
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
101 parse_user(xmlNode *user, status_t *st)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
102 {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
103 xmlNode *nptr;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
104
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
105 for(nptr = user->children; nptr != NULL; nptr = nptr->next) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
106 if(nptr->type == XML_ELEMENT_NODE) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
107 if(!xmlStrcmp(nptr->name, (xmlChar *)"screen_name")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
108 gchar *str = (gchar *)xmlNodeGetContent(nptr);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
109 st->screen_name = g_strdup(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
110 xmlFree(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
111 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
112 else if(!xmlStrcmp(nptr->name, (xmlChar *)"profile_image_url")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
113 gchar *str = (gchar *)xmlNodeGetContent(nptr);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
114 st->profile_image_url = g_strdup(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
115 xmlFree(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
116 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
117 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
118 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
119 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
120
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
121
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
122 static void
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
123 parse_status(xmlNode *status)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
124 {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
125 xmlNode *nptr;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
126
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
127 status_t *st = g_new0(status_t, 1);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
128
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
129 stlist = g_list_prepend(stlist, st);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
130
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
131 for(nptr = status->children; nptr != NULL; nptr = nptr->next) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
132 if(nptr->type == XML_ELEMENT_NODE) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
133 if(!xmlStrcmp(nptr->name, (xmlChar *)"created_at")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
134 gchar *str = (gchar *)xmlNodeGetContent(nptr);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
135 st->created_at = g_strdup(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
136 xmlFree(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
137 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
138 else if(!xmlStrcmp(nptr->name, (xmlChar *)"id")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
139 gchar *str = (gchar *)xmlNodeGetContent(nptr);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
140 st->id = atoi(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
141 xmlFree(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
142 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
143 else if(!xmlStrcmp(nptr->name, (xmlChar *)"text")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
144 gchar *str = (gchar *)xmlNodeGetContent(nptr);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
145 st->text = g_strdup(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
146 xmlFree(str);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
147 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
148 else if(!xmlStrcmp(nptr->name, (xmlChar *)"user")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
149 parse_user(nptr, st);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
150 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
151 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
152 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
153 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
154
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
155
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
156 static void
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
157 get_status_with_api_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
158 const gchar *url_text, size_t len,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
159 const gchar *error_message)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
160
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
161 {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
162 xmlDocPtr doc;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
163 xmlNode *nptr, *nptr2;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
164 static guint lastid = 0;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
165 g_return_if_fail(url_text != NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
166
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
167 PurpleConversation *conv = (PurpleConversation *)user_data;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
168
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
169 if(!conv)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
170 return;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
171
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
172 const gchar *start = strstr(url_text, "<?xml");
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
173
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
174 doc = xmlRecoverMemory(start, len);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
175 if(doc == NULL)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
176 return;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
177
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
178 for(nptr = doc->children; nptr != NULL; nptr = nptr->next) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
179 if(nptr->type == XML_ELEMENT_NODE &&
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
180 !xmlStrcmp(nptr->name, (xmlChar *)"statuses")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
181
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
182 for(nptr2 = nptr->children; nptr2 != NULL; nptr2 = nptr2->next) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
183 if(nptr2->type == XML_ELEMENT_NODE &&
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
184 !xmlStrcmp(nptr2->name, (xmlChar *)"status")) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
185 parse_status(nptr2);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
186 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
187 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
188 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
189 } /* for */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
190
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
191 /* process stlist */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
192 GList *stp;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
193
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
194 for(stp = stlist; stp; stp=stp->next) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
195 status_t *st = (status_t *)stp->data;
117
423dc1a670c9 try to remove duplication of message which posted by myself.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 116
diff changeset
196 if(st->id > lastid &&
423dc1a670c9 try to remove duplication of message which posted by myself.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 116
diff changeset
197 strcmp(st->screen_name,
423dc1a670c9 try to remove duplication of message which posted by myself.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 116
diff changeset
198 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER))) {
423dc1a670c9 try to remove duplication of message which posted by myself.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 116
diff changeset
199
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
200 gchar *msg = NULL;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
201
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
202 msg = g_strdup_printf("%s: %s\n", st->screen_name, st->text);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
203 purple_conv_im_write(conv->u.im,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
204 "twitter@twitter.com",
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
205 msg,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
206 PURPLE_MESSAGE_RECV,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
207 st->time);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
208 lastid = st->id;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
209
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
210 g_free(msg);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
211 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
212
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
213 g_free(st->created_at);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
214 g_free(st->text);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
215 g_free(st->screen_name);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
216 g_free(st->profile_image_url);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
217 g_free(stp->data);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
218 stp->data = NULL;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
219 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
220
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
221 stlist = g_list_remove_all(stlist, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
222 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
223
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
224
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
225 /* api based get */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
226 static gboolean
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
227 get_status_with_api(gpointer data)
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
228 {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
229 /* fetch friends time line */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
230 char *request, *header;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
231 char *basic_auth, *basic_auth_encoded;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
232
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
233 PurpleConversation *conv = (PurpleConversation *)data;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
234 if(!conv)
116
dd27aeead474 fix reversed logic
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 115
diff changeset
235 return FALSE; //cease fetch
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
236
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
237 const char *screen_name =
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
238 purple_prefs_get_string(OPT_SCREEN_NAME_TWITTER);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
239 const char *password =
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
240 purple_prefs_get_string(OPT_PASSWORD_TWITTER);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
241
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
242 if (!screen_name || !password || !screen_name[0] || !password[0]) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
243 twitter_debug("screen_name or password is empty\n");
116
dd27aeead474 fix reversed logic
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 115
diff changeset
244 return TRUE;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
245 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
246
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
247 /* auth */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
248 basic_auth = g_strdup_printf("%s:%s", screen_name, password);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
249 basic_auth_encoded = purple_base64_encode((unsigned char *)basic_auth,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
250 strlen(basic_auth));
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
251 g_free(basic_auth);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
252
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
253 /* header */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
254 header = g_strdup_printf(TWITTER_STATUS_GET, basic_auth_encoded);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
255 request = g_strconcat(header, TWITTER_STATUS_TERMINATOR, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
256
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
257 /* invoke fetch */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
258 purple_util_fetch_url_request(TWITTER_BASE_URL, FALSE,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
259 NULL, TRUE, request, TRUE,
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
260 get_status_with_api_cb, data);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
261
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
262 g_free(header);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
263 g_free(basic_auth_encoded);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
264 g_free(request);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
265
116
dd27aeead474 fix reversed logic
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 115
diff changeset
266 return TRUE;
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
267 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
268
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
269
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
270
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
271
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
272
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
273
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
274
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
275
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
276
49
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
277 /* this function is a modified clone of purple_markup_strip_html() */
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
278 static char *
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
279 strip_html_markup(const char *str)
34
44ffbd056f33 added patch to strip excessive hyper link on @username when it copied and pasted from message window. patch by mikanbako (maoutwo@gmail.com).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 32
diff changeset
280 {
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
281 int i, j, k, entlen;
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
282 gboolean visible = TRUE;
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
283 gboolean closing_td_p = FALSE;
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
284 gchar *str2;
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
285 const gchar *cdata_close_tag = NULL, *ent;
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
286 gchar *href = 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
287 int href_st = 0;
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
288
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
289 if(!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
290 return 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
291
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
292 str2 = g_strdup(str);
34
44ffbd056f33 added patch to strip excessive hyper link on @username when it copied and pasted from message window. patch by mikanbako (maoutwo@gmail.com).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 32
diff changeset
293
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
294 for (i = 0, j = 0; str2[i]; i++)
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
295 {
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
296 if (str2[i] == '<')
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
297 {
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
298 if (cdata_close_tag)
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
299 {
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
300 /* Note: Don't even assume any other tag is a tag in CDATA */
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
301 if (g_ascii_strncasecmp(str2 + i, cdata_close_tag,
49
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
302 strlen(cdata_close_tag)) == 0)
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
303 {
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
304 i += strlen(cdata_close_tag) - 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
305 cdata_close_tag = 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
306 }
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
307 continue;
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
308 }
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
309 else if (g_ascii_strncasecmp(str2 + i, "<td", 3) == 0 && closing_td_p)
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
310 {
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
311 str2[j++] = '\t';
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
312 visible = TRUE;
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
313 }
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
314 else if (g_ascii_strncasecmp(str2 + i, "</td>", 5) == 0)
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
315 {
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
316 closing_td_p = TRUE;
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
317 visible = FALSE;
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
318 }
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
319 else
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
320 {
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
321 closing_td_p = FALSE;
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
322 visible = TRUE;
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
323 }
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
324
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
325 k = i + 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
326
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
327 if(g_ascii_isspace(str2[k]))
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
328 visible = TRUE;
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
329 else if (str2[k])
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
330 {
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
331 /* Scan until we end the tag either implicitly (closed start
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
332 * tag) or explicitly, using a sloppy method (i.e., < or >
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
333 * inside quoted attributes will screw us up)
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
334 */
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
335 while (str2[k] && str2[k] != '<' && str2[k] != '>')
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
336 {
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
337 k++;
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
338 }
42
68db38b5b401 fixed changeset 41:0a81ccfa1941
mikanbako <maoutwo@gmail.com>
parents: 41
diff changeset
339
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
340 /* If we've got an <a> tag with an href, save the address
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
341 * to print later. */
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
342 if (g_ascii_strncasecmp(str2 + i, "<a", 2) == 0 &&
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
343 g_ascii_isspace(str2[i+2]))
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
344 {
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
345 int st; /* start of href, inclusive [ */
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
346 int end; /* end of href, exclusive ) */
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
347 char delim = ' ';
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
348 /* Find start of href */
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
349 for (st = i + 3; st < k; st++)
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
350 {
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
351 if (g_ascii_strncasecmp(str2+st, "href=", 5) == 0)
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
352 {
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
353 st += 5;
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
354 if (str2[st] == '"' || str2[st] == '\'')
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
355 {
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
356 delim = str2[st];
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
357 st++;
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
358 }
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
359 break;
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
360 }
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
361 }
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
362 /* find end of address */
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
363 for (end = st; end < k && str2[end] != delim; end++)
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
364 {
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
365 /* All the work is done in the loop construct above. */
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
366 }
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
367
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
368 /* If there's an address, save it. If there was
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
369 * already one saved, kill it. */
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
370 if (st < k)
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
371 {
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
372 char *tmp;
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
373 g_free(href);
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
374 tmp = g_strndup(str2 + st, end - st);
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
375 href = purple_unescape_html(tmp);
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
376 g_free(tmp);
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
377 href_st = j;
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
378 }
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
379 }
42
68db38b5b401 fixed changeset 41:0a81ccfa1941
mikanbako <maoutwo@gmail.com>
parents: 41
diff changeset
380
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
381 /* Check for tags which should be mapped to newline */
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
382 else if (g_ascii_strncasecmp(str2 + i, "<p>", 3) == 0
49
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
383 || g_ascii_strncasecmp(str2 + i, "<tr", 3) == 0
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
384 || g_ascii_strncasecmp(str2 + i, "<br", 3) == 0
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
385 || g_ascii_strncasecmp(str2 + i, "<hr", 3) == 0
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
386 || g_ascii_strncasecmp(str2 + i, "<li", 3) == 0
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
387 || g_ascii_strncasecmp(str2 + i, "<div", 4) == 0
82b2b3767311 fixed indentation of strip_html_markup()
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 48
diff changeset
388 || g_ascii_strncasecmp(str2 + i, "</table>", 8) == 0)
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
389 {
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
390 str2[j++] = '\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
391 }
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
392 else if (g_ascii_strncasecmp(str2 + i, "<script", 7) == 0)
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
393 {
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
394 cdata_close_tag = "</script>";
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
395 }
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
396 else if (g_ascii_strncasecmp(str2 + i, "<style", 6) == 0)
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
397 {
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
398 cdata_close_tag = "</style>";
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
399 }
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
400 /* Update the index and continue checking after the tag */
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
401 i = (str2[k] == '<' || str2[k] == '\0')? k - 1: k;
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
402 continue;
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
403 }
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
404 }
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
405 else if (cdata_close_tag)
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
406 {
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
407 continue;
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
408 }
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
409 else if (!g_ascii_isspace(str2[i]))
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
410 {
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
411 visible = TRUE;
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
412 }
39
2ac81c0afb53 - new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 38
diff changeset
413
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
414 if (str2[i] == '&' &&
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
415 (ent = purple_markup_unescape_entity(str2 + i, &entlen)) != 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
416 {
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
417 while (*ent)
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
418 str2[j++] = *ent++;
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
419 i += entlen - 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
420 continue;
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
421 }
34
44ffbd056f33 added patch to strip excessive hyper link on @username when it copied and pasted from message window. patch by mikanbako (maoutwo@gmail.com).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 32
diff changeset
422
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
423 if (visible)
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
424 str2[j++] = g_ascii_isspace(str2[i])? ' ': str2[i];
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
425 }
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
426
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
427 g_free(href);
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
428
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
429 str2[j] = '\0';
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
430
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
431 return str2;
34
44ffbd056f33 added patch to strip excessive hyper link on @username when it copied and pasted from message window. patch by mikanbako (maoutwo@gmail.com).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 32
diff changeset
432 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
433
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
434 /* 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
435 static gboolean
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
436 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
437 {
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
438 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
439 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
440 return FALSE;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
441 }
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
442
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
443 return TRUE;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
444 }
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
445
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
446
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
447 /**********************/
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
448 /* our implementation */
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
449 /**********************/
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
450 static void
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
451 escape(gchar **str)
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
452 {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
453 GMatchInfo *match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
454 gchar *newstr = NULL, *match = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
455 gboolean flag = FALSE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
456
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
457 /* search genuine command */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
458 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
459 while(g_match_info_matches(match_info)) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
460 match = g_match_info_fetch(match_info, 1);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
461 twitter_debug("command = %s\n", match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
462 g_free(match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
463 g_match_info_next(match_info, NULL);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
464 flag = TRUE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
465 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
466 g_match_info_free(match_info);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
467 match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
468
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
469 if(flag)
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
470 return;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
471
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
472 /* if not found, check pseudo command */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
473 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
474 while(g_match_info_matches(match_info)) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
475 match = g_match_info_fetch(match_info, 1);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
476 twitter_debug("pseudo = %s\n", match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
477 g_free(match);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
478 g_match_info_next(match_info, NULL);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
479 flag = TRUE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
480 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
481 g_match_info_free(match_info);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
482 match_info = NULL;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
483
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
484 /* if there is pseudo one, escape it */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
485 if(flag) {
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
486 /* put ". " to the beginning of buffer */
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
487 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
488 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
489 g_free(*str);
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
490 *str = newstr;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
491 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
492 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
493
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
494 static void
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
495 strip_markup(gchar **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
496 {
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
497 char *plain;
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
498
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
499 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
500 g_free(*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
501 *str = plain;
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
502 }
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
503
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
504
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
505 typedef struct twitter_message {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
506 PurpleAccount *account;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
507 char *status;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
508 time_t time;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
509 } twitter_message_t;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
510
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
511 static void
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
512 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
513 const gchar *url_text, size_t len,
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
514 const gchar *error_message)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
515 {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
516 twitter_message_t *tm = (struct twitter_message *)user_data;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
517 gchar *msg = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
518 char *p1 = NULL, *p2 = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
519 int error = 1;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
520 PurpleConversation *conv;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
521
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
522 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
523 "twitter@twitter.com",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
524 tm->account);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
525 if (!conv) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
526 twitter_debug("failed to get conversation\n");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
527 goto fin;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
528 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
529
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
530 if (error_message) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
531 /* connection failed or something */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
532 msg = g_strdup_printf("Local error: %s", error_message);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
533 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
534 int code = -1;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
535
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
536 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
537 || 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
538
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
539 p1 = strchr(url_text, ' ');
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
540
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
541 if (p1) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
542 p1++;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
543 p2 = strchr(p1, ' ');
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
544 if (p2)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
545 p2++;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
546 else
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
547 p2 = NULL;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
548 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
549 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
550
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
551 code = atoi(p1);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
552
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
553 if (code == 200) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
554 error = 0;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
555 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
556 switch (code) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
557 case 400:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
558 msg = g_strdup("Invalid request. Too many updates?");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
559 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
560 case 401:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
561 msg = g_strdup("Authorization failed.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
562 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
563 case 403:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
564 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
565 "for some reason.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
566 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
567 case 404:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
568 msg = g_strdup("Requested URI is not found.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
569 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
570 case 500:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
571 msg = g_strdup("Server error.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
572 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
573 case 502:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
574 msg = g_strdup("Twitter is down or under maintenance.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
575 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
576 case 503:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
577 msg = g_strdup("Twitter is extremely crowded. "
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
578 "Try again later.");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
579 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
580 default:
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
581 msg = g_strdup_printf("Unknown error. (%d %s)",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
582 code, p2 ? p2 : "");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
583 break;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
584 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
585 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
586 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
587
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
588 if (!error) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
589 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
590 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
591 tm->status, PURPLE_MESSAGE_SEND, tm->time);
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
592 } else {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
593 gchar *m;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
594 m = g_strdup_printf("%s<BR>%s",
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
595 msg, tm->status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
596 /* FIXME: too strong. it should be more smart */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
597 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
598 purple_account_get_username(tm->account),
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
599 m, PURPLE_MESSAGE_ERROR, time(NULL));
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
600 g_free(m);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
601 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
602
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
603 fin:
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
604 if (msg)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
605 g_free(msg);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
606
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
607 if (tm) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
608 if (tm->status)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
609 g_free(tm->status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
610 g_free(tm);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
611 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
612
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
613 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
614
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
615 static void
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
616 post_status_with_api(PurpleAccount *account, char **buffer)
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
617 {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
618 char *request, *status, *header;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
619 const char *url_encoded = purple_url_encode(*buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
620 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
621
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
622 twitter_message_t *tm;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
623
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
624 const char *screen_name =
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
625 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
626 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
627
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
628 twitter_debug("tm.account: %s\n",
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
629 purple_account_get_username(account));
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
630
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
631 if (!screen_name || !password || !screen_name[0] || !password[0]) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
632 twitter_debug("screen_name or password is empty\n");
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
633 return;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
634 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
635
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
636 tm = g_new(twitter_message_t, 1);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
637 tm->account = account;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
638 tm->status = g_strdup(*buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
639 tm->time = time(NULL);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
640
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
641 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
642 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
643 strlen(basic_auth));
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
644 g_free(basic_auth);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
645
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
646 status = g_strdup_printf(TWITTER_STATUS_FORMAT, url_encoded);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
647
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
648 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
649 (int)strlen(status));
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
650
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
651 request = g_strconcat(header, status, TWITTER_STATUS_TERMINATOR, NULL);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
652
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
653 purple_util_fetch_url_request(TWITTER_BASE_URL, FALSE,
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
654 NULL, TRUE, request, TRUE,
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
655 post_status_with_api_cb, tm);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
656
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
657 g_free(header);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
658 g_free(basic_auth_encoded);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
659 g_free(status);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
660 g_free(request);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
661
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
662 }
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
663
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
664 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
665 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
666 void *data)
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
667 {
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
668 int utflen, bytes;
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
669 gboolean twitter_ac = FALSE, wassr_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
670 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
671
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
672 twitter_ac = is_twitter_account(account, recipient);
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
673 wassr_ac = is_wassr_account(account, recipient);
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
674
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
675 if(wassr_ac) {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
676 /* 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
677 g_strlcpy(wassr_post, *buffer, WASSR_POST_LEN);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
678 twitter_debug("parrot pushed:%s\n", *buffer);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
679 }
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
680
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
681 /* strip all markups */
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
682 if(twitter_ac || wassr_ac)
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
683 strip_markup(buffer);
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
684
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
685 /* 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
686 if(!twitter_ac)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
687 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
688
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
689 /* escape pseudo command */
88
090e28908f09 apply strip_markup() to wassr too.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 87
diff changeset
690 if(twitter_ac &&
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
691 purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
692 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
693 }
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
694
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
695 /* update status with Twitter API instead of IM protocol */
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
696 if (purple_prefs_get_bool(OPT_API_BASE_POST)) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
697 if (buffer && *buffer) {
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
698 post_status_with_api(account, buffer);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
699 (*buffer)[0] = '\0';
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 return FALSE;
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
702 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
703
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
704 /* 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
705 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
706 bytes = strlen(*buffer);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
707 twitter_debug("utflen = %d bytes = %d\n", utflen, bytes);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
708 if(bytes > 140 && utflen <= 140)
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
709 suppress_oops = TRUE;
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
710
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
711 return FALSE;
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
712 }
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
713
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
714 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
715 eval(const GMatchInfo *match_info, GString *result, gpointer user_data)
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
716 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
717 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
718 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
719 gint service = data->service;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
720 gchar sub[128];
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
721
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
722 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
723
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
724 if(which == RECIPIENT) {
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
725 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
726 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
727 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
728 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
729 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
730 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
731 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
732 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
733 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
734 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
735 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
736 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
737 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
738 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
739 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
740 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
741 snprintf(sub, 128, format, match, 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
742 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
743 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
744 else if(which == SENDER) {
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
745 gchar *match1 = g_match_info_fetch(match_info, 1); //preceding CR|LF
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
746 gchar *match2 = g_match_info_fetch(match_info, 2); //sender
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
747 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
748
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
749 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
750 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
751 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
752 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
753 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
754 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
755 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
756 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
757 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
758 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
759 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
760 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
761 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
762 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
763
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
764 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
765
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
766 g_free(match1);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
767 g_free(match2);
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
768 }
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
769 else if(service == wassr_service && which == CHANNEL) {
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
770 gchar *match1 = g_match_info_fetch(match_info, 1); //before channel
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
771 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
772 const gchar *format = CHANNEL_FORMAT_WASSR;
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
773
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
774 snprintf(sub, 128, format, match1 ? match1: "", match2, match2);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
775
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
776 g_free(match1);
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
777 g_free(match2);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
778 }
48
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
779
42869098eda3 adapted for msn style option (or new line plugin).
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 46
diff changeset
780 g_string_append(result, sub);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
781 twitter_debug("sub = %s\n", sub);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
782
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
783 return FALSE;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
784 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
785
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
786 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
787 translate(gchar **str, gint which, gint service)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
788 {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
789 gchar *newstr;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
790 eval_data *data = g_new0(eval_data, 1);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
791
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
792 data->which = which;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
793 data->service = service;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
794
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
795 newstr = g_regex_replace_eval(regp[which], // compiled regex
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
796 *str, // subject string
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
797 -1, // length of the subject string
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
798 0, // start position
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
799 0, // match options
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
800 eval, // function to be called for each match
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
801 data, // user data
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
802 NULL); // error handler
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
803
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
804 g_free(data); data = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
805
45
746ff3b54c10 trying another way to strip markups. in this revision, all markups are striped with strip_html_markup() on sending a message.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 44
diff changeset
806 twitter_debug("which = %d *str = %s newstr = %s\n", which, *str, newstr);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
807
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
808 g_free(*str);
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
809 *str = newstr;
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
810 }
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
811
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
812 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
813 playsound(gchar **str, gint which)
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
814 {
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
815 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
816 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
817 gchar **candidates = NULL, **candidate = NULL;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
818
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
819 list = purple_prefs_get_string(which ? OPT_USERLIST_SENDER :
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
820 OPT_USERLIST_RECIPIENT);
5
6ac1867d7e8e string list should be initialized with NULL
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 2
diff changeset
821 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
822 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
823 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
824
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
825 candidates = g_strsplit_set(list, " ,:;", 0);
20
4c236a7a128f - now escape feature works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 19
diff changeset
826 g_return_if_fail(candidates != NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
827
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
828 g_regex_match(regp[which], *str, 0, &match_info);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
829 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
830 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
831 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
832 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
833 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
834 user = g_match_info_fetch(match_info, 2);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
835 twitter_debug("user = %s\n", user);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
836
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
837 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
838 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
839 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
840 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
841 if(!strcmp(user, *candidate)) {
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
842 twitter_debug("match. play sound\n");
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
843 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
844 (which ? OPT_SOUNDID_SENDER :
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
845 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
846 break;
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
847 }
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
848 }
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
849 g_free(user);
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
850 g_match_info_next(match_info, NULL);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
851 }
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
852 g_strfreev(candidates);
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
853 g_match_info_free(match_info);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
854 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
855
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
856 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
857 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
858 PurpleConversation *conv, int flags, void *data)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
859 {
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
860 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
861
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
862 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
863
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
864 /* 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
865 if(service == unknown_service)
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
866 return FALSE;
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
867
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
868 /* 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
869 if (flags & PURPLE_MESSAGE_SEND) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
870 gchar *m = NULL;
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
871 const char *screen_name;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
872
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
873 switch(service) {
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
874 case twitter_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
875 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
876 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
877 case wassr_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
878 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
879 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
880 case identica_service:
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
881 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
882 break;
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
883 }
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
884
91
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
885 if (screen_name) {
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
886 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
887 g_free(*buffer);
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
888 *buffer = m;
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
889 }
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
890 }
2b7ef3538cd3 - Fix type of 'flag' of writing_im_cb
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 85
diff changeset
891
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
892 /* strip all markups */
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
893 strip_markup(buffer); // it causes missing of strings surrounded by <>
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
894
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
895 /* playsound */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
896 if(purple_prefs_get_bool(OPT_PLAYSOUND_SENDER)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
897 playsound(buffer, SENDER);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
898 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
899 if(purple_prefs_get_bool(OPT_PLAYSOUND_RECIPIENT)) {
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
900 playsound(buffer, RECIPIENT);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
901 }
41
0a81ccfa1941 strip excessive markup where it is not needed. (work in progress)
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 40
diff changeset
902
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
903 /* translate */
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
904 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
905 translate(buffer, SENDER, service);
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
906 }
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
907 if(service == wassr_service &&
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
908 purple_prefs_get_bool(OPT_TRANSLATE_CHANNEL)) {
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
909 translate(buffer, CHANNEL, service);
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
910 }
98
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
911 if(purple_prefs_get_bool(OPT_TRANSLATE_RECIPIENT)) {
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
912 translate(buffer, RECIPIENT, service);
e460e1978ca3 - fixed a bug introduced in r97.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 97
diff changeset
913 }
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
914
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
915 /* escape pseudo command (to show same result to sending message) */
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
916 if(is_twitter_conv(conv) && purple_prefs_get_bool(OPT_ESCAPE_PSEUDO)) {
44
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
917 escape(buffer);
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
918 }
4f456c7150ed cleanups
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 43
diff changeset
919
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
920 return FALSE;
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
921 }
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
922
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
923 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
924 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
925 gchar *new_text, gint new_text_length, gpointer user_data)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
926 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
927 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
928 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
929
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
930 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
931 gchar *markup = NULL;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
932 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
933 guint count;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
934 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
935 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
936 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
937
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
938 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
939
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
940 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
941 case twitter_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
942 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
943 (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
944 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
945 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
946 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
947 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
948 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
949 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
950
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
951 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
952 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
953 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
954 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
955 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
956 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
957 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
958 case wassr_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
959 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
960 (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
961 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
962 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
963 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
964 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
965 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
966 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
967 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
968
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
969 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
970 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
971 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
972 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
973
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
974 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
975 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
976
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
977 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
978 delete_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *start_pos,
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
979 GtkTextIter *end_pos, gpointer user_data)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
980 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
981 PurpleConversation *conv = (PurpleConversation *)user_data;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
982 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
983 GtkWidget *box, *counter = NULL;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
984 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
985 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
986 guint count = 0;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
987 gchar *text = NULL;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
988 GtkTextIter head, tail;
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
989 guint bytes = 0;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
990
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
991 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
992
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
993 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
994 case twitter_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
995 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
996 (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
997 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
998 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
999 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
1000 break;
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1001 case identica_service:
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1002 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
1003 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
1004
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1005 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
1006 &head, &tail, TRUE);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1007 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1008 bytes = strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1009 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1010
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1011 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
1012 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
1013 if(text)
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1014 bytes -= strlen(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1015 g_free(text);
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1016
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1017 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
1018 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
1019 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1020 case wassr_service:
102
55c466028d48 changed letter counter for identi.ca to count in byte.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 101
diff changeset
1021 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
1022 (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
1023 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
1024 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
1025 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
1026 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1027 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1028 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
1029 break;
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1030 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1031
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1032 box = gtkconv->toolbar;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1033 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
1034 if(counter)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1035 gtk_label_set_markup(GTK_LABEL(counter), markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1036
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1037 g_free(markup);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1038 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1039
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1040 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1041 detach_from_window(void)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1042 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1043 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1044
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1045 /* 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
1046 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
1047 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1048 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1049 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
1050 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
1051 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1052 case twitter_service:
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1053 g_source_remove_by_user_data((gpointer)conv);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1054 detach_from_conv(conv, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1055 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1056 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
1057 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1058 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
1059 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1060 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1061 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
1062 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1063 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1064 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1065 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1066
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1067 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1068 detach_from_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1069 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1070 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1071 GtkWidget *box, *counter = NULL, *sep = NULL;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1072
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1073 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
1074 (GFunc) insert_text_cb, conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1075 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
1076 (GFunc) delete_text_cb, conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1077
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1078 box = gtkconv->toolbar;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1079
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1080 /* remove counter */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1081 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
1082 if(counter) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1083 gtk_container_remove(GTK_CONTAINER(box), counter);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1084 g_object_unref(counter);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1085 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1086 }
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1087
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1088 /* remove separator */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1089 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
1090 if(sep) {
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1091 gtk_container_remove(GTK_CONTAINER(box), sep);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1092 g_object_unref(sep);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1093 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1094 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1095
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1096 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1097 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1098
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1099 static void
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1100 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
1101 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1102 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
1103 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
1104 GList *mark_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1105 GList *current;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1106
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1107 if(!data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1108 return;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1109
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
1110 if(data->request_list)
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1111 mark_list = data->request_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1112
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1113 /* 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
1114 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
1115 current = g_list_next(current)) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1116 GtkTextMark *current_mark = current->data;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1117 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
1118 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1119
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1120 if(!current_text_buffer)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1121 continue;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1122
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1123 if(text_buffer) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1124 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
1125 /* 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
1126 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
1127 current_mark);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1128 current->data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1129 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1130 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1131 else {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1132 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
1133 current->data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1134 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1135 } /* end of for */
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1136
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1137 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
1138 data->request_list = mark_list;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1139 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1140
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1141 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1142 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
1143 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
1144 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
1145
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1146 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
1147 (GHFunc)remove_marks_func,
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1148 (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
1149 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1150
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1151 static void
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1152 attach_to_window(void)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1153 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1154 GList *list;
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1155
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1156 /* 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
1157 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
1158 PidginWindow *win = list->data;
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1159 PurpleConversation *conv =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1160 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
1161 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
1162 /* 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
1163 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1164 case twitter_service:
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1165 /* api based retrieve */ //xxx should configurable
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1166 get_status_with_api((gpointer)conv);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1167 g_timeout_add_seconds(60, get_status_with_api, (gpointer)conv);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1168 attach_to_conv(conv, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1169 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1170 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
1171 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1172 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
1173 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1174 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1175 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
1176 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1177 }
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1178 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1179 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1180
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1181 static void
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1182 attach_to_conv(PurpleConversation *conv, gpointer null)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1183 {
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1184 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
1185 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
1186 GtkIMHtml *imhtml;
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1187
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1188 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
1189 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
1190
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1191 /* Disable widgets that decorate or add link to composing text
53
872f418ba45d - revised README
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 52
diff changeset
1192 * 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
1193 * 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
1194 */
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1195 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
1196 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
1197 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
1198 }
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1199 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
1200 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
1201 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
1202 }
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
1203
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
1204 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
1205 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
1206 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
1207 ~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
1208
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1209 /* 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
1210 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
1211 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
1212
d5f251b37f6b - make sure that disabling markup widgets works even if counter is disabled.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 50
diff changeset
1213 /* get counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1214 counter = g_object_get_data(G_OBJECT(box), PLUGIN_ID "-counter");
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1215 g_return_if_fail(counter == NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1216
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1217 /* make counter object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1218 counter = gtk_label_new(NULL);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1219 gtk_widget_set_name(counter, "counter_label");
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1220 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
1221 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
1222 gtk_widget_show_all(counter);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1223 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-counter", counter);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1224
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1225 /* make separator object */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1226 sep = gtk_vseparator_new();
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1227 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
1228 gtk_widget_show_all(sep);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1229 g_object_set_data(G_OBJECT(box), PLUGIN_ID "-sep", sep);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1230
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
1231 /* connect to signals */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1232 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
1233 G_CALLBACK(insert_text_cb), conv);
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1234 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
1235 G_CALLBACK(delete_text_cb), conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1236
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1237 /* redraw window */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1238 gtk_widget_queue_draw(pidgin_conv_get_window(gtkconv)->window);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1239 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1240
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1241 static gboolean
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1242 is_twitter_account(PurpleAccount *account, const char *name)
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1243 {
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1244 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
1245
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
1246 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
1247 g_strstr_len(proto, 11, "prpl-jabber")) {
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1248 return TRUE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1249 }
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1250
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1251 return FALSE;
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1252 }
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1253
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1254 static gboolean
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1255 is_twitter_conv(PurpleConversation *conv)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1256 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1257 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
1258
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1259 const char *name = purple_conversation_get_name(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1260 PurpleAccount *account = purple_conversation_get_account(conv);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1261
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
1262 return is_twitter_account(account, name);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1263 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1264
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1265 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1266 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
1267 {
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1268 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
1269
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
1270 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
1271 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
1272 return TRUE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1273 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1274
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1275 return FALSE;
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1276 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1277
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1278 static gboolean
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1279 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
1280 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1281 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
1282
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1283 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
1284 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
1285
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1286 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
1287 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1288
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
1289 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
1290 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
1291 {
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1292 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
1293
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1294 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
1295 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
1296 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
1297 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1298
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1299 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
1300 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1301
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1302 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
1303 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
1304 {
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1305 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
1306
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
1307 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
1308 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
1309
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1310 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
1311 }
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1312
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1313 static gint
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1314 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
1315 {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1316 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
1317
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1318 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
1319
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1320 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
1321 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
1322 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
1323 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
1324 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
1325 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
1326
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1327 return service;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1328 }
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1329
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1330 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1331 conv_created_cb(PurpleConversation *conv, gpointer null)
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1332 {
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1333 PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
1334 g_return_if_fail(gtkconv != NULL);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1335
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1336 gint service = get_service_type(conv);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1337 /* 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
1338 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1339 case twitter_service:
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1340 /* api based retrieve */ //xxx should configurable
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1341 get_status_with_api((gpointer)conv);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1342 g_timeout_add_seconds(60, get_status_with_api, (gpointer)conv);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1343 attach_to_conv(conv, NULL);
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1344 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1345 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
1346 case identica_service:
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1347 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
1348 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1349 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1350 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
1351 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1352 }
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1353 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
1354
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
1355 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
1356 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
1357 {
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1358 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
1359
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
1360 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
1361
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1362 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
1363 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
1364
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
1365 /* 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
1366 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1367 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
1368 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1369 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1370 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
1371 hash = icon_data_by_user2;
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 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
1373 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
1374 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1375 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1376 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1377 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
1378 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1379 }
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
1380
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1381 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
1382 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
1383 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1384
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
1385 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
1386 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
1387 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
1388 {
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
1389 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
1390 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
1391
100
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1392 if(is_twitter_conv(conv) || is_wassr_conv(conv) || is_identica_conv(conv)) {
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1393 /* suppress notification of incoming messages. */
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1394 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
1395 *flags |= PURPLE_MESSAGE_SYSTEM;
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1396 }
86772af940ce fixed the notification of incoming messages for wasser and identica
mikanbako <maoutwo@gmail.com>
parents: 98
diff changeset
1397
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1398 /* quick hack to suppress annoying completion message from wassr */
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1399 if(is_wassr_conv(conv)) {
81
f1163f2e4920 add suppression of annoying completion message for posts to the wasser-channel.
"mojin <truffechampagne@gmail.com>"
parents: 80
diff changeset
1400 if(strstr(*buffer, "<body>投稿完了:") ||
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1401 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
1402 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
1403 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
1404 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
1405 }
82
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1406 /* fix for parrot problem during post to a channel */
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1407 else if(strlen(wassr_post) && strstr(*buffer, wassr_post)) {
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1408 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
1409 g_free(*sender); *sender = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1410 g_free(*buffer); *buffer = NULL;
c9600d64781a work in progress adaptation to wassr service. cleanups required:
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 81
diff changeset
1411 }
74
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1412 }
6b9593d1ffed quick hack to suppress annoying completion message from wassr.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 73
diff changeset
1413
96
987607b5ba32 made is_*_conv(conv) return FALSE if conv is NULL.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 95
diff changeset
1414 if(!is_twitter_conv(conv)) {
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
1415 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
1416 }
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
1417
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1418 /* if we use api, discard incoming IM message. XXX need fix */
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1419 if(purple_prefs_get_bool(OPT_API_BASE_POST)) {
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1420 g_free(*sender); *sender = NULL;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1421 g_free(*buffer); *buffer = NULL;
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1422 }
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
1423
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
1424 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
1425 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
1426
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
1427 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
1428 twitter_debug("clearing sender and buffer\n");
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1429 g_free(*sender); *sender = NULL;
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1430 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
1431 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
1432 }
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
1433 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
1434 }
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
1435
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
1436 static void
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1437 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
1438 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1439 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
1440
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1441 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1442 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1443
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
1444 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
1445 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
1446 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
1447 GtkTextIter insertion_point;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1448 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
1449 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
1450 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
1451
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1452 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
1453
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
1454 /* 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
1455 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
1456 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
1457 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
1458 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
1459
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1460 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
1461 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
1462 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
1463 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
1464
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1465 gint service = get_service_type(purple_conv);
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1466
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1467 if(service != unknown_service) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1468 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
1469 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
1470 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
1471
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
1472 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
1473 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
1474 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
1475 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
1476 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1477 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1478 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1479 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1480 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
1481 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
1482 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1483
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1484 /* 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
1485
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1486 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
1487 &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
1488
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1489 /* 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
1490 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1491 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
1492 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1493 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1494 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
1495 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1496 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
1497 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
1498 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1499 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1500 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1501 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
1502 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1503
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
1504 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
1505 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
1506
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1507 if(data)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1508 icon_id = data->icon_id;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1509 else
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1510 icon_id = 0;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1511
60
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1512 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
1513 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
1514 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1515
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1516 /* insert icon actually */
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1517 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1518 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
1519 const GdkPixbuf *pixbuf = purple_imgstore_get_data(img);
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1520 gtk_text_buffer_insert_pixbuf(target_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1521 &insertion_point,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1522 (GdkPixbuf *)pixbuf);
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1523 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1524 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
1525 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
1526 }
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
1527
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1528 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1529 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
1530 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1531 icon_data *data = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1532 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
1533 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
1534
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1535 twitter_debug("called\n");
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1536
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1537 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1538 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
1539 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1540 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1541 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
1542 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1543 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
1544 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
1545 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1546 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1547 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1548 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
1549 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1550 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1551
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 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
1553 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
1554
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1555 if(!data)
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1556 return;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1557
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1558 mark_list = data->request_list;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1559
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1560 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
1561 gotdata->user_name = g_strdup(user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1562 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
1563
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
1564 twitter_debug("about to insert icon\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
1565
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1566 if(mark_list) {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1567 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
1568 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
1569 g_list_free(mark_list);
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1570 data->request_list = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1571 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1572 g_free(gotdata->user_name);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1573 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
1574 }
ddd164e74312 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
ddd164e74312 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 static void
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1577 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
1578 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
1579 {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1580 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
1581 gchar *user_name = gotdata->user_name;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1582 // gint service = gotdata->service;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1583 GMatchInfo *match_info = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1584 icon_data *data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1585 gchar *url = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1586
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1587 data = (icon_data *)g_hash_table_lookup(icon_data_by_user3, user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1588
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1589 if(!url_text) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1590 if(data) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1591 data->requested = FALSE;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1592 data->fetch_data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1593 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1594 g_free(gotdata->user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1595 g_free(gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1596 return;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1597 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1598
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1599 /* setup image url */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1600 g_regex_match(regp[IMAGE_IDENTICA], url_text, 0, &match_info);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1601 if(!g_match_info_matches(match_info)) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1602 twitter_debug("no image found\n");
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1603
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1604 g_match_info_free(match_info);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1605 if(data) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1606 data->requested = FALSE;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1607 data->fetch_data = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1608 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1609 g_free(gotdata->user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1610 g_free(gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1611 return;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1612 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1613 url = g_match_info_fetch(match_info, 1);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1614 g_match_info_free(match_info);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1615
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1616 /* request fetch image */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1617 if(url) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1618 /* reuse gotdata. just pass given one */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1619 /* gotdata will be released in got_icon_cb */
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1620 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
1621 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1622 g_free(url); url = NULL;
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1623
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1624 twitter_debug("request %s's icon\n", user_name);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1625 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1626 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1627
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1628 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
1629 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
1630 {
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1631 /* 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
1632 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
1633 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
1634 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
1635
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1636 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
1637 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
1638
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1639 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
1640 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
1641 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
1642
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1643 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
1644 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
1645 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
1646
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1647 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
1648 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
1649 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
1650
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1651 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
1652 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
1653
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1654 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
1655 }
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1656
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1657
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1658 static void
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1659 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
1660 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
1661 {
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1662 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
1663 gchar *user_name = gotdata->user_name;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1664 gint service = gotdata->service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1665
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1666 gint icon_id;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1667 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
1668 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
1669 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
1670 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
1671
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1672 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
1673
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1674 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1675 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
1676 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1677 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1678 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
1679 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1680 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
1681 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
1682 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1683 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1684 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1685 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
1686 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1687
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1688 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
1689 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
1690
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1691 /* 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
1692 if(!url_text) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1693 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
1694 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
1695 if(data)
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1696 data->requested = FALSE;
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1697 goto 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
1698 return;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1699 }
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
1700
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1701 if(data) {
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1702 /* remove download request */
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1703 data->requested = FALSE;
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1704 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
1705
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1706 /* 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
1707 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
1708 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
1709 user_name);
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1710 goto 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
1711 return;
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
1712 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1713 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1714
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1715 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
1716
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1717 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
1718 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
1719
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1720 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
1721 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
1722 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
1723 gdk_pixbuf_get_height(pixbuf),
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1724 user_name);
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1725 if(!data) {
93
7219f7dee52f revised got_icon_cb() and fixed unexpected free hash table data.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 92
diff changeset
1726 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
1727 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
1728 }
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1729
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1730 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
1731
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
1732 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
1733 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
1734
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1735 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
1736
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1737 /* 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
1738 if(ensure_path_exists(dirname)) {
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1739 gchar *filename = NULL;
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1740 gchar *path = NULL;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1741
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1742 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1743 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
1744 filename = g_strdup_printf("%s_twitter.gif", user_name);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1745 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1746 case wassr_service:
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1747 filename = g_strdup_printf("%s_wassr.png", user_name);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1748 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
1749 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
1750 filename = g_strdup_printf("%s_identica.png", 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
1751 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1752 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1753 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
1754 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1755 }
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1756
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1757 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
1758 g_free(filename); filename = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1759
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1760 g_file_set_contents(path, url_text, len, NULL);
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1761 }
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
1762
60
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1763 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
1764 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
1765
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1766 /* 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
1767 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
1768
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1769 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
1770 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
1771 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
1772 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1773
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1774 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1775 request_icon(const char *user_name, gint service)
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
1776 {
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
1777 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
1778
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1779 /* 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
1780 gchar *path = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1781 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
1782 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
1783 const gchar *suffix = NULL;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1784
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1785 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1786 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
1787 hash = icon_data_by_user;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1788 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
1789 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1790 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
1791 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1792 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
1793 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
1794 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
1795 suffix = "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
1796 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1797 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1798 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1799 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
1800 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1801 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1802
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
1803 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
1804 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
1805
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1806 /* 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
1807 * 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
1808 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
1809 g_hash_table_insert(hash, g_strdup(user_name), data);
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1810
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1811 /* 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
1812 if(data->icon_id > 0)
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1813 return;
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1814
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1815 /* check if saved file exists */
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
1816 if(suffix) {
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1817 gchar *filename = NULL;
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1818
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
1819 filename = g_strdup_printf("%s_%s.gif", user_name, suffix);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1820 path = g_build_filename(
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1821 purple_prefs_get_string(OPT_ICON_DIR), filename, NULL);
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1822
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1823 if(!g_file_test(path, G_FILE_TEST_EXISTS)) {
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1824 g_free(path);
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
1825 filename = g_strdup_printf("%s_%s.png", user_name, suffix);
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1826 path = g_build_filename(
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1827 purple_prefs_get_string(OPT_ICON_DIR), filename, NULL);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1828 }
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1829
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1830 g_free(filename);
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
1831 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1832
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
1833 twitter_debug("path = %s\n", path);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1834
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1835 /* build image from file, if file exists */
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1836 if(g_file_test(path, G_FILE_TEST_EXISTS)) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1837 gchar *imgdata = NULL;
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1838 size_t len;
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1839 GError *err = 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
1840 GdkPixbuf *pixbuf = NULL;
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1841
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1842 if (!g_file_get_contents(path, &imgdata, &len, &err)) {
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1843 twitter_debug("Error reading %s: %s\n",
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1844 path, err->message);
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1845 g_error_free(err);
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1846 }
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1847
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1848 pixbuf = make_scaled_pixbuf(imgdata, len);
104
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
1849
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1850 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
1851 data->icon_id =
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1852 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
1853 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
1854 gdk_pixbuf_get_height(pixbuf),
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1855 user_name);
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1856
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1857 twitter_debug("icon data has been loaded from file\n");
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1858 insert_requested_icon(user_name, service);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1859 }
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1860
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
1861 g_free(path);
66
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1862 return;
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1863 }
0ddcba9161fd now local icon cache works
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 65
diff changeset
1864
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1865 /* 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
1866 if(data->requested)
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1867 return;
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1868 else
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1869 data->requested = TRUE;
65
4949d4eb34ec - revised store icon feature
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 64
diff changeset
1870
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1871
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
1872 /* Create the URL of the user's icon.
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
1873 * See http://twitter.g.hatena.ne.jp/ikko615/20080107/1199703400
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
1874 */
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1875 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1876 case twitter_service:
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1877 url = g_strdup_printf("http://img.twitty.jp/twitter/user/%s/m.gif",
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1878 user_name);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1879 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1880 case wassr_service:
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1881 url = g_strdup_printf("http://wassr.jp/user/%s/profile_img.png.64",
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1882 user_name);
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1883 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
1884 case identica_service:
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1885 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
1886 break;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1887 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1888 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
1889 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1890 }
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
1891
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
1892 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
1893 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
1894 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
1895 gotdata->service = service;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1896
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
1897 /* gotdata will be released in got_icon_cb */
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1898 if(service == identica_service) {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1899 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
1900 got_page_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1901 }
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1902 else {
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1903 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
1904 got_icon_cb, gotdata);
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
1905 }
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
1906 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
1907
95
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1908 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
1909 }
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
1910 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1911
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1912 static void
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1913 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
1914 {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1915 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
1916 GHashTable *hash = NULL;
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1917
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1918 twitter_debug("called\n");
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1919
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1920 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1921 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
1922 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1923 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1924 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
1925 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
1926 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
1927 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
1928 hash = icon_data_by_user3;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1929 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1930 default:
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1931 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
1932 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1933 }
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1934
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
1935 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
1936 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
1937
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1938 if(!data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1939 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
1940 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
1941 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
1942
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
1943 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
1944 }
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1945
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1946 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
1947 displaying_im_cb(PurpleAccount *account, const char *who, char **message,
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1948 PurpleConversation *conv, PurpleMessageFlags flags, void *unused)
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1949 {
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1950 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
1951 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
1952 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
1953 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
1954
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1955 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
1956
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1957 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
1958 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
1959 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
1960 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1961
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1962 /* 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
1963 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
1964 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
1965
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1966 /* 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
1967 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
1968 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
1969 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
1970
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1971 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
1972 }
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
1973
78
0b93dd0e0de1 fixed the data structure of marks that are positions of inserting user's icons.
mikanbako <maoutwo@gmail.com>
parents: 76
diff changeset
1974 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
1975 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
1976 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
1977 {
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1978 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
1979 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
1980 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
1981 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
1982 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
1983 gint icon_id = 0;
86
89f52081f115 replaced int with gint
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 85
diff changeset
1984 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
1985 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
1986 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
1987 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
1988
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1989 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
1990
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
1991 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
1992 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
1993 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
1994 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1995
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
1996 /* 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
1997 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
1998 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
1999 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
2000 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
2001 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
2002 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2003
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
2004 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
2005 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
2006
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2007 /* 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
2008 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
2009 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
2010
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2011 /* 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
2012 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
2013 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
2014 &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
2015 linenumber);
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2016
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2017 switch(service) {
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2018 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
2019 hash = icon_data_by_user;
85
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2020 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2021 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
2022 hash = icon_data_by_user2;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2023 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
2024 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
2025 hash = icon_data_by_user3;
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2026 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
2027 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
2028 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
2029 break;
fb9831fae969 - fixed the bug that icons didn't appear correctly for wassr conversation.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 84
diff changeset
2030 }
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2031
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
2032 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
2033 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
2034
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2035 if(data)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2036 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
2037
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2038 /* 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
2039 * 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
2040 if(!icon_id) {
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2041 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
2042 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
2043 text_buffer, NULL, &insertion_point, FALSE),
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2044 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
2045 /* request to attach icon to the buffer */
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2046 request_icon(user_name, 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
2047 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
2048 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
2049 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2050
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2051 /* 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
2052 if(purple_prefs_get_bool(OPT_SHOW_ICON)) {
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2053 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
2054 const GdkPixbuf *pixbuf = purple_imgstore_get_data(img);
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2055 gtk_text_buffer_insert_pixbuf(text_buffer,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2056 &insertion_point,
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2057 (GdkPixbuf *)pixbuf);
084e1c6de8ca icon scaling feature has been implemented.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 103
diff changeset
2058 }
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
2059 g_free(user_name); user_name = NULL;
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2060
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2061 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
2062 }
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2063
118
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2064
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2065 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2066 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
2067 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2068 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
2069 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
2070 PurpleBuddy *b;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2071
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2072 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
2073
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2074 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
2075 return;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2076
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2077 if (!list)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2078 return;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2079
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2080 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
2081
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2082 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
2083 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
2084 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2085
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2086 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
2087
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2088 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
2089 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2090
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2091 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
2092 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
2093 continue;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2094
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2095 b = (PurpleBuddy *)bnode;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2096
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2097 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
2098 const char *name;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2099 PurpleAccount *account;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2100 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
2101 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
2102 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
2103 PurpleConversation *gconv;
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2104 gconv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account);
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2105 if (!gconv) {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2106 gconv = purple_conversation_new(PURPLE_CONV_TYPE_IM,
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2107 account, name);
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2108 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2109 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2110 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2111 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2112 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2113 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2114 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2115
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2116
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2117
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2118 static void
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2119 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
2120 gpointer data)
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2121 {
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2122 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
2123 }
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2124
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2125
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2126
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
2127 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2128 load_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2129 {
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2130 /* connect to signal */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2131 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
2132 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
2133 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
2134 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
2135 purple_signal_connect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2136 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2137 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
2138 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
2139 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
2140 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
2141 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
2142
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
2143 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
2144 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
2145 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
2146 "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
2147 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
2148 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
2149 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
2150
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2151
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
2152 /* 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
2153 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
2154 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
2155 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
2156 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
2157 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
2158 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
2159 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
2160 regp[CHANNEL] = g_regex_new(P_CHANNEL, 0, 0, NULL);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2161 regp[IMAGE_IDENTICA] = g_regex_new(P_IMAGE_IDENTICA, 0, 0, NULL);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2162
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
2163
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2164 icon_data_by_user = g_hash_table_new_full(g_str_hash, g_str_equal,
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2165 g_free, NULL);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2166 icon_data_by_user2 = g_hash_table_new_full(g_str_hash, g_str_equal,
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2167 g_free, 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
2168 icon_data_by_user3 = g_hash_table_new_full(g_str_hash, g_str_equal,
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2169 g_free, 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
2170 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
2171 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
2172
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2173 /* 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
2174 if(purple_prefs_get_bool(OPT_COUNTER)) {
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2175 attach_to_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2176 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2177
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2178 /* allocate wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2179 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
2180
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2181 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2182 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2183
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2184 static void
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2185 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
2186 {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2187 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
2188
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2189 if(!data)
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2190 return;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2191
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2192 if(data->fetch_data) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2193 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
2194 data->fetch_data = NULL;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2195 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2196
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2197 if(data->request_list) {
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2198 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
2199 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2200
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2201 return;
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2202 }
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2203
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2204 static gboolean
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2205 unload_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2206 {
39
2ac81c0afb53 - new debug macro. it includes function name and line number.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 38
diff changeset
2207 twitter_debug("called\n");
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2208
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2209 /* disconnect from signal */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2210 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2211 "writing-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2212 plugin, PURPLE_CALLBACK(writing_im_cb));
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2213 purple_signal_disconnect(purple_conversations_get_handle(),
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2214 "sending-im-msg",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2215 plugin, PURPLE_CALLBACK(sending_im_cb));
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2216 purple_signal_disconnect(purple_conversations_get_handle(),
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2217 "conversation-created",
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2218 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
2219 purple_signal_disconnect(pidgin_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
2220 "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
2221 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
2222 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
2223 "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
2224 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
2225 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
2226 "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
2227 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
2228 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
2229 "signed-on",
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2230 plugin, PURPLE_CALLBACK(signed_on_cb));
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2231
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2232 /* unreference regp */
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
2233 g_regex_unref(regp[RECIPIENT]);
4bd8c89b4749 now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 9
diff changeset
2234 g_regex_unref(regp[SENDER]);
21
38fe566b5ee1 unref newly added regex at unload time.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 20
diff changeset
2235 g_regex_unref(regp[COMMAND]);
38fe566b5ee1 unref newly added regex at unload time.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 20
diff changeset
2236 g_regex_unref(regp[PSEUDO]);
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
2237 g_regex_unref(regp[USER]);
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2238 g_regex_unref(regp[USER_FIRST_LINE]);
ddd164e74312 trying to show user's icon. in this revision, the default icon of twitter is showed.
mikanbako <maoutwo@gmail.com>
parents: 59
diff changeset
2239 g_regex_unref(regp[USER_FORMATTED]);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2240 g_regex_unref(regp[CHANNEL]);
103
8de54d420328 added preliminary identi.ca icon support.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 102
diff changeset
2241 g_regex_unref(regp[IMAGE_IDENTICA]);
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
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2243 /* remove mark list in each hash entry */
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2244 g_hash_table_foreach(icon_data_by_user, (GHFunc)remove_marks_func, NULL);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2245 g_hash_table_foreach(icon_data_by_user2, (GHFunc)remove_marks_func, 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
2246 g_hash_table_foreach(icon_data_by_user3, (GHFunc)remove_marks_func, 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
2247
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
2248 /* cancel request that has not been finished yet */
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2249 g_hash_table_foreach(icon_data_by_user, (GHFunc)cancel_fetch_func, NULL);
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2250 g_hash_table_foreach(icon_data_by_user2, (GHFunc)cancel_fetch_func, 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
2251 g_hash_table_foreach(icon_data_by_user3, (GHFunc)cancel_fetch_func, 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
2252
80
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2253 /* destroy hash table for icon_data */
e0bf37c105eb work in progress one hash table code:
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 79
diff changeset
2254 g_hash_table_destroy(icon_data_by_user); //XXX all memory freed? --yaz
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
2255 g_hash_table_destroy(icon_data_by_user2);
ab612180e7d0 - added identica support. linkfy and character counter work. icon support has not implemented yet.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 94
diff changeset
2256 g_hash_table_destroy(icon_data_by_user3);
94
31cddb2c2acc fix icon position when the displaying message contains new line character. try 1.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 93
diff changeset
2257 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
2258
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2259 /* detach from twitter window */
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2260 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2261
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2262 /* free wassr_post */
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2263 g_free(wassr_post);
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2264 wassr_post = NULL;
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2265
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2266 return TRUE;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2267 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2268
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2269 static void
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2270 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
2271 gconstpointer val, gpointer data)
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2272 {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2273 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
2274
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2275 if(enabled) {
40
e60e6cbdc4c4 - added is_twitter_account().
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 39
diff changeset
2276 attach_to_window();
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2277 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2278 else {
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2279 detach_from_window();
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2280 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2281 }
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2282
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2283 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2284 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
2285 {
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2286 icon_data *data = (icon_data *)value;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2287
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2288 g_return_if_fail(data != NULL);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2289 g_return_if_fail(data->icon_id >0);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2290
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2291 /* 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
2292 #if 0
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2293 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
2294 if(img)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2295 purple_imgstore_unref_by_id(data->icon_id);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2296 #endif
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2297
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2298 data->icon_id = 0;
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2299 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2300
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2301 static void
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2302 icon_size_prefs_cb(const char *name, PurplePrefType type,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2303 gconstpointer val, gpointer data)
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2304 {
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2305 /* invalidate icon cache */
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2306 g_hash_table_foreach(icon_data_by_user,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2307 (GHFunc)invalidate_icon_data_func, NULL);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2308 g_hash_table_foreach(icon_data_by_user2,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2309 (GHFunc)invalidate_icon_data_func, NULL);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2310 g_hash_table_foreach(icon_data_by_user3,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2311 (GHFunc)invalidate_icon_data_func, NULL);
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2312 }
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2313
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2314 static PurplePluginPrefFrame *
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2315 get_plugin_pref_frame(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2316 {
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
2317 /* create gtk elements for the plugin preferences */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2318 PurplePluginPref *pref;
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2319 PurplePluginPrefFrame *frame = purple_plugin_pref_frame_new();
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2320
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
2321 /************************/
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2322 /* screen name heading */
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2323 /************************/
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2324 pref = purple_plugin_pref_new_with_label("Screen Name");
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2325 purple_plugin_pref_frame_add(frame, pref);
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2326
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2327 /* twitter */
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2328 pref =
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2329 purple_plugin_pref_new_with_name_and_label(OPT_SCREEN_NAME_TWITTER,
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2330 "twitter");
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2331 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2332
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2333 /* wassr */
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2334 pref =
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2335 purple_plugin_pref_new_with_name_and_label(OPT_SCREEN_NAME_WASSR,
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2336 "wassr");
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2337 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2338
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2339 /* identica */
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2340 pref =
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2341 purple_plugin_pref_new_with_name_and_label(OPT_SCREEN_NAME_IDENTICA,
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2342 "identi.ca");
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2343 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2344
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2345
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2346 /************************/
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2347 /* translation heading */
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
2348 /************************/
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2349 pref = purple_plugin_pref_new_with_label("Translation");
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2350 purple_plugin_pref_frame_add(frame, pref);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2351
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
2352 /* translation settings */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2353 pref = purple_plugin_pref_new_with_name_and_label(OPT_TRANSLATE_RECIPIENT,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2354 "Translate @username to link");
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2355 purple_plugin_pref_frame_add(frame, pref);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2356
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2357 pref = purple_plugin_pref_new_with_name_and_label(OPT_TRANSLATE_SENDER,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2358 "Translate sender name to link");
9
c6b80f47d4df added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 8
diff changeset
2359 purple_plugin_pref_frame_add(frame, pref);
c6b80f47d4df added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 8
diff changeset
2360
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2361 pref = purple_plugin_pref_new_with_name_and_label(OPT_TRANSLATE_CHANNEL,
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2362 "Translate channel name to link (wassr only)");
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2363 purple_plugin_pref_frame_add(frame, pref);
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2364
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2365
113
388a8ca50817 tweaked configure dialog.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 112
diff changeset
2366 /*******************/
388a8ca50817 tweaked configure dialog.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 112
diff changeset
2367 /* Utility heading */
388a8ca50817 tweaked configure dialog.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 112
diff changeset
2368 /*******************/
388a8ca50817 tweaked configure dialog.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 112
diff changeset
2369 pref = purple_plugin_pref_new_with_label("Utility");
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2370 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2371
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2372 /* show icon */
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2373 pref = purple_plugin_pref_new_with_name_and_label(OPT_SHOW_ICON,
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2374 "Show icons in conversation");
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2375 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2376
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2377 /* 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
2378 pref = purple_plugin_pref_new_with_name_and_label(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
2379 "Icon size in pixel");
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2380 purple_plugin_pref_set_bounds(pref, 16, 128);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2381 purple_plugin_pref_frame_add(frame, pref);
111
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2382 purple_prefs_connect_callback(plugin, OPT_ICON_SIZE,
799b28f181f8 added UI for icon size.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 110
diff changeset
2383 icon_size_prefs_cb, 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
2384
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2385 /* show text counter */
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2386 pref = purple_plugin_pref_new_with_name_and_label(OPT_COUNTER,
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2387 "Show text counter widget");
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2388 purple_plugin_pref_frame_add(frame, pref);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2389 purple_prefs_connect_callback(plugin, OPT_COUNTER,
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2390 counter_prefs_cb, NULL);
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2391
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2392 /* escape pseudo command setting */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2393 pref = purple_plugin_pref_new_with_name_and_label(OPT_ESCAPE_PSEUDO,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2394 "Escape pseudo command string");
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2395 purple_plugin_pref_frame_add(frame, pref);
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
2396
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2397 /* suppress oops message */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2398 pref = purple_plugin_pref_new_with_name_and_label(OPT_SUPPRESS_OOPS,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2399 "Suppress oops message");
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2400 purple_plugin_pref_frame_add(frame, pref);
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2401
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2402
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2403 /* notification setting */
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2404 pref =
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2405 purple_plugin_pref_new_with_name_and_label(OPT_PREVENT_NOTIFICATION,
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2406 "Do not notify incoming message");
99
f207cc8da6cd quick hack to make show icon configurable
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 98
diff changeset
2407 purple_plugin_pref_frame_add(frame, pref);
f207cc8da6cd quick hack to make show icon configurable
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 98
diff changeset
2408
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2409 /******************/
36
ae1d059fa6fe added oops message suppression functionality. it discards oops message if a sent message is more than 140 bytes and less than 140 letters.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 35
diff changeset
2410 /* sound heading */
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2411 /******************/
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2412 pref = purple_plugin_pref_new_with_label("Sound");
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2413 purple_plugin_pref_frame_add(frame, pref);
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2414
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
2415 /* sound settings for recipient */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2416 pref = purple_plugin_pref_new_with_name_and_label(OPT_PLAYSOUND_RECIPIENT,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2417 "Play sound on a reply to the user in the recipient list");
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
2418 purple_plugin_pref_frame_add(frame, pref);
4bd8c89b4749 now it plays sound when sender of message is in the userlist.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 9
diff changeset
2419
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
2420 /* recipient list */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2421 pref = purple_plugin_pref_new_with_name_and_label(OPT_USERLIST_RECIPIENT,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2422 "Recipient List");
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2423 purple_plugin_pref_frame_add(frame, pref);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
2424
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2425 /* sound id selector */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2426 pref =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2427 purple_plugin_pref_new_with_name_and_label(OPT_SOUNDID_RECIPIENT,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2428 "Recipient Sound");
9
c6b80f47d4df added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 8
diff changeset
2429
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2430 purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2431 purple_plugin_pref_add_choice(pref, "Arrive", GINT_TO_POINTER(0));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2432 purple_plugin_pref_add_choice(pref, "Leave", GINT_TO_POINTER(1));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2433 purple_plugin_pref_add_choice(pref, "Receive", GINT_TO_POINTER(2));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2434 purple_plugin_pref_add_choice(pref, "Fist Receive", GINT_TO_POINTER(3));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2435 purple_plugin_pref_add_choice(pref, "Send", GINT_TO_POINTER(4));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2436 purple_plugin_pref_add_choice(pref, "Chat Join", GINT_TO_POINTER(5));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2437 purple_plugin_pref_add_choice(pref, "Chat Leave", GINT_TO_POINTER(6));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2438 purple_plugin_pref_add_choice(pref, "Chat You Say", GINT_TO_POINTER(7));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2439 purple_plugin_pref_add_choice(pref, "Chat Someone Say", GINT_TO_POINTER(8));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2440 purple_plugin_pref_add_choice(pref, "Pounce Default", GINT_TO_POINTER(9));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2441 purple_plugin_pref_add_choice(pref, "Chat Nick Said", GINT_TO_POINTER(10));
9
c6b80f47d4df added capability to translate sender name into link
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 8
diff changeset
2442
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2443 purple_plugin_pref_frame_add(frame, pref);
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2444
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2445 /* sound setting for sender */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2446 pref = purple_plugin_pref_new_with_name_and_label(OPT_PLAYSOUND_SENDER,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2447 "Play sound if sender of a message is in the sender list");
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
2448 purple_plugin_pref_frame_add(frame, pref);
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
2449
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
2450 /* sender list */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2451 pref = purple_plugin_pref_new_with_name_and_label(OPT_USERLIST_SENDER,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2452 "Sender List");
7
44a66c52b190 - userlist no longer uses string list. now ' ,:;' separated string is used instead.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 6
diff changeset
2453 purple_plugin_pref_frame_add(frame, pref);
1
799955af57ad alpha version
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 0
diff changeset
2454
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
2455 /* sound id selector */
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2456 pref =
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2457 purple_plugin_pref_new_with_name_and_label(OPT_SOUNDID_SENDER,
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2458 "Sender Sound");
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
2459
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2460 purple_plugin_pref_set_type(pref, PURPLE_PLUGIN_PREF_CHOICE);
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2461 purple_plugin_pref_add_choice(pref, "Arrive", GINT_TO_POINTER(0));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2462 purple_plugin_pref_add_choice(pref, "Leave", GINT_TO_POINTER(1));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2463 purple_plugin_pref_add_choice(pref, "Receive", GINT_TO_POINTER(2));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2464 purple_plugin_pref_add_choice(pref, "Fist Receive", GINT_TO_POINTER(3));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2465 purple_plugin_pref_add_choice(pref, "Send", GINT_TO_POINTER(4));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2466 purple_plugin_pref_add_choice(pref, "Chat Join", GINT_TO_POINTER(5));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2467 purple_plugin_pref_add_choice(pref, "Chat Leave", GINT_TO_POINTER(6));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2468 purple_plugin_pref_add_choice(pref, "Chat You Say", GINT_TO_POINTER(7));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2469 purple_plugin_pref_add_choice(pref, "Chat Someone Say", GINT_TO_POINTER(8));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2470 purple_plugin_pref_add_choice(pref, "Pounce Default", GINT_TO_POINTER(9));
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2471 purple_plugin_pref_add_choice(pref, "Chat Nick Said", GINT_TO_POINTER(10));
59
3f9148c1dc60 added that to prevent notifications of incoming messages from twitter.com.
mikanbako <maoutwo@gmail.com>
parents: 56
diff changeset
2472 purple_plugin_pref_frame_add(frame, pref);
3f9148c1dc60 added that to prevent notifications of incoming messages from twitter.com.
mikanbako <maoutwo@gmail.com>
parents: 56
diff changeset
2473
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2474 /****************/
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2475 /* API heading */
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2476 /****************/
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2477 pref = purple_plugin_pref_new_with_label("API Based Post");
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2478 purple_plugin_pref_frame_add(frame, pref);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2479
107
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2480 /* post configuration */
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2481 pref = purple_plugin_pref_new_with_name_and_label(OPT_API_BASE_POST,
109
1fc8b74d96db fix typo.
mojin <truffechampagne@gmail.com>
parents: 108
diff changeset
2482 "Post Status to Twitter via API");
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2483 purple_plugin_pref_frame_add(frame, pref);
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2484
118
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2485 purple_prefs_connect_callback(plugin, 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
2486 api_base_post_cb, NULL);
8b097fcb9243 Add function that opens twitter's conversation window automatically when the
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 117
diff changeset
2487
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2488 /* password */
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2489 pref = purple_plugin_pref_new_with_name_and_label(OPT_PASSWORD_TWITTER,
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2490 "Password");
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2491 purple_plugin_pref_set_masked(pref, TRUE);
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2492 purple_plugin_pref_frame_add(frame, pref);
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2493
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2494 return frame;
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2495 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2496
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2497 static PurplePluginUiInfo pref_info = {
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2498 get_plugin_pref_frame
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2499 };
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2500
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2501 static PurplePluginInfo info = {
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2502 PURPLE_PLUGIN_MAGIC,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2503 PURPLE_MAJOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2504 PURPLE_MINOR_VERSION,
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2505 PURPLE_PLUGIN_STANDARD, /**< type */
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2506 NULL, /**< ui_req */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2507 0, /**< flags */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2508 NULL, /**< deps */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2509 PURPLE_PRIORITY_DEFAULT, /**< priority */
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2510 PLUGIN_ID, /**< id */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2511 "Pidgin-Twitter", /**< name */
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2512 "0.7.0", /**< version */
76
63bd9ca28be0 - added nosuke and iratqq to the authors.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 74
diff changeset
2513 "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
2514 "provides useful features for twitter", /** desc */
84
0c1f63882b8a preliminary wassr icon support. not yet completed.
Yoshiki Yazawa <yaz@honeyplnaet.jp>
parents: 83
diff changeset
2515 "Yoshiki Yazawa, mikanbako, \nKonosuke Watanabe, IWATA Ray, mojin, \nthe pidging-twitter team", /**< author */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2516 "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
2517 load_plugin, /**< load */
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2518 unload_plugin, /**< unload */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2519 NULL, /**< destroy */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2520 NULL, /**< ui_info */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2521 NULL, /**< extra_info */
19
0d7cbc984570 escape pseudo command feature has been added
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 16
diff changeset
2522 &pref_info, /**< pref info */
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2523 NULL
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2524 };
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2525
8
2c7c9eb4cdda added soundid selector
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 7
diff changeset
2526 static void
38
625e385036c3 applied indent to fix indentations
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 37
diff changeset
2527 init_plugin(PurplePlugin *plugin)
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2528 {
64
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2529 char *dirname = NULL;
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2530
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2531 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
2532 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
2533 if(dirname)
da37857f3033 - separated header things into pidgin-twitter.h
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 63
diff changeset
2534 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
2535 g_free(dirname);
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2536
6
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2537 /* add plugin preferences */
ca8f95431962 fixed indentation
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 5
diff changeset
2538 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
2539 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
2540 purple_prefs_add_bool(OPT_TRANSLATE_SENDER, TRUE);
97
24ad534e438e linkfy #channelname per user configuration.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 96
diff changeset
2541 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
2542 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
2543
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
2544 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
2545 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
2546 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
2547 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
2548 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
2549 purple_prefs_add_string(OPT_USERLIST_SENDER, DEFAULT_LIST);
31
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2550
312a745dece6 added letter counter
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 30
diff changeset
2551 purple_prefs_add_bool(OPT_COUNTER, TRUE);
37
bafe2abf2d3b - made suppress oops configurable
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents: 36
diff changeset
2552 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
2553 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
2554 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
2555
72
af4f31bce461 Support API base message posting
Konosuke Watanabe <sasugaanija@gmail.com>
parents: 71
diff changeset
2556 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
2557 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
2558 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
2559
eb77d409c235 - do neither save nor cache icon image if pixbuf can not be obtained.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 104
diff changeset
2560 purple_prefs_add_int(OPT_ICON_SIZE, 48);
110
8b98a26f44ce made screen name for each service configurable.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 109
diff changeset
2561 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
2562 purple_prefs_add_string(OPT_SCREEN_NAME_IDENTICA, EMPTY);
115
7d0dd0e1dbd0 very preliminary twitter API get status feature.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 113
diff changeset
2563
0
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2564 }
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2565
2413369d1b01 initial import
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
diff changeset
2566 PURPLE_INIT_PLUGIN(pidgin_twitter, init_plugin, info)