pidgin/plugins/gevolution/gevo-util.c

Tue, 07 May 2013 05:04:46 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Tue, 07 May 2013 05:04:46 -0400
changeset 33923
0fcc5635daba
parent 32438
dc8991868906
child 34622
753f46dd000f
permissions
-rw-r--r--

Rewrite debug window filter in JS.

Note, this does cause a couple regressions, but they are probably not
that big a deal. First, the JS regular expression syntax is slightly
different. Second, the JS regex API lacks a way to reliably determine
the location of matched groups, so we can't highlight just the groups
and must highlight the entire expression.

I suspect that none of our users ever had to use any fancy regex in the
debug window, and that most of our developers didn't even know it could
be done. So I doubt these regressions will cause much pain.

20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
1 /*
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
2 * Evolution integration plugin for Purple
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
3 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
4 * Copyright (C) 2003 Christian Hammond.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
5 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
7 * modify it under the terms of the GNU General Public License as
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
8 * published by the Free Software Foundation; either version 2 of the
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
9 * License, or (at your option) any later version.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
10 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful, but
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
14 * General Public License for more details.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
15 *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
19 * 02111-1301, USA.
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
20 */
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
21 #include "internal.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
22 #include "gtkblist.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
23 #include "pidgin.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
24 #include "gtkutils.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
25
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
26 #include "gevolution.h"
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
27
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
28 void
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
29 gevo_add_buddy(PurpleAccount *account, const char *group_name,
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 22602
diff changeset
30 const char *buddy_name, const char *alias)
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
31 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
32 PurpleConversation *conv = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
33 PurpleBuddy *buddy;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
34 PurpleGroup *group;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
35
25889
26d9ca30335c Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents: 22602
diff changeset
36 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy_name, account);
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
37
28391
bde9215d656e Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents: 27706
diff changeset
38 group = purple_find_group(group_name);
bde9215d656e Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents: 27706
diff changeset
39 if (group == NULL)
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
40 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
41 group = purple_group_new(group_name);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
42 purple_blist_add_group(group, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
43 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
44
28391
bde9215d656e Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents: 27706
diff changeset
45 buddy = purple_find_buddy_in_group(account, buddy_name, group);
bde9215d656e Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents: 27706
diff changeset
46 if (buddy == NULL)
bde9215d656e Fix what looks like an incorrect merge that caused gevolution's add buddy dialog
Paul Aurich <darkrain42@pidgin.im>
parents: 27706
diff changeset
47 {
26091
83f52ce0929f propagate from branch 'im.pidgin.pidgin' (head b4bbfacd7f2050d87deeda12ea7bb3adc3608cb7)
Paul Aurich <darkrain42@pidgin.im>
parents: 25889 24867
diff changeset
48 buddy = purple_buddy_new(account, buddy_name, alias);
24867
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 22602
diff changeset
49 purple_blist_add_buddy(buddy, NULL, group, NULL);
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 22602
diff changeset
50 }
69105eeaf010 The Add Buddy dialog should not blindly create a duplicate buddy in a group
Paul Aurich <darkrain42@pidgin.im>
parents: 22602
diff changeset
51
32438
dc8991868906 A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30710
diff changeset
52 purple_account_add_buddy(account, buddy, NULL);
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
53
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
54 if (conv != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
55 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
56 purple_buddy_icon_update(purple_conv_im_get_icon(PURPLE_CONV_IM(conv)));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
57 purple_conversation_update(conv, PURPLE_CONV_UPDATE_ADD);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
58 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
59 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
60
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
61 GList *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
62 gevo_get_groups(void)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
63 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
64 static GList *list = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
65 PurpleGroup *g;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
66 PurpleBlistNode *gnode;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
67
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
68 g_list_free(list);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
69 list = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
70
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
71 if (purple_get_blist()->root == NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
72 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
73 list = g_list_append(list, (gpointer)_("Buddies"));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
74 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
75 else
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
76 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
77 for (gnode = purple_get_blist()->root;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
78 gnode != NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
79 gnode = gnode->next)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
80 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
81 if (PURPLE_BLIST_NODE_IS_GROUP(gnode))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
82 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
83 g = (PurpleGroup *)gnode;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
84 list = g_list_append(list, g->name);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
85 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
86 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
87 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
88
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
89 return list;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
90 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
91
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
92 EContactField
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
93 gevo_prpl_get_field(PurpleAccount *account, PurpleBuddy *buddy)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
94 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
95 EContactField protocol_field = 0;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
96 const char *protocol_id;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
97
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
98 g_return_val_if_fail(account != NULL, 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
99
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
100 protocol_id = purple_account_get_protocol_id(account);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
101
29935
d28b5dcc7554 Remove a bunch of old references to prpl-oscar
Mark Doliner <markdoliner@pidgin.im>
parents: 28391
diff changeset
102 if (!strcmp(protocol_id, "prpl-aim"))
22602
68b71eecdaaf Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
103 protocol_field = E_CONTACT_IM_AIM;
68b71eecdaaf Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
104 else if (!strcmp(protocol_id, "prpl-icq"))
68b71eecdaaf Update gevolution plugin with support for the new protocol ids for AIM &
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20644
diff changeset
105 protocol_field = E_CONTACT_IM_ICQ;
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
106 else if (!strcmp(protocol_id, "prpl-msn"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
107 protocol_field = E_CONTACT_IM_MSN;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
108 else if (!strcmp(protocol_id, "prpl-yahoo"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
109 protocol_field = E_CONTACT_IM_YAHOO;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
110 else if (!strcmp(protocol_id, "prpl-jabber"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
111 protocol_field = E_CONTACT_IM_JABBER;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
112 else if (!strcmp(protocol_id, "prpl-novell"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
113 protocol_field = E_CONTACT_IM_GROUPWISE;
30710
b3c55bf4a7c6 Add GG support to gevolution.
Etan Reisner <deryni@pidgin.im>
parents: 29935
diff changeset
114 else if (!strcmp(protocol_id, "prpl-gg"))
b3c55bf4a7c6 Add GG support to gevolution.
Etan Reisner <deryni@pidgin.im>
parents: 29935
diff changeset
115 protocol_field = E_CONTACT_IM_GADUGADU;
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
116
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
117 return protocol_field;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
118 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
119
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
120 gboolean
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
121 gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
122 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
123 return (gevo_prpl_get_field(account, buddy) != 0);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
124 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
125
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
126 gboolean
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
127 gevo_load_addressbook(const gchar* uri, EBook **book, GError **error)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
128 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
129 gboolean result = FALSE;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
130
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
131 g_return_val_if_fail(book != NULL, FALSE);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
132
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
133 if (uri == NULL)
27706
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
134 *book = e_book_new_system_addressbook(error);
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
135 else
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
136 *book = e_book_new_from_uri(uri, error);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
137
27706
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
138 if (*book == NULL)
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
139 return FALSE;
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
140
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
141 *error = NULL;
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
142
ae1893256821 Hopefully provide better debug logs when gevolution plugin can't open the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 26092
diff changeset
143 result = e_book_open(*book, FALSE, error);
20400
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
144
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
145 if (!result && *book != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
146 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
147 g_object_unref(*book);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
148 *book = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
149 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
150
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
151 return result;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
152 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
153
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
154 char *
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
155 gevo_get_email_for_buddy(PurpleBuddy *buddy)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
156 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
157 EContact *contact;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
158 char *mail = NULL;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
159
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
160 contact = gevo_search_buddy_in_contacts(buddy, NULL);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
161
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
162 if (contact != NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
163 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
164 mail = g_strdup(e_contact_get(contact, E_CONTACT_EMAIL_1));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
165 g_object_unref(contact);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
166 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
167
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
168 if (mail == NULL)
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
169 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
170 PurpleAccount *account = purple_buddy_get_account(buddy);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
171 const char *prpl_id = purple_account_get_protocol_id(account);
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
172
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
173 if (!strcmp(prpl_id, "prpl-msn"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
174 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
175 mail = g_strdup(purple_normalize(account,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
176 purple_buddy_get_name(buddy)));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
177 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
178 else if (!strcmp(prpl_id, "prpl-yahoo"))
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
179 {
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
180 mail = g_strdup_printf("%s@yahoo.com",
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
181 purple_normalize(account,
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
182 purple_buddy_get_name(buddy)));
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
183 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
184 }
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
185
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
186 return mail;
f7a9cc27b997 disapproval of revision '88f86f065f99effaf1315dafbae8c9763ca5750d'
Luke Schierer <lschiere@pidgin.im>
parents:
diff changeset
187 }

mercurial