finch/plugins/gnttinyurl.c

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 26732
caf9b30352f5
child 27172
f4f758e01704
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

26721
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
1 /**
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
2 * @file gnttinyurl.c
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
3 *
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2009 Richard Nelson <wabz@whatsbeef.net>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
5 *
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
9 * (at your option) any later version.
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
10 *
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
14 * GNU General Public License for more details.
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
15 *
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
19 */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
20
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
21
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
22 #include "internal.h"
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
23 #include <glib.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
24
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
25 #define PLUGIN_STATIC_NAME TinyURL
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
26 #define PREFS_BASE "/plugins/gnt/tinyurl"
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
27 #define PREF_LENGTH PREFS_BASE "/length"
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
28 #define PREF_URL PREFS_BASE "/url"
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
29
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
30
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
31 #include <conversation.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
32 #include <signals.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
33
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
34 #include <glib.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
35
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
36 #include <plugin.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
37 #include <version.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
38 #include <debug.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
39 #include <notify.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
40
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
41 #include <gntconv.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
42
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
43 #include <gntplugin.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
44 #include <gnttextview.h>
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
45
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
46 static int tag_num = 0;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
47
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
48 typedef struct
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
49 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
50 PurpleConversation *conv;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
51 gchar *tag;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
52 int num;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
53 } CbInfo;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
54
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
55 /* 3 functions from util.c */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
56 static gboolean
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
57 badchar(char c)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
58 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
59 switch (c) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
60 case ' ':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
61 case ',':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
62 case '\0':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
63 case '\n':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
64 case '\r':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
65 case '<':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
66 case '>':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
67 case '"':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
68 case '\'':
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
69 return TRUE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
70 default:
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
71 return FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
72 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
73 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
74
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
75 static gboolean
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
76 badentity(const char *c)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
77 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
78 if (!g_ascii_strncasecmp(c, "&lt;", 4) ||
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
79 !g_ascii_strncasecmp(c, "&gt;", 4) ||
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
80 !g_ascii_strncasecmp(c, "&quot;", 6)) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
81 return TRUE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
82 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
83 return FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
84 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
85
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
86 static GList *extract_urls(char *text) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
87 const char *t, *c, *q = NULL;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
88 char *url_buf;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
89 GList *ret = NULL;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
90 gboolean inside_html = FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
91 int inside_paren = 0;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
92 c = text;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
93 while (*c) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
94 if (*c == '(' && !inside_html) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
95 inside_paren++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
96 c++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
97 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
98 if (inside_html) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
99 if (*c == '>') {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
100 inside_html = FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
101 } else if (!q && (*c == '\"' || *c == '\'')) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
102 q = c;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
103 } else if(q) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
104 if(*c == *q)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
105 q = NULL;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
106 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
107 } else if (*c == '<') {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
108 inside_html = TRUE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
109 if (!g_ascii_strncasecmp(c, "<A", 2)) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
110 while (1) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
111 if (*c == '>') {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
112 inside_html = FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
113 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
114 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
115 c++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
116 if (!(*c))
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
117 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
118 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
119 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
120 } else if ((*c=='h') && (!g_ascii_strncasecmp(c, "http://", 7) ||
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
121 (!g_ascii_strncasecmp(c, "https://", 8)))) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
122 t = c;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
123 while (1) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
124 if (badchar(*t) || badentity(t)) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
125
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
126 if ((!g_ascii_strncasecmp(c, "http://", 7) && (t - c == 7)) ||
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
127 (!g_ascii_strncasecmp(c, "https://", 8) && (t - c == 8))) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
128 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
129 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
130
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
131 if (*(t) == ',' && (*(t + 1) != ' ')) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
132 t++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
133 continue;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
134 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
135
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
136 if (*(t - 1) == '.')
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
137 t--;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
138 if ((*(t - 1) == ')' && (inside_paren > 0))) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
139 t--;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
140 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
141
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
142 url_buf = g_strndup(c, t - c);
26723
43deac783be1 Remove usage of g_strcmp0 (which would bump the glib version requirement) where strcmp will do nicely
Richard Nelson <wabz@pidgin.im>
parents: 26721
diff changeset
143 if (!g_list_find_custom(ret, url_buf, (GCompareFunc)strcmp)) {
26721
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
144 purple_debug_info("TinyURL", "Added URL %s\n", url_buf);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
145 ret = g_list_append(ret, g_strdup(url_buf));
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
146 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
147 c = t;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
148 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
149 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
150 t++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
151
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
152 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
153 } else if (!g_ascii_strncasecmp(c, "www.", 4) && (c == text || badchar(c[-1]) || badentity(c-1))) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
154 if (c[4] != '.') {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
155 t = c;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
156 while (1) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
157 if (badchar(*t) || badentity(t)) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
158 if (t - c == 4) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
159 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
160 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
161
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
162 if (*(t) == ',' && (*(t + 1) != ' ')) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
163 t++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
164 continue;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
165 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
166
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
167 if (*(t - 1) == '.')
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
168 t--;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
169 if ((*(t - 1) == ')' && (inside_paren > 0))) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
170 t--;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
171 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
172 url_buf = g_strndup(c, t - c);
26723
43deac783be1 Remove usage of g_strcmp0 (which would bump the glib version requirement) where strcmp will do nicely
Richard Nelson <wabz@pidgin.im>
parents: 26721
diff changeset
173 if (!g_list_find_custom(ret, url_buf, (GCompareFunc)strcmp)) {
26721
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
174 purple_debug_info("TinyURL", "Added URL %s\n", url_buf);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
175 ret = g_list_append(ret, url_buf);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
176 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
177 c = t;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
178 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
179 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
180 t++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
181 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
182 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
183 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
184 if (*c == ')' && !inside_html) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
185 inside_paren--;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
186 c++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
187 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
188 if (*c == 0)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
189 break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
190 c++;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
191 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
192 return ret;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
193 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
194
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
195 static void url_fetched(PurpleUtilFetchUrlData *url_data, gpointer cb_data,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
196 const gchar *url_text, gsize len, const gchar *error_message)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
197 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
198 CbInfo *data = (CbInfo *)cb_data;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
199 PurpleConversation *conv = data->conv;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
200 GList *convs = purple_get_conversations();
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
201 /* ensure the conversation still exists */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
202 for (; convs; convs = convs->next) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
203 if ((PurpleConversation *)(convs->data) == conv) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
204 FinchConv *fconv = FINCH_CONV(conv);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
205 gchar *str = g_strdup_printf("[%d] %s", data->num, url_text);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
206 GntTextView *tv = GNT_TEXT_VIEW(fconv->tv);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
207 gnt_text_view_tag_change(tv, data->tag, str, FALSE);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
208 g_free(str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
209 g_free(data->tag);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
210 return;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
211 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
212 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
213 g_free(data->tag);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
214 purple_debug_info("TinyURL", "Conversation no longer exists... :(\n");
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
215 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
216
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
217 static void free_urls(gpointer data, gpointer null)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
218 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
219 g_free(data);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
220 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
221
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
222 static gboolean receiving_msg(PurpleAccount *account, char **sender, char **message,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
223 PurpleConversation *conv, PurpleMessageFlags *flags) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
224 GString *t;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
225 GList *iter, *urls;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
226 int c = 0;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
227
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
228 if (!(*flags & PURPLE_MESSAGE_RECV) || *flags & PURPLE_MESSAGE_INVISIBLE)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
229 return FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
230
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
231 t = g_string_new(*message);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
232 urls = purple_conversation_get_data(conv, "TinyURLs");
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
233 if (urls != NULL) /* message was cancelled somewhere? Reset. */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
234 g_list_foreach(urls, free_urls, NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
235 g_list_free(urls);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
236 urls = extract_urls(t->str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
237 g_free(*message);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
238 for (iter = urls; iter; iter = iter->next) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
239 if (g_utf8_strlen((char *)iter->data, -1) >= purple_prefs_get_int(PREF_LENGTH)) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
240 int pos, x = 0;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
241 gchar *j, *s, *str, *orig;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
242 glong len = g_utf8_strlen(iter->data, -1);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
243 s = g_strdup(t->str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
244 orig = s;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
245 str = g_strdup_printf("[%d]", ++c);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
246 while ((j = strstr(s, iter->data))) { /* replace all occurrences */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
247 pos = j - orig + (x++ * 3);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
248 s = j + len;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
249 t = g_string_insert(t, pos + len, str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
250 if (*s == '\0') break;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
251 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
252 g_free(orig);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
253 g_free(str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
254 continue;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
255 } else {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
256 if (iter->prev) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
257 iter = iter->prev;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
258 g_free(iter->next->data);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
259 urls = g_list_delete_link(urls, iter->next);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
260 } else {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
261 g_free(iter->data);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
262 g_list_free(urls);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
263 urls = NULL;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
264 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
265 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
266 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
267 *message = t->str;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
268 g_string_free(t, FALSE);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
269 if (conv == NULL)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
270 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, *sender);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
271 purple_conversation_set_data(conv, "TinyURLs", urls);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
272 return FALSE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
273 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
274
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
275 static void received_msg(PurpleAccount *account, char *sender, char *message,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
276 PurpleConversation *conv, PurpleMessageFlags flags) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
277 int c;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
278 GList *urls, *iter;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
279 FinchConv *fconv = FINCH_CONV(conv);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
280 GntTextView *tv = GNT_TEXT_VIEW(fconv->tv);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
281
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
282 urls = purple_conversation_get_data(conv, "TinyURLs");
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
283 if (!(flags & PURPLE_MESSAGE_RECV) || urls == NULL)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
284 return;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
285
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
286 for (iter = urls, c = 0; iter; iter = iter->next) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
287 int i;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
288 CbInfo *cbdata;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
289 gchar *url, *str, *tmp;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
290 cbdata = g_new(CbInfo, 1);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
291 cbdata->num = ++c;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
292 cbdata->tag = g_strdup_printf("%s%d", "tiny_", tag_num++);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
293 cbdata->conv = conv;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
294 tmp = purple_unescape_html((char *)iter->data);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
295 if (g_ascii_strncasecmp(tmp, "http://", 7) && g_ascii_strncasecmp(tmp, "https://", 8)) {
26732
caf9b30352f5 encode urls passed to tinyurl
Richard Nelson <wabz@pidgin.im>
parents: 26723
diff changeset
296 url = g_strdup_printf("%shttp%%3A%%2F%%2F%s", purple_prefs_get_string(PREF_URL), purple_url_encode(tmp));
26721
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
297 } else {
26732
caf9b30352f5 encode urls passed to tinyurl
Richard Nelson <wabz@pidgin.im>
parents: 26723
diff changeset
298 url = g_strdup_printf("%s%s", purple_prefs_get_string(PREF_URL), purple_url_encode(tmp));
26721
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
299 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
300 g_free(tmp);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
301 purple_util_fetch_url(url, TRUE, "finch", FALSE, url_fetched, cbdata);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
302 i = gnt_text_view_get_lines_below(tv);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
303 str = g_strdup_printf(_("\nFetching TinyURL..."));
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
304 gnt_text_view_append_text_with_tag((tv), str, GNT_TEXT_FLAG_DIM, cbdata->tag);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
305 g_free(str);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
306 if (i == 0)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
307 gnt_text_view_scroll(tv, 0);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
308 g_free(iter->data);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
309 g_free(url);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
310 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
311 g_list_free(urls);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
312 purple_conversation_set_data(conv, "TinyURLs", NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
313 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
314
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
315 static void
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
316 free_conv_urls(PurpleConversation *conv)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
317 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
318 GList *urls = purple_conversation_get_data(conv, "TinyURLs");
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
319 if (urls)
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
320 g_list_foreach(urls, free_urls, NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
321 g_list_free(urls);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
322 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
323
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
324 static gboolean
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
325 plugin_load(PurplePlugin *plugin) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
326 purple_signal_connect(purple_conversations_get_handle(),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
327 "wrote-im-msg",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
328 plugin, PURPLE_CALLBACK(received_msg), NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
329 purple_signal_connect(purple_conversations_get_handle(),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
330 "wrote-chat-msg",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
331 plugin, PURPLE_CALLBACK(received_msg), NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
332 purple_signal_connect(purple_conversations_get_handle(),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
333 "receiving-im-msg",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
334 plugin, PURPLE_CALLBACK(receiving_msg), NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
335 purple_signal_connect(purple_conversations_get_handle(),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
336 "receiving-chat-msg",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
337 plugin, PURPLE_CALLBACK(receiving_msg), NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
338 purple_signal_connect(purple_conversations_get_handle(),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
339 "deleting-conversation",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
340 plugin, PURPLE_CALLBACK(free_conv_urls), NULL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
341
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
342 return TRUE;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
343 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
344
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
345 static PurplePluginPrefFrame *
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
346 get_plugin_pref_frame(PurplePlugin *plugin) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
347
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
348 PurplePluginPrefFrame *frame;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
349 PurplePluginPref *pref;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
350
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
351 frame = purple_plugin_pref_frame_new();
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
352
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
353 pref = purple_plugin_pref_new_with_name(PREF_LENGTH);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
354 purple_plugin_pref_set_label(pref, _("Only create TinyURL for urls"
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
355 " of this length or greater"));
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
356 purple_plugin_pref_frame_add(frame, pref);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
357 pref = purple_plugin_pref_new_with_name(PREF_URL);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
358 purple_plugin_pref_set_label(pref, _("TinyURL (or other) address prefix"));
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
359 purple_plugin_pref_frame_add(frame, pref);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
360
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
361 return frame;
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
362 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
363
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
364 static PurplePluginUiInfo prefs_info = {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
365 get_plugin_pref_frame,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
366 0, /* page_num (Reserved) */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
367 NULL, /* frame (Reserved) */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
368
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
369 /* padding */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
370 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
371 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
372 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
373 NULL
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
374 };
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
375
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
376 static PurplePluginInfo info =
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
377 {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
378 PURPLE_PLUGIN_MAGIC,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
379 PURPLE_MAJOR_VERSION,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
380 PURPLE_MINOR_VERSION,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
381 PURPLE_PLUGIN_STANDARD,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
382 FINCH_PLUGIN_TYPE,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
383 0,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
384 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
385 PURPLE_PRIORITY_DEFAULT,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
386 "TinyURL",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
387 N_("TinyURL"),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
388 DISPLAY_VERSION,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
389 N_("TinyURL plugin"),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
390 N_("When receiving a message with URL(s), TinyURL for easier copying"),
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
391 "Richard Nelson <wabz@whatsbeef.net>",
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
392 PURPLE_WEBSITE,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
393 plugin_load,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
394 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
395 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
396 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
397 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
398 &prefs_info, /**< prefs_info */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
399 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
400
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
401 /* padding */
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
402 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
403 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
404 NULL,
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
405 NULL
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
406 };
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
407
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
408 static void
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
409 init_plugin(PurplePlugin *plugin) {
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
410 purple_prefs_add_none(PREFS_BASE);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
411 purple_prefs_add_int(PREF_LENGTH, 30);
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
412 purple_prefs_add_string(PREF_URL, "http://tinyurl.com/api-create.php?url=");
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
413 }
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
414
c7d0cd0552ed Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff changeset
415 PURPLE_INIT_PLUGIN(PLUGIN_STATIC_NAME, init_plugin, info)

mercurial