Mercurial > pidgin
annotate libpurple/protocols/jabber/libgtalk.c @ 32700:b961222cf067
Remove UI hack for XMPP sub-prpls.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Wed, 28 Dec 2011 09:00:48 +0000 |
parents | eca1f14826e5 |
children | 498ededa58cb |
rev | line source |
---|---|
32699
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
1 /* purple |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
2 * |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
3 * Purple is the legal property of its developers, whose names are too numerous |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
4 * to list here. Please refer to the COPYRIGHT file distributed with this |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
5 * source distribution. |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
6 * |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
10 * (at your option) any later version. |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
11 * |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
15 * GNU General Public License for more details. |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
16 * |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU General Public License |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
18 * along with this program; if not, write to the Free Software |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
20 * |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
21 */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
22 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
23 /* libgtalk is the Google Talk XMPP protocol plugin. It is linked against |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
24 * libjabbercommon, which may be used to support other protocols (Bonjour) which |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
25 * may need to share code. |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
26 */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
27 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
28 #include "internal.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
29 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
30 #include "accountopt.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
31 #include "core.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
32 #include "debug.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
33 #include "version.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
34 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
35 #include "iq.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
36 #include "jabber.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
37 #include "chat.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
38 #include "disco.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
39 #include "message.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
40 #include "roster.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
41 #include "si.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
42 #include "message.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
43 #include "presence.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
44 #include "google/google.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
45 #include "pep.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
46 #include "usermood.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
47 #include "usertune.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
48 #include "caps.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
49 #include "data.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
50 #include "ibb.h" |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
51 |
32700
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
52 static const char * |
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
53 gtalk_list_icon(PurpleAccount *a, PurpleBuddy *b) |
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
54 { |
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
55 return "google-talk"; |
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
56 } |
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
57 |
32699
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
58 static PurplePlugin *my_protocol = NULL; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
59 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
60 static PurplePluginProtocolInfo prpl_info = |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
61 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
62 sizeof(PurplePluginProtocolInfo), /* struct_size */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
63 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_MAIL_CHECK | |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
64 #ifdef HAVE_CYRUS_SASL |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
65 OPT_PROTO_PASSWORD_OPTIONAL | |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
66 #endif |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
67 OPT_PROTO_SLASH_COMMANDS_NATIVE, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
68 NULL, /* user_splits */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
69 NULL, /* protocol_options */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
70 {"png", 32, 32, 96, 96, 0, PURPLE_ICON_SCALE_SEND | PURPLE_ICON_SCALE_DISPLAY}, /* icon_spec */ |
32700
b961222cf067
Remove UI hack for XMPP sub-prpls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32699
diff
changeset
|
71 gtalk_list_icon, /* list_icon */ |
32699
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
72 jabber_list_emblem, /* list_emblems */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
73 jabber_status_text, /* status_text */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
74 jabber_tooltip_text, /* tooltip_text */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
75 jabber_status_types, /* status_types */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
76 jabber_blist_node_menu, /* blist_node_menu */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
77 jabber_chat_info, /* chat_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
78 jabber_chat_info_defaults, /* chat_info_defaults */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
79 jabber_login, /* login */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
80 jabber_close, /* close */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
81 jabber_message_send_im, /* send_im */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
82 jabber_set_info, /* set_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
83 jabber_send_typing, /* send_typing */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
84 jabber_buddy_get_info, /* get_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
85 jabber_set_status, /* set_status */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
86 jabber_idle_set, /* set_idle */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
87 NULL, /* change_passwd */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
88 jabber_roster_add_buddy, /* add_buddy */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
89 NULL, /* add_buddies */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
90 jabber_roster_remove_buddy, /* remove_buddy */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
91 NULL, /* remove_buddies */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
92 NULL, /* add_permit */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
93 jabber_add_deny, /* add_deny */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
94 NULL, /* rem_permit */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
95 jabber_rem_deny, /* rem_deny */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
96 NULL, /* set_permit_deny */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
97 jabber_chat_join, /* join_chat */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
98 NULL, /* reject_chat */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
99 jabber_get_chat_name, /* get_chat_name */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
100 jabber_chat_invite, /* chat_invite */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
101 jabber_chat_leave, /* chat_leave */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
102 NULL, /* chat_whisper */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
103 jabber_message_send_chat, /* chat_send */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
104 jabber_keepalive, /* keepalive */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
105 jabber_register_account, /* register_user */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
106 NULL, /* get_cb_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
107 jabber_roster_alias_change, /* alias_buddy */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
108 jabber_roster_group_change, /* group_buddy */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
109 jabber_roster_group_rename, /* rename_group */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
110 NULL, /* buddy_free */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
111 jabber_convo_closed, /* convo_closed */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
112 jabber_normalize, /* normalize */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
113 jabber_set_buddy_icon, /* set_buddy_icon */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
114 NULL, /* remove_group */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
115 jabber_chat_buddy_real_name, /* get_cb_real_name */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
116 jabber_chat_set_topic, /* set_chat_topic */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
117 jabber_find_blist_chat, /* find_blist_chat */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
118 jabber_roomlist_get_list, /* roomlist_get_list */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
119 jabber_roomlist_cancel, /* roomlist_cancel */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
120 NULL, /* roomlist_expand_category */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
121 jabber_can_receive_file, /* can_receive_file */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
122 jabber_si_xfer_send, /* send_file */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
123 jabber_si_new_xfer, /* new_xfer */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
124 jabber_offline_message, /* offline_message */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
125 NULL, /* whiteboard_prpl_ops */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
126 jabber_prpl_send_raw, /* send_raw */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
127 jabber_roomlist_room_serialize, /* roomlist_room_serialize */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
128 jabber_unregister_account, /* unregister_user */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
129 jabber_send_attention, /* send_attention */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
130 jabber_attention_types, /* attention_types */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
131 NULL, /* get_account_text_table */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
132 jabber_initiate_media, /* initiate_media */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
133 jabber_get_media_caps, /* get_media_caps */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
134 jabber_get_moods, /* get_moods */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
135 NULL, /* set_public_alias */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
136 NULL /* get_public_alias */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
137 }; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
138 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
139 static gboolean load_plugin(PurplePlugin *plugin) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
140 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
141 jabber_plugin_init(plugin); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
142 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
143 return TRUE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
144 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
145 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
146 static gboolean unload_plugin(PurplePlugin *plugin) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
147 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
148 jabber_plugin_uninit(plugin); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
149 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
150 return TRUE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
151 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
152 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
153 static PurplePluginInfo info = |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
154 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
155 PURPLE_PLUGIN_MAGIC, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
156 PURPLE_MAJOR_VERSION, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
157 PURPLE_MINOR_VERSION, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
158 PURPLE_PLUGIN_PROTOCOL, /**< type */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
159 NULL, /**< ui_requirement */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
160 0, /**< flags */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
161 NULL, /**< dependencies */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
162 PURPLE_PRIORITY_DEFAULT, /**< priority */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
163 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
164 "prpl-gtalk", /**< id */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
165 "Google Talk (XMPP)", /**< name */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
166 DISPLAY_VERSION, /**< version */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
167 /** summary */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
168 N_("XMPP Protocol Plugin"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
169 /** description */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
170 N_("XMPP Protocol Plugin"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
171 NULL, /**< author */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
172 PURPLE_WEBSITE, /**< homepage */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
173 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
174 load_plugin, /**< load */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
175 unload_plugin, /**< unload */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
176 NULL, /**< destroy */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
177 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
178 NULL, /**< ui_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
179 &prpl_info, /**< extra_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
180 NULL, /**< prefs_info */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
181 jabber_actions, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
182 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
183 /* padding */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
184 NULL, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
185 NULL, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
186 NULL, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
187 NULL |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
188 }; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
189 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
190 static PurpleAccount *find_acct(const char *prpl, const char *acct_id) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
191 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
192 PurpleAccount *acct = NULL; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
193 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
194 /* If we have a specific acct, use it */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
195 if (acct_id) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
196 acct = purple_accounts_find(acct_id, prpl); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
197 if (acct && !purple_account_is_connected(acct)) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
198 acct = NULL; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
199 } else { /* Otherwise find an active account for the protocol */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
200 GList *l = purple_accounts_get_all(); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
201 while (l) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
202 if (!strcmp(prpl, purple_account_get_protocol_id(l->data)) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
203 && purple_account_is_connected(l->data)) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
204 acct = l->data; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
205 break; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
206 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
207 l = l->next; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
208 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
209 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
210 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
211 return acct; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
212 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
213 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
214 static gboolean xmpp_uri_handler(const char *proto, const char *user, GHashTable *params) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
215 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
216 char *acct_id = params ? g_hash_table_lookup(params, "account") : NULL; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
217 PurpleAccount *acct; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
218 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
219 if (g_ascii_strcasecmp(proto, "xmpp")) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
220 return FALSE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
221 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
222 acct = find_acct(purple_plugin_get_id(my_protocol), acct_id); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
223 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
224 if (!acct) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
225 return FALSE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
226 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
227 /* xmpp:romeo@montague.net?message;subject=Test%20Message;body=Here%27s%20a%20test%20message */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
228 /* params is NULL if the URI has no '?' (or anything after it) */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
229 if (!params || g_hash_table_lookup_extended(params, "message", NULL, NULL)) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
230 char *body = g_hash_table_lookup(params, "body"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
231 if (user && *user) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
232 PurpleConversation *conv = |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
233 purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, user); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
234 purple_conversation_present(conv); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
235 if (body && *body) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
236 purple_conv_send_confirm(conv, body); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
237 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
238 } else if (g_hash_table_lookup_extended(params, "roster", NULL, NULL)) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
239 char *name = g_hash_table_lookup(params, "name"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
240 if (user && *user) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
241 purple_blist_request_add_buddy(acct, user, NULL, name); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
242 } else if (g_hash_table_lookup_extended(params, "join", NULL, NULL)) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
243 PurpleConnection *gc = purple_account_get_connection(acct); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
244 if (user && *user) { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
245 GHashTable *params = jabber_chat_info_defaults(gc, user); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
246 jabber_chat_join(gc, params); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
247 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
248 return TRUE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
249 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
250 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
251 return FALSE; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
252 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
253 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
254 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
255 static void |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
256 init_plugin(PurplePlugin *plugin) |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
257 { |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
258 PurpleAccountUserSplit *split; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
259 PurpleAccountOption *option; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
260 GList *encryption_values = NULL; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
261 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
262 /* Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
263 split = purple_account_user_split_new(_("Domain"), NULL, '@'); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
264 purple_account_user_split_set_reverse(split, FALSE); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
265 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
266 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
267 split = purple_account_user_split_new(_("Resource"), "", '/'); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
268 purple_account_user_split_set_reverse(split, FALSE); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
269 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
270 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
271 #define ADD_VALUE(list, desc, v) { \ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
272 PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); \ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
273 kvp->key = g_strdup((desc)); \ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
274 kvp->value = g_strdup((v)); \ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
275 list = g_list_prepend(list, kvp); \ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
276 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
277 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
278 ADD_VALUE(encryption_values, _("Require encryption"), "require_tls"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
279 ADD_VALUE(encryption_values, _("Use encryption if available"), "opportunistic_tls"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
280 ADD_VALUE(encryption_values, _("Use old-style SSL"), "old_ssl"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
281 #if 0 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
282 ADD_VALUE(encryption_values, "None", "none"); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
283 #endif |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
284 encryption_values = g_list_reverse(encryption_values); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
285 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
286 #undef ADD_VALUE |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
287 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
288 option = purple_account_option_list_new(_("Connection security"), "connection_security", encryption_values); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
289 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
290 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
291 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
292 option = purple_account_option_bool_new( |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
293 _("Allow plaintext auth over unencrypted streams"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
294 "auth_plain_in_clear", FALSE); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
295 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
296 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
297 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
298 option = purple_account_option_int_new(_("Connect port"), "port", 5222); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
299 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
300 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
301 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
302 option = purple_account_option_string_new(_("Connect server"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
303 "connect_server", NULL); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
304 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
305 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
306 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
307 option = purple_account_option_string_new(_("File transfer proxies"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
308 "ft_proxies", |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
309 /* TODO: Is this an acceptable default? |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
310 * Also, keep this in sync as they add more servers */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
311 JABBER_DEFAULT_FT_PROXIES); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
312 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
313 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
314 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
315 option = purple_account_option_string_new(_("BOSH URL"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
316 "bosh_url", NULL); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
317 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
318 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
319 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
320 /* this should probably be part of global smiley theme settings later on, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
321 shared with MSN */ |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
322 option = purple_account_option_bool_new(_("Show Custom Smileys"), |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
323 "custom_smileys", TRUE); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
324 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
325 option); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
326 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
327 my_protocol = plugin; |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
328 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
329 purple_signal_connect(purple_get_core(), "uri-handler", plugin, |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
330 PURPLE_CALLBACK(xmpp_uri_handler), NULL); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
331 } |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
332 |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
333 PURPLE_INIT_PLUGIN(gtalk, init_plugin, info); |
eca1f14826e5
Since XMPP is already a split-prpl thing, make two new prpls for
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
334 |