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