Wed, 13 May 2009 20:29:03 +0000
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, "<", 4) || |
|
c7d0cd0552ed
Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff
changeset
|
79 | !g_ascii_strncasecmp(c, ">", 4) || |
|
c7d0cd0552ed
Add a gnt TinyURL plugin. Closes #2017
Richard Nelson <wabz@pidgin.im>
parents:
diff
changeset
|
80 | !g_ascii_strncasecmp(c, """, 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) |