Mercurial > pidgin.yaz
annotate libpurple/protocols/jabber/buddy.c @ 26568:d6a31b0ad109
Drop a variable left over from the propagate.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 05 Apr 2009 21:54:03 +0000 |
parents | 242a8c97270b |
children | d6a863df7884 |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /* |
15823 | 2 * purple - Jabber Protocol Plugin |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
4 * Copyright (C) 2003, Nathan Walp <faceprint@faceprint.com> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18257
diff
changeset
|
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
20 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 #include "internal.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 #include "debug.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
23 #include "imgstore.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
24 #include "prpl.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
25 #include "notify.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #include "request.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #include "util.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 #include "xmlnode.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include "buddy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 #include "chat.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include "jabber.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
33 #include "iq.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include "presence.h" |
25815
5dd25c58b65e
Migrate the XMPP User Avatar (XEP-0084) code to its own file
Paul Aurich <paul@darkrain42.org>
parents:
24920
diff
changeset
|
35 #include "useravatar.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include "xdata.h" |
17580
7754d39d70c5
Added support for setting the avatar via XEP-0084. Receiving other people's avatar is up next.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17563
diff
changeset
|
37 #include "pep.h" |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
38 #include "adhoccommands.h" |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
39 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
40 typedef struct { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 long idle_seconds; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
42 } JabberBuddyInfoResource; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
43 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 typedef struct { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
45 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 JabberBuddy *jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
47 char *jid; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
48 GSList *ids; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 GHashTable *resources; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
50 int timeout_handle; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
51 GSList *vcard_imgids; |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
52 PurpleNotifyUserInfo *user_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
53 } JabberBuddyInfo; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
54 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
55 void jabber_buddy_free(JabberBuddy *jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
56 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 g_return_if_fail(jb != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 |
22770
cc8903c59d6b
Change the string "screen name" to "username" everywhere. I think most
Mark Doliner <mark@kingant.net>
parents:
22756
diff
changeset
|
59 g_free(jb->error_msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
60 while(jb->resources) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
61 jabber_buddy_resource_free(jb->resources->data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
62 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
63 g_free(jb); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
64 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
65 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
66 JabberBuddy *jabber_buddy_find(JabberStream *js, const char *name, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
67 gboolean create) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 JabberBuddy *jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 const char *realname; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 if (js->buddies == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
73 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
75 if(!(realname = jabber_normalize(js->gc->account, name))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
76 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
77 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
78 jb = g_hash_table_lookup(js->buddies, realname); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
79 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
80 if(!jb && create) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 jb = g_new0(JabberBuddy, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 g_hash_table_insert(js->buddies, g_strdup(realname), jb); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 return jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
88 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 JabberBuddyResource *jabber_buddy_find_resource(JabberBuddy *jb, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
90 const char *resource) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
91 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 JabberBuddyResource *jbr = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 GList *l; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
94 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 if(!jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
98 for(l = jb->resources; l; l = l->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
100 if(!jbr && !resource) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 jbr = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 } else if(!resource) { |
22404
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
103 if(((JabberBuddyResource *)l->data)->priority > jbr->priority) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
104 jbr = l->data; |
22404
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
105 else if(((JabberBuddyResource *)l->data)->priority == jbr->priority) { |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
106 /* Determine if this resource is more available than the one we've currently chosen */ |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
107 switch(((JabberBuddyResource *)l->data)->state) { |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
108 case JABBER_BUDDY_STATE_ONLINE: |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
109 case JABBER_BUDDY_STATE_CHAT: |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
110 /* This resource is online/chatty. Prefer to one which isn't either. */ |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
111 if ((jbr->state != JABBER_BUDDY_STATE_ONLINE) && (jbr->state != JABBER_BUDDY_STATE_CHAT)) |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
112 jbr = l->data; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
113 break; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
114 case JABBER_BUDDY_STATE_AWAY: |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
115 case JABBER_BUDDY_STATE_DND: |
24507
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
116 /* This resource is away/dnd. Prefer to one which is extended away, unavailable, or unknown. */ |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
117 if ((jbr->state == JABBER_BUDDY_STATE_XA) || (jbr->state == JABBER_BUDDY_STATE_UNAVAILABLE) || |
22404
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
118 (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
119 jbr = l->data; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
120 break; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
121 case JABBER_BUDDY_STATE_XA: |
24507
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
122 /* This resource is extended away. That's better than unavailable or unknown. */ |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
123 if ((jbr->state == JABBER_BUDDY_STATE_UNAVAILABLE) || (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
124 jbr = l->data; |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
125 break; |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
126 case JABBER_BUDDY_STATE_UNAVAILABLE: |
df9f962aa907
This technically doesn't matter due to behavior elsewhere in the prpl, but
Paul Aurich <paul@darkrain42.org>
parents:
24497
diff
changeset
|
127 /* This resource is unavailable. That's better than unknown. */ |
22404
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
128 if ((jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
129 jbr = l->data; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
130 break; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
131 case JABBER_BUDDY_STATE_UNKNOWN: |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
132 case JABBER_BUDDY_STATE_ERROR: |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
133 /* These are never preferable. */ |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
134 break; |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
135 } |
67f62f55fc5a
Prefer more available resources to less available ones when priorities are the same. Fixes #5079.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22295
diff
changeset
|
136 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
137 } else if(((JabberBuddyResource *)l->data)->name) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
138 if(!strcmp(((JabberBuddyResource *)l->data)->name, resource)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
139 jbr = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
140 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
142 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
143 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
144 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
145 return jbr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 JabberBuddyResource *jabber_buddy_track_resource(JabberBuddy *jb, const char *resource, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 int priority, JabberBuddyState state, const char *status) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
150 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
151 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, resource); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
152 if(!jbr) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
153 jbr = g_new0(JabberBuddyResource, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
154 jbr->jb = jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
155 jbr->name = g_strdup(resource); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
156 jbr->capabilities = JABBER_CAP_XHTML; |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
157 jbr->tz_off = PURPLE_NO_TZ_OFF; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 jb->resources = g_list_append(jb->resources, jbr); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 jbr->priority = priority; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
161 jbr->state = state; |
22756 | 162 g_free(jbr->status); |
163 jbr->status = status != NULL ? g_markup_escape_text(status, -1) : NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
164 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 return jbr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
167 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
168 void jabber_buddy_resource_free(JabberBuddyResource *jbr) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
169 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
170 g_return_if_fail(jbr != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
172 jbr->jb->resources = g_list_remove(jbr->jb->resources, jbr); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
173 |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
174 while(jbr->commands) { |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
175 JabberAdHocCommands *cmd = jbr->commands->data; |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
176 g_free(cmd->jid); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
177 g_free(cmd->node); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
178 g_free(cmd->name); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
179 g_free(cmd); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
180 jbr->commands = g_list_delete_link(jbr->commands, jbr->commands); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
181 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
182 |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
183 jabber_caps_free_clientinfo(jbr->caps); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
184 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
185 g_free(jbr->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
186 g_free(jbr->status); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
187 g_free(jbr->thread_id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
188 g_free(jbr->client.name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
189 g_free(jbr->client.version); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
190 g_free(jbr->client.os); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
191 g_free(jbr); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
192 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
194 void jabber_buddy_remove_resource(JabberBuddy *jb, const char *resource) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
195 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
196 JabberBuddyResource *jbr = jabber_buddy_find_resource(jb, resource); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
197 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
198 if(!jbr) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
199 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
200 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
201 jabber_buddy_resource_free(jbr); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
202 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
203 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 const char *jabber_buddy_get_status_msg(JabberBuddy *jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
205 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
206 JabberBuddyResource *jbr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
207 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 if(!jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
209 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
211 jbr = jabber_buddy_find_resource(jb, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
212 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
213 if(!jbr) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
214 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
215 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
216 return jbr->status; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
217 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
218 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
219 /******* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
220 * This is the old vCard stuff taken from the old prpl. vCards, by definition |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
221 * are a temporary thing until jabber can get its act together and come up |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
222 * with a format for user information, hence the namespace of 'vcard-temp' |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
223 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
224 * Since I don't feel like putting that much work into something that's |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
225 * _supposed_ to go away, i'm going to just copy the kludgy old code here, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
226 * and make it purdy when jabber comes up with a standards-track JEP to |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
227 * replace vcard-temp |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
228 * --Nathan |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
229 *******/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
230 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
231 /*---------------------------------------*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
232 /* Jabber "set info" (vCard) support */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
233 /*---------------------------------------*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
234 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
235 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
236 * V-Card format: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
237 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
238 * <vCard prodid='' version='' xmlns=''> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
239 * <FN></FN> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
240 * <N> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
241 * <FAMILY/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
242 * <GIVEN/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
243 * </N> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
244 * <NICKNAME/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
245 * <URL/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
246 * <ADR> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
247 * <STREET/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
248 * <EXTADD/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
249 * <LOCALITY/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
250 * <REGION/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
251 * <PCODE/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
252 * <COUNTRY/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
253 * </ADR> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
254 * <TEL/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
255 * <EMAIL/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
256 * <ORG> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
257 * <ORGNAME/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
258 * <ORGUNIT/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
259 * </ORG> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
260 * <TITLE/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
261 * <ROLE/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
262 * <DESC/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
263 * <BDAY/> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
264 * </vCard> |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
266 * See also: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
267 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
268 * http://docs.jabber.org/proto/html/vcard-temp.html |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
269 * http://www.vcard-xml.org/dtd/vCard-XML-v2-20010520.dtd |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
270 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
273 * Cross-reference user-friendly V-Card entry labels to vCard XML tags |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
274 * and attributes. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
275 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
276 * Order is (or should be) unimportant. For example: we have no way of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
277 * knowing in what order real data will arrive. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
278 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
279 * Format: Label, Pre-set text, "visible" flag, "editable" flag, XML tag |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
280 * name, XML tag's parent tag "path" (relative to vCard node). |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
281 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
282 * List is terminated by a NULL label pointer. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
283 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
284 * Entries with no label text, but with XML tag and parent tag |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
285 * entries, are used by V-Card XML construction routines to |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
286 * "automagically" construct the appropriate XML node tree. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
287 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
288 * Thoughts on future direction/expansion |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
289 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
290 * This is a "simple" vCard. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
291 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
292 * It is possible for nodes other than the "vCard" node to have |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
293 * attributes. Should that prove necessary/desirable, add an |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
294 * "attributes" pointer to the vcard_template struct, create the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
295 * necessary tag_attr structs, and add 'em to the vcard_dflt_data |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
296 * array. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
297 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
298 * The above changes will (obviously) require changes to the vCard |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
299 * construction routines. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
300 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
301 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
302 struct vcard_template { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
303 char *label; /* label text pointer */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
304 char *tag; /* tag text */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
305 char *ptag; /* parent tag "path" text */ |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20276
diff
changeset
|
306 } const vcard_template_data[] = { |
26308
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
307 {N_("Full Name"), "FN", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
308 {N_("Family Name"), "FAMILY", "N"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
309 {N_("Given Name"), "GIVEN", "N"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
310 {N_("Nickname"), "NICKNAME", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
311 {N_("URL"), "URL", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
312 {N_("Street Address"), "STREET", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
313 {N_("Extended Address"), "EXTADD", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
314 {N_("Locality"), "LOCALITY", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
315 {N_("Region"), "REGION", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
316 {N_("Postal Code"), "PCODE", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
317 {N_("Country"), "CTRY", "ADR"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
318 {N_("Telephone"), "NUMBER", "TEL"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
319 {N_("Email"), "USERID", "EMAIL"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
320 {N_("Organization Name"), "ORGNAME", "ORG"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
321 {N_("Organization Unit"), "ORGUNIT", "ORG"}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
322 {N_("Title"), "TITLE", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
323 {N_("Role"), "ROLE", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
324 {N_("Birthday"), "BDAY", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
325 {N_("Description"), "DESC", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
326 {"", "N", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
327 {"", "ADR", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
328 {"", "ORG", NULL}, |
5c6cf6d1e65f
Remove some unused fields. Thanks to Mayank Jain Nawal's email to the
Mark Doliner <mark@kingant.net>
parents:
25443
diff
changeset
|
329 {NULL, NULL, NULL} |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
330 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
331 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
332 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
333 * The "vCard" tag's attribute list... |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
334 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
335 struct tag_attr { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
336 char *attr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
337 char *value; |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20276
diff
changeset
|
338 } const vcard_tag_attr_list[] = { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
339 {"prodid", "-//HandGen//NONSGML vGen v1.0//EN"}, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
340 {"version", "2.0", }, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
341 {"xmlns", "vcard-temp", }, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
342 {NULL, NULL}, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
343 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
344 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
345 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
346 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
347 * Insert a tag node into an xmlnode tree, recursively inserting parent tag |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
348 * nodes as necessary |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
349 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
350 * Returns pointer to inserted node |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
351 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
352 * Note to hackers: this code is designed to be re-entrant (it's recursive--it |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
353 * calls itself), so don't put any "static"s in here! |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
354 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
355 static xmlnode *insert_tag_to_parent_tag(xmlnode *start, const char *parent_tag, const char *new_tag) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
356 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
357 xmlnode *x = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
358 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
359 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
360 * If the parent tag wasn't specified, see if we can get it |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
361 * from the vCard template struct. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
362 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
363 if(parent_tag == NULL) { |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20276
diff
changeset
|
364 const struct vcard_template *vc_tp = vcard_template_data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
365 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
366 while(vc_tp->label != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
367 if(strcmp(vc_tp->tag, new_tag) == 0) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
368 parent_tag = vc_tp->ptag; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
369 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
370 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
371 ++vc_tp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
372 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
373 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
374 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
375 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
376 * If we have a parent tag... |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
377 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
378 if(parent_tag != NULL ) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
379 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
380 * Try to get the parent node for a tag |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
381 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
382 if((x = xmlnode_get_child(start, parent_tag)) == NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
383 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
384 * Descend? |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
385 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
386 char *grand_parent = g_strdup(parent_tag); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
387 char *parent; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
388 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
389 if((parent = strrchr(grand_parent, '/')) != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
390 *(parent++) = '\0'; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
391 x = insert_tag_to_parent_tag(start, grand_parent, parent); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
392 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
393 x = xmlnode_new_child(start, grand_parent); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
394 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
395 g_free(grand_parent); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
396 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
397 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
398 * We found *something* to be the parent node. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
399 * Note: may be the "root" node! |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
400 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
401 xmlnode *y; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
402 if((y = xmlnode_get_child(x, new_tag)) != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
403 return(y); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
404 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
405 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
406 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
407 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
408 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
409 * insert the new tag into its parent node |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
410 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
411 return(xmlnode_new_child((x == NULL? start : x), new_tag)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
412 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
413 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
414 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 * Send vCard info to Jabber server |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 */ |
15823 | 417 void jabber_set_info(PurpleConnection *gc, const char *info) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
418 { |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
419 PurpleStoredImage *img; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
420 JabberIq *iq; |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
421 JabberStream *js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
422 xmlnode *vc_node; |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20276
diff
changeset
|
423 const struct tag_attr *tag_attr; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
424 |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
425 /* if we have't grabbed the remote vcard yet, we can't |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
426 * assume that what we have here is correct */ |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
427 if(!js->vcard_fetched) |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
428 return; |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
429 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
430 g_free(js->avatar_hash); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
431 js->avatar_hash = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
432 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
433 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
434 * Send only if there's actually any *information* to send |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
435 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 vc_node = info ? xmlnode_from_str(info, -1) : NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
437 |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
438 if (vc_node && (!vc_node->name || |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
439 g_ascii_strncasecmp(vc_node->name, "vCard", 5))) { |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
440 xmlnode_free(vc_node); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
441 vc_node = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
442 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
443 |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
444 if ((img = purple_buddy_icons_find_account_icon(gc->account))) { |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
445 gconstpointer avatar_data; |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
446 gsize avatar_len; |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
447 xmlnode *photo, *binval, *type; |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
448 gchar *enc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
449 |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
450 if(!vc_node) { |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
451 vc_node = xmlnode_new("vCard"); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
452 for(tag_attr = vcard_tag_attr_list; tag_attr->attr != NULL; ++tag_attr) |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
453 xmlnode_set_attrib(vc_node, tag_attr->attr, tag_attr->value); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
454 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
455 |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
456 avatar_data = purple_imgstore_get_data(img); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
457 avatar_len = purple_imgstore_get_size(img); |
24915
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
458 /* Get rid of an old PHOTO if one exists. |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
459 * TODO: This may want to be modified to remove all old PHOTO |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
460 * children, at the moment some people have managed to get |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
461 * multiple PHOTO entries in their vCard. */ |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
462 if((photo = xmlnode_get_child(vc_node, "PHOTO"))) { |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
463 xmlnode_free(photo); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
464 } |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
465 photo = xmlnode_new_child(vc_node, "PHOTO"); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
466 type = xmlnode_new_child(photo, "TYPE"); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
467 xmlnode_insert_data(type, "image/png", -1); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
468 binval = xmlnode_new_child(photo, "BINVAL"); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
469 enc = purple_base64_encode(avatar_data, avatar_len); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
470 |
24641
61e0924de04a
Fix up the XMPP User Avatar SHA1 hashing so that we don't mess up the checksum
Paul Aurich <paul@darkrain42.org>
parents:
24640
diff
changeset
|
471 js->avatar_hash = jabber_calculate_data_sha1sum(avatar_data, avatar_len); |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
472 |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
473 xmlnode_insert_data(binval, enc, -1); |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
474 g_free(enc); |
24915
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
475 } else if (vc_node) { |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
476 xmlnode *photo; |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
477 /* TODO: Remove all PHOTO children? (see above note) */ |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
478 if ((photo = xmlnode_get_child(vc_node, "PHOTO"))) { |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
479 xmlnode_free(photo); |
1e121a3eceeb
Allow us to remove vCard avatars when the PurpleAccount doesn't have one
Paul Aurich <paul@darkrain42.org>
parents:
24914
diff
changeset
|
480 } |
22295
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
481 } |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
482 |
bb124c3e668c
Fix setting vCard buddy icons when we don't have any other user info set.
Stu Tomlinson <stu@nosnilmot.com>
parents:
21842
diff
changeset
|
483 if (vc_node != NULL) { |
25818
370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
Paul Aurich <paul@darkrain42.org>
parents:
25817
diff
changeset
|
484 PurpleAccount *account = purple_connection_get_account(js->gc); |
370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
Paul Aurich <paul@darkrain42.org>
parents:
25817
diff
changeset
|
485 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
486 iq = jabber_iq_new(js, JABBER_IQ_SET); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
487 xmlnode_insert_child(iq->node, vc_node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
488 jabber_iq_send(iq); |
25818
370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
Paul Aurich <paul@darkrain42.org>
parents:
25817
diff
changeset
|
489 |
370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
Paul Aurich <paul@darkrain42.org>
parents:
25817
diff
changeset
|
490 /* Send presence to update vcard-temp:x:update */ |
370d8eba2ce0
Send presence updates from jabber_set_info, not jabber_set_buddy_icon.
Paul Aurich <paul@darkrain42.org>
parents:
25817
diff
changeset
|
491 jabber_presence_send(account, purple_account_get_active_status(account)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
492 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
493 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
494 |
16390
4fc51a87ce42
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@wiktel.com>
parents:
16386
diff
changeset
|
495 void jabber_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
496 { |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
497 PurpleAccount *account = purple_connection_get_account(gc); |
25820
c0a27a44ebd6
Support both XEP-0084 namespaces for fetching our own avatars at login
Paul Aurich <paul@darkrain42.org>
parents:
25818
diff
changeset
|
498 jabber_avatar_set(gc->proto_data, img, NULL); |
24914
c07b0aa88a35
Paul noticed that the conditional blocks here were backwards. I'm surprised no
Paul Aurich <paul@darkrain42.org>
parents:
24641
diff
changeset
|
499 /* vCard avatars do not have an image type requirement so update our |
c07b0aa88a35
Paul noticed that the conditional blocks here were backwards. I'm surprised no
Paul Aurich <paul@darkrain42.org>
parents:
24641
diff
changeset
|
500 * vCard avatar regardless of image type for those poor older clients |
c07b0aa88a35
Paul noticed that the conditional blocks here were backwards. I'm surprised no
Paul Aurich <paul@darkrain42.org>
parents:
24641
diff
changeset
|
501 */ |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
502 jabber_set_info(gc, purple_account_get_user_info(account)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
503 |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
504 /* TODO: Fake image to ourselves, since a number of servers do not echo |
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
505 * back our presence to us. To do this without uselessly copying the data |
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
506 * of the image, we need purple_buddy_icons_set_for_user_image (i.e. takes |
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
507 * an existing icon/stored image). */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
508 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
509 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
510 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
511 * This is the callback from the "ok clicked" for "set vCard" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
512 * |
24920
ca4ccf646993
Correct a comment, I don't imagine anyone will actually need this but better
Etan Reisner <pidgin@unreliablesource.net>
parents:
24915
diff
changeset
|
513 * Sets the vCard with data from PurpleRequestFields. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
514 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
515 static void |
15823 | 516 jabber_format_info(PurpleConnection *gc, PurpleRequestFields *fields) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
517 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
518 xmlnode *vc_node; |
15823 | 519 PurpleRequestField *field; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
520 const char *text; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
521 char *p; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
522 const struct vcard_template *vc_tp; |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20276
diff
changeset
|
523 const struct tag_attr *tag_attr; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
524 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
525 vc_node = xmlnode_new("vCard"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
526 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
527 for(tag_attr = vcard_tag_attr_list; tag_attr->attr != NULL; ++tag_attr) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
528 xmlnode_set_attrib(vc_node, tag_attr->attr, tag_attr->value); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
529 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
530 for (vc_tp = vcard_template_data; vc_tp->label != NULL; vc_tp++) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
531 if (*vc_tp->label == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
532 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
533 |
15823 | 534 field = purple_request_fields_get_field(fields, vc_tp->tag); |
535 text = purple_request_field_string_get_value(field); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
536 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
537 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
538 if (text != NULL && *text != '\0') { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
539 xmlnode *xp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
540 |
15823 | 541 purple_debug(PURPLE_DEBUG_INFO, "jabber", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
542 "Setting %s to '%s'\n", vc_tp->tag, text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
543 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
544 if ((xp = insert_tag_to_parent_tag(vc_node, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
545 NULL, vc_tp->tag)) != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
546 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
547 xmlnode_insert_data(xp, text, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
548 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
549 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
550 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
551 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
552 p = xmlnode_to_str(vc_node, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
553 xmlnode_free(vc_node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
554 |
15823 | 555 purple_account_set_user_info(purple_connection_get_account(gc), p); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
556 serv_set_info(gc, p); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
557 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
558 g_free(p); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
559 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
560 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
561 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
562 * This gets executed by the proto action |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
563 * |
15823 | 564 * Creates a new PurpleRequestFields struct, gets the XML-formatted user_info |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
565 * string (if any) into GSLists for the (multi-entry) edit dialog and |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
566 * calls the set_vcard dialog. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
567 */ |
15823 | 568 void jabber_setup_set_info(PurplePluginAction *action) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
569 { |
15823 | 570 PurpleConnection *gc = (PurpleConnection *) action->context; |
571 PurpleRequestFields *fields; | |
572 PurpleRequestFieldGroup *group; | |
573 PurpleRequestField *field; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
574 const struct vcard_template *vc_tp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
575 const char *user_info; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
576 char *cdata = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
577 xmlnode *x_vc_data = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
578 |
15823 | 579 fields = purple_request_fields_new(); |
580 group = purple_request_field_group_new(NULL); | |
581 purple_request_fields_add_group(fields, group); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
582 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
583 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
584 * Get existing, XML-formatted, user info |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
585 */ |
15823 | 586 if((user_info = purple_account_get_user_info(gc->account)) != NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
587 x_vc_data = xmlnode_from_str(user_info, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
588 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
589 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
590 * Set up GSLists for edit with labels from "template," data from user info |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
591 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
592 for(vc_tp = vcard_template_data; vc_tp->label != NULL; ++vc_tp) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
593 xmlnode *data_node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
594 if((vc_tp->label)[0] == '\0') |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
595 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
596 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
597 if (x_vc_data != NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
598 if(vc_tp->ptag == NULL) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
599 data_node = xmlnode_get_child(x_vc_data, vc_tp->tag); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
600 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
601 gchar *tag = g_strdup_printf("%s/%s", vc_tp->ptag, vc_tp->tag); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
602 data_node = xmlnode_get_child(x_vc_data, tag); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
603 g_free(tag); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
604 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
605 if(data_node) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
606 cdata = xmlnode_get_data(data_node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
607 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
608 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
609 if(strcmp(vc_tp->tag, "DESC") == 0) { |
15823 | 610 field = purple_request_field_string_new(vc_tp->tag, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
611 _(vc_tp->label), cdata, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
612 TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
613 } else { |
15823 | 614 field = purple_request_field_string_new(vc_tp->tag, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
615 _(vc_tp->label), cdata, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
616 FALSE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
617 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
618 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
619 g_free(cdata); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
620 cdata = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
621 |
15823 | 622 purple_request_field_group_add_field(group, field); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
623 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
624 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
625 if(x_vc_data != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
626 xmlnode_free(x_vc_data); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
627 |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
628 purple_request_fields(gc, _("Edit XMPP vCard"), |
16915
56042b2f8b64
s/Jabber/XMPP in user-visible places.
Richard Laager <rlaager@wiktel.com>
parents:
16728
diff
changeset
|
629 _("Edit XMPP vCard"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
630 _("All items below are optional. Enter only the " |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
631 "information with which you feel comfortable."), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
632 fields, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
633 _("Save"), G_CALLBACK(jabber_format_info), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
634 _("Cancel"), NULL, |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
635 purple_connection_get_account(gc), NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
636 gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
637 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
638 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
639 /*---------------------------------------*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
640 /* End Jabber "set info" (vCard) support */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
641 /*---------------------------------------*/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
642 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
643 /****** |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
644 * end of that ancient crap that needs to die |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
645 ******/ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
646 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
647 static void jabber_buddy_info_destroy(JabberBuddyInfo *jbi) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
648 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
649 /* Remove the timeout, which would otherwise trigger jabber_buddy_get_info_timeout() */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
650 if (jbi->timeout_handle > 0) |
15823 | 651 purple_timeout_remove(jbi->timeout_handle); |
15666
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
652 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
653 g_free(jbi->jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
654 g_hash_table_destroy(jbi->resources); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
655 purple_notify_user_info_destroy(jbi->user_info); |
15666
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
656 g_free(jbi); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
657 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
658 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
659 static void jabber_buddy_info_show_if_ready(JabberBuddyInfo *jbi) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
660 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
661 char *resource_name, *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
662 JabberBuddyResource *jbr; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
663 JabberBuddyInfoResource *jbir = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
664 GList *resources; |
15823 | 665 PurpleNotifyUserInfo *user_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
666 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
667 /* not yet */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
668 if(jbi->ids) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
669 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
670 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
671 user_info = jbi->user_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
672 resource_name = jabber_get_resource(jbi->jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
673 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
674 /* If we have one or more pairs from the vcard, put a section break above it */ |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
675 if (purple_notify_user_info_get_entries(user_info)) |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
676 purple_notify_user_info_prepend_section_break(user_info); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
677 |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
678 /* Prepend the primary buddy info to user_info so that it goes before the vcard. */ |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
679 if(resource_name) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
680 jbr = jabber_buddy_find_resource(jbi->jb, resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
681 jbir = g_hash_table_lookup(jbi->resources, resource_name); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
682 if(jbr && jbr->client.name) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
683 tmp = g_strdup_printf("%s%s%s", jbr->client.name, |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
684 (jbr->client.version ? " " : ""), |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
685 (jbr->client.version ? jbr->client.version : "")); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
686 purple_notify_user_info_add_pair(user_info, _("Client"), tmp); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
687 g_free(tmp); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
688 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
689 if(jbr->client.os) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
690 purple_notify_user_info_prepend_pair(user_info, _("Operating System"), jbr->client.os); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
691 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
692 } |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
693 if (jbr && jbr->tz_off != PURPLE_NO_TZ_OFF) { |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
694 time_t now_t; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
695 struct tm *now; |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
696 char *timestamp; |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
697 time(&now_t); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
698 now_t += jbr->tz_off; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
699 now = gmtime(&now_t); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
700 |
25944
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
701 timestamp = g_strdup_printf("%s %c%02d%02d", purple_time_format(now), |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
702 jbr->tz_off < 0 ? '-' : '+', |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
703 abs(jbr->tz_off / (60*60)), |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
704 abs((jbr->tz_off % (60*60)) / 60)); |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
705 purple_notify_user_info_prepend_pair(user_info, _("Local Time"), timestamp); |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
706 g_free(timestamp); |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
707 } |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
708 if(jbir) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
709 if(jbir->idle_seconds > 0) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
710 char *idle = purple_str_seconds_to_string(jbir->idle_seconds); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
711 purple_notify_user_info_prepend_pair(user_info, _("Idle"), idle); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
712 g_free(idle); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
713 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
714 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
715 if(jbr) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
716 char *purdy = NULL; |
23263
b4ed2512be3b
Remove compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23253
diff
changeset
|
717 const char *status_name = jabber_buddy_state_get_name(jbr->state); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
718 if(jbr->status) |
15823 | 719 purdy = purple_strdup_withhtml(jbr->status); |
23253
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
720 if(status_name && purdy && !strcmp(status_name, purdy)) |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
721 status_name = NULL; |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
722 |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
723 tmp = g_strdup_printf("%s%s%s", (status_name ? status_name : ""), |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
724 ((status_name && purdy) ? ": " : ""), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
725 (purdy ? purdy : "")); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
726 purple_notify_user_info_prepend_pair(user_info, _("Status"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
727 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
728 g_free(purdy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
729 } else { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
730 purple_notify_user_info_prepend_pair(user_info, _("Status"), _("Unknown")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
731 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
732 #if 0 |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
733 /* #if 0 this for now; I think this would be far more useful if we limited this to a particular set of features |
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
734 * of particular interest (-vv jumps out as one). As it is now, I don't picture people getting all excited: "Oh sweet crap! |
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
735 * So-and-so supports 'jabber:x:data' AND 'Collaborative Data Objects'!" |
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
736 */ |
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
737 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
738 if(jbr && jbr->caps) { |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
739 GString *tmp = g_string_new(""); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
740 GList *iter; |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
741 for(iter = jbr->caps->features; iter; iter = g_list_next(iter)) { |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
742 const char *feature = iter->data; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
743 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
744 if(!strcmp(feature, "jabber:iq:last")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
745 feature = _("Last Activity"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
746 else if(!strcmp(feature, "http://jabber.org/protocol/disco#info")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
747 feature = _("Service Discovery Info"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
748 else if(!strcmp(feature, "http://jabber.org/protocol/disco#items")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
749 feature = _("Service Discovery Items"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
750 else if(!strcmp(feature, "http://jabber.org/protocol/address")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
751 feature = _("Extended Stanza Addressing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
752 else if(!strcmp(feature, "http://jabber.org/protocol/muc")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
753 feature = _("Multi-User Chat"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
754 else if(!strcmp(feature, "http://jabber.org/protocol/muc#user")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
755 feature = _("Multi-User Chat Extended Presence Information"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
756 else if(!strcmp(feature, "http://jabber.org/protocol/ibb")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
757 feature = _("In-Band Bytestreams"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
758 else if(!strcmp(feature, "http://jabber.org/protocol/commands")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
759 feature = _("Ad-Hoc Commands"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
760 else if(!strcmp(feature, "http://jabber.org/protocol/pubsub")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
761 feature = _("PubSub Service"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
762 else if(!strcmp(feature, "http://jabber.org/protocol/bytestreams")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
763 feature = _("SOCKS5 Bytestreams"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
764 else if(!strcmp(feature, "jabber:x:oob")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
765 feature = _("Out of Band Data"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
766 else if(!strcmp(feature, "http://jabber.org/protocol/xhtml-im")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
767 feature = _("XHTML-IM"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
768 else if(!strcmp(feature, "jabber:iq:register")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
769 feature = _("In-Band Registration"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
770 else if(!strcmp(feature, "http://jabber.org/protocol/geoloc")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
771 feature = _("User Location"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
772 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0084.html")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
773 feature = _("User Avatar"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
774 else if(!strcmp(feature, "http://jabber.org/protocol/chatstates")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
775 feature = _("Chat State Notifications"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
776 else if(!strcmp(feature, "jabber:iq:version")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
777 feature = _("Software Version"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
778 else if(!strcmp(feature, "http://jabber.org/protocol/si")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
779 feature = _("Stream Initiation"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
780 else if(!strcmp(feature, "http://jabber.org/protocol/si/profile/file-transfer")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
781 feature = _("File Transfer"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
782 else if(!strcmp(feature, "http://jabber.org/protocol/mood")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
783 feature = _("User Mood"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
784 else if(!strcmp(feature, "http://jabber.org/protocol/activity")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
785 feature = _("User Activity"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
786 else if(!strcmp(feature, "http://jabber.org/protocol/caps")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
787 feature = _("Entity Capabilities"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
788 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0116.html")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
789 feature = _("Encrypted Session Negotiations"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
790 else if(!strcmp(feature, "http://jabber.org/protocol/tune")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
791 feature = _("User Tune"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
792 else if(!strcmp(feature, "http://jabber.org/protocol/rosterx")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
793 feature = _("Roster Item Exchange"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
794 else if(!strcmp(feature, "http://jabber.org/protocol/reach")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
795 feature = _("Reachability Address"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
796 else if(!strcmp(feature, "http://jabber.org/protocol/profile")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
797 feature = _("User Profile"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
798 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0166.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
799 feature = _("Jingle"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
800 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0167.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
801 feature = _("Jingle Audio"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
802 else if(!strcmp(feature, "http://jabber.org/protocol/nick")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
803 feature = _("User Nickname"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
804 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0176.html#ns-udp")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
805 feature = _("Jingle ICE UDP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
806 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0176.html#ns-tcp")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
807 feature = _("Jingle ICE TCP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
808 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0177.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
809 feature = _("Jingle Raw UDP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
810 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0180.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
811 feature = _("Jingle Video"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
812 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0181.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
813 feature = _("Jingle DTMF"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
814 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0184.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
815 feature = _("Message Receipts"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
816 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0189.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
817 feature = _("Public Key Publishing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
818 else if(!strcmp(feature, "http://jabber.org/protocol/chatting")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
819 feature = _("User Chatting"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
820 else if(!strcmp(feature, "http://jabber.org/protocol/browsing")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
821 feature = _("User Browsing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
822 else if(!strcmp(feature, "http://jabber.org/protocol/gaming")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
823 feature = _("User Gaming"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
824 else if(!strcmp(feature, "http://jabber.org/protocol/viewing")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
825 feature = _("User Viewing"); |
26548
cde07a2e4531
Do not advertise support for old XEP-0199 (Ping) namespace
Paul Aurich <paul@darkrain42.org>
parents:
26547
diff
changeset
|
826 else if(!strcmp(feature, "urn:xmpp:ping")) |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
827 feature = _("Ping"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
828 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0200.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
829 feature = _("Stanza Encryption"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
830 else if(!strcmp(feature, "urn:xmpp:time")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
831 feature = _("Entity Time"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
832 else if(!strcmp(feature, "urn:xmpp:delay")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
833 feature = _("Delayed Delivery"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
834 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0204.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
835 feature = _("Collaborative Data Objects"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
836 else if(!strcmp(feature, "http://jabber.org/protocol/fileshare")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
837 feature = _("File Repository and Sharing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
838 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0215.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
839 feature = _("STUN Service Discovery for Jingle"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
840 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0116.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
841 feature = _("Simplified Encrypted Session Negotiation"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
842 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0219.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
843 feature = _("Hop Check"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
844 else if(g_str_has_suffix(feature, "+notify")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
845 feature = NULL; |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
846 if(feature) |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
847 g_string_append_printf(tmp, "%s<br/>", feature); |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
848 } |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
849 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
850 if(strlen(tmp->str) > 0) |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
851 purple_notify_user_info_prepend_pair(user_info, _("Capabilities"), tmp->str); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
852 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
853 g_string_free(tmp, TRUE); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
854 } |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
855 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 } else { |
24497
f10aba5592c6
The other day while struct hiding, I noticed a for loop that was checking
Richard Laager <rlaager@wiktel.com>
parents:
24312
diff
changeset
|
857 gboolean multiple_resources = jbi->jb->resources && jbi->jb->resources->next; |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
858 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
859 for(resources = jbi->jb->resources; resources; resources = resources->next) { |
23263
b4ed2512be3b
Remove compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23253
diff
changeset
|
860 char *purdy = NULL; |
b4ed2512be3b
Remove compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23253
diff
changeset
|
861 const char *status_name = NULL; |
b4ed2512be3b
Remove compile warnings.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23253
diff
changeset
|
862 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
863 jbr = resources->data; |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
864 |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
865 if(jbr->client.name) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
866 tmp = g_strdup_printf("%s%s%s", jbr->client.name, |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
867 (jbr->client.version ? " " : ""), |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
868 (jbr->client.version ? jbr->client.version : "")); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
869 purple_notify_user_info_prepend_pair(user_info, |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
870 _("Client"), tmp); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
871 g_free(tmp); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
872 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
873 if(jbr->client.os) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
874 purple_notify_user_info_prepend_pair(user_info, _("Operating System"), jbr->client.os); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
875 } |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
876 } |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
877 |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
878 if (jbr->tz_off != PURPLE_NO_TZ_OFF) { |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
879 time_t now_t; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
880 struct tm *now; |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
881 char *timestamp; |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
882 time(&now_t); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
883 now_t += jbr->tz_off; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
884 now = gmtime(&now_t); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
885 |
25944
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
886 timestamp = g_strdup_printf("%s %c%02d%02d", purple_time_format(now), |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
887 jbr->tz_off < 0 ? '-' : '+', |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
888 abs(jbr->tz_off / (60*60)), |
481e07d69a10
Format the time as "localtimeformat [+-]HHMM". Iterative development is fun.
Paul Aurich <paul@darkrain42.org>
parents:
25943
diff
changeset
|
889 abs((jbr->tz_off % (60*60)) / 60)); |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
890 purple_notify_user_info_prepend_pair(user_info, _("Local Time"), timestamp); |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
891 g_free(timestamp); |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
892 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
893 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
894 if(jbr->name && (jbir = g_hash_table_lookup(jbi->resources, jbr->name))) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
895 if(jbir->idle_seconds > 0) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
896 char *idle = purple_str_seconds_to_string(jbir->idle_seconds); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
897 purple_notify_user_info_prepend_pair(user_info, _("Idle"), idle); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
898 g_free(idle); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
899 } |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
900 } |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
901 |
23253
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
902 status_name = jabber_buddy_state_get_name(jbr->state); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
903 if(jbr->status) |
15823 | 904 purdy = purple_strdup_withhtml(jbr->status); |
23253
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
905 if(status_name && purdy && !strcmp(status_name, purdy)) |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
906 status_name = NULL; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
907 |
23253
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
908 tmp = g_strdup_printf("%s%s%s", (status_name ? status_name : ""), |
4f49d4b25e24
If the status name and status message are the same for a jabber buddy,
Evan Schoenberg <evan.s@dreskin.net>
parents:
23226
diff
changeset
|
909 ((status_name && purdy) ? ": " : ""), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
910 (purdy ? purdy : "")); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
911 purple_notify_user_info_prepend_pair(user_info, _("Status"), tmp); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
912 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
913 g_free(purdy); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
914 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
915 if(multiple_resources) { |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
916 tmp = g_strdup_printf("%d", jbr->priority); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
917 purple_notify_user_info_prepend_pair(user_info, _("Priority"), tmp); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
918 g_free(tmp); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
919 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
920 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
921 if(jbr->name) |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
922 purple_notify_user_info_prepend_pair(user_info, _("Resource"), jbr->name); |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
923 #if 0 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
924 if(jbr && jbr->caps) { |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
925 GString *tmp = g_string_new(""); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
926 GList *iter; |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
927 for(iter = jbr->caps->features; iter; iter = g_list_next(iter)) { |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
928 const char *feature = iter->data; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
929 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
930 if(!strcmp(feature, "jabber:iq:last")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
931 feature = _("Last Activity"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
932 else if(!strcmp(feature, "http://jabber.org/protocol/disco#info")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
933 feature = _("Service Discovery Info"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
934 else if(!strcmp(feature, "http://jabber.org/protocol/disco#items")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
935 feature = _("Service Discovery Items"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
936 else if(!strcmp(feature, "http://jabber.org/protocol/address")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
937 feature = _("Extended Stanza Addressing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
938 else if(!strcmp(feature, "http://jabber.org/protocol/muc")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
939 feature = _("Multi-User Chat"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
940 else if(!strcmp(feature, "http://jabber.org/protocol/muc#user")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
941 feature = _("Multi-User Chat Extended Presence Information"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
942 else if(!strcmp(feature, "http://jabber.org/protocol/ibb")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
943 feature = _("In-Band Bytestreams"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
944 else if(!strcmp(feature, "http://jabber.org/protocol/commands")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
945 feature = _("Ad-Hoc Commands"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
946 else if(!strcmp(feature, "http://jabber.org/protocol/pubsub")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
947 feature = _("PubSub Service"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
948 else if(!strcmp(feature, "http://jabber.org/protocol/bytestreams")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
949 feature = _("SOCKS5 Bytestreams"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
950 else if(!strcmp(feature, "jabber:x:oob")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
951 feature = _("Out of Band Data"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
952 else if(!strcmp(feature, "http://jabber.org/protocol/xhtml-im")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
953 feature = _("XHTML-IM"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
954 else if(!strcmp(feature, "jabber:iq:register")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
955 feature = _("In-Band Registration"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
956 else if(!strcmp(feature, "http://jabber.org/protocol/geoloc")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
957 feature = _("User Location"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
958 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0084.html")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
959 feature = _("User Avatar"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
960 else if(!strcmp(feature, "http://jabber.org/protocol/chatstates")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
961 feature = _("Chat State Notifications"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
962 else if(!strcmp(feature, "jabber:iq:version")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
963 feature = _("Software Version"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
964 else if(!strcmp(feature, "http://jabber.org/protocol/si")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
965 feature = _("Stream Initiation"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
966 else if(!strcmp(feature, "http://jabber.org/protocol/si/profile/file-transfer")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
967 feature = _("File Transfer"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
968 else if(!strcmp(feature, "http://jabber.org/protocol/mood")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
969 feature = _("User Mood"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
970 else if(!strcmp(feature, "http://jabber.org/protocol/activity")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
971 feature = _("User Activity"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
972 else if(!strcmp(feature, "http://jabber.org/protocol/caps")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
973 feature = _("Entity Capabilities"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
974 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0116.html")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
975 feature = _("Encrypted Session Negotiations"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
976 else if(!strcmp(feature, "http://jabber.org/protocol/tune")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
977 feature = _("User Tune"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
978 else if(!strcmp(feature, "http://jabber.org/protocol/rosterx")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
979 feature = _("Roster Item Exchange"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
980 else if(!strcmp(feature, "http://jabber.org/protocol/reach")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
981 feature = _("Reachability Address"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
982 else if(!strcmp(feature, "http://jabber.org/protocol/profile")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
983 feature = _("User Profile"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
984 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0166.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
985 feature = _("Jingle"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
986 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0167.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
987 feature = _("Jingle Audio"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
988 else if(!strcmp(feature, "http://jabber.org/protocol/nick")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
989 feature = _("User Nickname"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
990 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0176.html#ns-udp")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
991 feature = _("Jingle ICE UDP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
992 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0176.html#ns-tcp")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
993 feature = _("Jingle ICE TCP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
994 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0177.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
995 feature = _("Jingle Raw UDP"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
996 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0180.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
997 feature = _("Jingle Video"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
998 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0181.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
999 feature = _("Jingle DTMF"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1000 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0184.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1001 feature = _("Message Receipts"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1002 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0189.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1003 feature = _("Public Key Publishing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1004 else if(!strcmp(feature, "http://jabber.org/protocol/chatting")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1005 feature = _("User Chatting"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1006 else if(!strcmp(feature, "http://jabber.org/protocol/browsing")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1007 feature = _("User Browsing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1008 else if(!strcmp(feature, "http://jabber.org/protocol/gaming")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1009 feature = _("User Gaming"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1010 else if(!strcmp(feature, "http://jabber.org/protocol/viewing")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1011 feature = _("User Viewing"); |
26548
cde07a2e4531
Do not advertise support for old XEP-0199 (Ping) namespace
Paul Aurich <paul@darkrain42.org>
parents:
26547
diff
changeset
|
1012 else if(!strcmp(feature, "urn:xmpp:ping")) |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1013 feature = _("Ping"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1014 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0200.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1015 feature = _("Stanza Encryption"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1016 else if(!strcmp(feature, "urn:xmpp:time")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1017 feature = _("Entity Time"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1018 else if(!strcmp(feature, "urn:xmpp:delay")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1019 feature = _("Delayed Delivery"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1020 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0204.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1021 feature = _("Collaborative Data Objects"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1022 else if(!strcmp(feature, "http://jabber.org/protocol/fileshare")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1023 feature = _("File Repository and Sharing"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1024 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0215.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1025 feature = _("STUN Service Discovery for Jingle"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1026 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0116.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1027 feature = _("Simplified Encrypted Session Negotiation"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1028 else if(!strcmp(feature, "http://www.xmpp.org/extensions/xep-0219.html#ns")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1029 feature = _("Hop Check"); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1030 else if(g_str_has_suffix(feature, "+notify")) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1031 feature = NULL; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1032 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1033 if(feature) |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1034 g_string_append_printf(tmp, "%s\n", feature); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1035 } |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1036 if(strlen(tmp->str) > 0) |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1037 purple_notify_user_info_prepend_pair(user_info, _("Capabilities"), tmp->str); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1038 |
18698
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1039 g_string_free(tmp, TRUE); |
b5546f8f8c71
Now displaying a contact's client's capabilities in the info text if that client supports the caps extension.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18684
diff
changeset
|
1040 } |
19723
36d5d5048b53
Dont spam the buddy info window with esoteric capabilities
Sean Egan <seanegan@gmail.com>
parents:
19696
diff
changeset
|
1041 #endif |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1042 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1043 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1044 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1045 g_free(resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1046 |
15823 | 1047 purple_notify_userinfo(jbi->js->gc, jbi->jid, user_info, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1048 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1049 while(jbi->vcard_imgids) { |
16375
391a79778f89
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@wiktel.com>
parents:
15823
diff
changeset
|
1050 purple_imgstore_unref_by_id(GPOINTER_TO_INT(jbi->vcard_imgids->data)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1051 jbi->vcard_imgids = g_slist_delete_link(jbi->vcard_imgids, jbi->vcard_imgids); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1052 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1053 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1054 jbi->js->pending_buddy_info_requests = g_slist_remove(jbi->js->pending_buddy_info_requests, jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1055 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1056 jabber_buddy_info_destroy(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1057 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1058 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1059 static void jabber_buddy_info_remove_id(JabberBuddyInfo *jbi, const char *id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1060 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1061 GSList *l = jbi->ids; |
15666
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1062 char *comp_id; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1063 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1064 if(!id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1065 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1066 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1067 while(l) { |
15666
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1068 comp_id = l->data; |
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1069 if(!strcmp(id, comp_id)) { |
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1070 jbi->ids = g_slist_remove(jbi->ids, comp_id); |
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1071 g_free(comp_id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1072 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1073 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1074 l = l->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1075 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1076 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1077 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1078 static void jabber_vcard_save_mine(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1079 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1080 xmlnode *packet, gpointer data) |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1081 { |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1082 xmlnode *vcard, *photo, *binval; |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1083 char *txt, *vcard_hash = NULL; |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1084 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1085 if (type == JABBER_IQ_ERROR) { |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1086 purple_debug_warning("jabber", "Server returned error while retrieving vCard"); |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1087 return; |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1088 } |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1089 |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1090 if((vcard = xmlnode_get_child(packet, "vCard")) || |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1091 (vcard = xmlnode_get_child_with_namespace(packet, "query", "vcard-temp"))) |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1092 { |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1093 txt = xmlnode_to_str(vcard, NULL); |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1094 purple_account_set_user_info(purple_connection_get_account(js->gc), txt); |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1095 |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1096 g_free(txt); |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1097 } else { |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1098 /* if we have no vCard, then lets not overwrite what we might have locally */ |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1099 } |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1100 |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1101 js->vcard_fetched = TRUE; |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1102 |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1103 if (vcard && (photo = xmlnode_get_child(vcard, "PHOTO")) && |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1104 (binval = xmlnode_get_child(photo, "BINVAL"))) { |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1105 gsize size; |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1106 char *bintext = xmlnode_get_data(binval); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1107 guchar *data = purple_base64_decode(bintext, &size); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1108 g_free(bintext); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1109 |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1110 if (data) { |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1111 vcard_hash = jabber_calculate_data_sha1sum(data, size); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1112 g_free(data); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1113 } |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1114 } |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1115 |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1116 /* Republish our vcard if the photo is different than the server's */ |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
1117 if ((!vcard_hash && js->initial_avatar_hash) || |
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
1118 (vcard_hash && (!js->initial_avatar_hash || strcmp(vcard_hash, js->initial_avatar_hash)))) { |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1119 PurpleAccount *account = purple_connection_get_account(js->gc); |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1120 jabber_set_info(js->gc, purple_account_get_user_info(account)); |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
1121 } else if (js->initial_avatar_hash) { |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1122 /* Our photo is in the vcard, so advertise vcard-temp updates */ |
25832
2d92bbe6807b
Use a JabberStream variable instead of a setting for the initial hash
Paul Aurich <paul@darkrain42.org>
parents:
25822
diff
changeset
|
1123 js->avatar_hash = g_strdup(js->initial_avatar_hash); |
25817
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1124 } |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1125 |
9195955395b6
Only (re)publish XMPP avatars at login if the server's avatar differs
Paul Aurich <paul@darkrain42.org>
parents:
25815
diff
changeset
|
1126 g_free(vcard_hash); |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1127 } |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1128 |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1129 void jabber_vcard_fetch_mine(JabberStream *js) |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1130 { |
21842
ce3d42470adf
Fix XMPP buddy icons. Somehow a 'VCard' element got changed to a query
Sean Egan <seanegan@gmail.com>
parents:
21596
diff
changeset
|
1131 JabberIq *iq = jabber_iq_new(js, JABBER_IQ_GET); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1132 |
21842
ce3d42470adf
Fix XMPP buddy icons. Somehow a 'VCard' element got changed to a query
Sean Egan <seanegan@gmail.com>
parents:
21596
diff
changeset
|
1133 xmlnode *vcard = xmlnode_new_child(iq->node, "vCard"); |
ce3d42470adf
Fix XMPP buddy icons. Somehow a 'VCard' element got changed to a query
Sean Egan <seanegan@gmail.com>
parents:
21596
diff
changeset
|
1134 xmlnode_set_namespace(vcard, "vcard-temp"); |
18163
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1135 jabber_iq_set_callback(iq, jabber_vcard_save_mine, NULL); |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1136 |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1137 jabber_iq_send(iq); |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1138 } |
703872bf33c6
server-side jabber vcards now take precedence over local vcards, so
Nathan Walp <nwalp@pidgin.im>
parents:
18124
diff
changeset
|
1139 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1140 static void jabber_vcard_parse(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1141 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1142 xmlnode *packet, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1143 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1144 char *bare_jid; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1145 char *text; |
22439
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1146 char *serverside_alias = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1147 xmlnode *vcard; |
15823 | 1148 PurpleBuddy *b; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1149 JabberBuddyInfo *jbi = data; |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1150 PurpleNotifyUserInfo *user_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1151 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1152 if(!jbi) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1153 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1154 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1155 jabber_buddy_info_remove_id(jbi, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1156 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1157 if(!from) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1158 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1159 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1160 if(!jabber_buddy_find(js, from, FALSE)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1161 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1162 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1163 /* XXX: handle the error case */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1164 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1165 user_info = jbi->user_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1166 bare_jid = jabber_get_bare_jid(from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1167 |
15823 | 1168 b = purple_find_buddy(js->gc->account, bare_jid); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1169 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1170 if((vcard = xmlnode_get_child(packet, "vCard")) || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1171 (vcard = xmlnode_get_child_with_namespace(packet, "query", "vcard-temp"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1172 xmlnode *child; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1173 for(child = vcard->child; child; child = child->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1174 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1175 xmlnode *child2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1176 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1177 if(child->type != XMLNODE_TYPE_TAG) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1178 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1179 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1180 text = xmlnode_get_data(child); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1181 if(text && !strcmp(child->name, "FN")) { |
22439
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1182 if (!serverside_alias) |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1183 serverside_alias = g_strdup(text); |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1184 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1185 purple_notify_user_info_add_pair(user_info, _("Full Name"), text); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1186 } else if(!strcmp(child->name, "N")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1187 for(child2 = child->child; child2; child2 = child2->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1188 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1189 char *text2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1190 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1191 if(child2->type != XMLNODE_TYPE_TAG) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1192 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1193 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1194 text2 = xmlnode_get_data(child2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1195 if(text2 && !strcmp(child2->name, "FAMILY")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1196 purple_notify_user_info_add_pair(user_info, _("Family Name"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1197 } else if(text2 && !strcmp(child2->name, "GIVEN")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1198 purple_notify_user_info_add_pair(user_info, _("Given Name"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1199 } else if(text2 && !strcmp(child2->name, "MIDDLE")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1200 purple_notify_user_info_add_pair(user_info, _("Middle Name"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1201 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1202 g_free(text2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1203 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1204 } else if(text && !strcmp(child->name, "NICKNAME")) { |
23933
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1205 /* Prefer the Nickcname to the Full Name as the serverside alias if it's not just part of the jid. |
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1206 * Ignore it if it's part of the jid. */ |
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1207 if (strstr(bare_jid, text) == NULL) { |
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1208 g_free(serverside_alias); |
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1209 serverside_alias = g_strdup(text); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1210 |
23933
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1211 purple_notify_user_info_add_pair(user_info, _("Nickname"), text); |
32828b3c0d4f
Ignore nicknames which are just the user portion of the JID, as these aren't useful. Instead, prefer the fullname in that situation for serverside alias purposes.
Evan Schoenberg <evan.s@dreskin.net>
parents:
23744
diff
changeset
|
1212 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1213 } else if(text && !strcmp(child->name, "BDAY")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1214 purple_notify_user_info_add_pair(user_info, _("Birthday"), text); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1215 } else if(!strcmp(child->name, "ADR")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1216 gboolean address_line_added = FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1217 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1218 for(child2 = child->child; child2; child2 = child2->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1219 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1220 char *text2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1221 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1222 if(child2->type != XMLNODE_TYPE_TAG) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1223 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1224 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1225 text2 = xmlnode_get_data(child2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1226 if (text2 == NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1227 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1228 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1229 /* We do this here so that it's not added if all the child |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1230 * elements are empty. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1231 if (!address_line_added) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1232 { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1233 purple_notify_user_info_add_section_header(user_info, _("Address")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1234 address_line_added = TRUE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1235 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1236 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1237 if(!strcmp(child2->name, "POBOX")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1238 purple_notify_user_info_add_pair(user_info, _("P.O. Box"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1239 } else if(!strcmp(child2->name, "EXTADR")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1240 purple_notify_user_info_add_pair(user_info, _("Extended Address"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1241 } else if(!strcmp(child2->name, "STREET")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1242 purple_notify_user_info_add_pair(user_info, _("Street Address"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1243 } else if(!strcmp(child2->name, "LOCALITY")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1244 purple_notify_user_info_add_pair(user_info, _("Locality"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1245 } else if(!strcmp(child2->name, "REGION")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1246 purple_notify_user_info_add_pair(user_info, _("Region"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1247 } else if(!strcmp(child2->name, "PCODE")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1248 purple_notify_user_info_add_pair(user_info, _("Postal Code"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1249 } else if(!strcmp(child2->name, "CTRY") |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1250 || !strcmp(child2->name, "COUNTRY")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1251 purple_notify_user_info_add_pair(user_info, _("Country"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1252 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1253 g_free(text2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1254 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1255 |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1256 if (address_line_added) |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1257 purple_notify_user_info_add_section_break(user_info); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1258 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1259 } else if(!strcmp(child->name, "TEL")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1260 char *number; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1261 if((child2 = xmlnode_get_child(child, "NUMBER"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1262 /* show what kind of number it is */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1263 number = xmlnode_get_data(child2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1264 if(number) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1265 purple_notify_user_info_add_pair(user_info, _("Telephone"), number); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1266 g_free(number); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1267 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1268 } else if((number = xmlnode_get_data(child))) { |
15823 | 1269 /* lots of clients (including purple) do this, but it's |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1270 * out of spec */ |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1271 purple_notify_user_info_add_pair(user_info, _("Telephone"), number); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1272 g_free(number); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1273 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1274 } else if(!strcmp(child->name, "EMAIL")) { |
19729
1b8af105614d
Data in vCards is supposed to be plain text, not HTML. So escape
Mark Doliner <mark@kingant.net>
parents:
19723
diff
changeset
|
1275 char *userid, *escaped; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1276 if((child2 = xmlnode_get_child(child, "USERID"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1277 /* show what kind of email it is */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1278 userid = xmlnode_get_data(child2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1279 if(userid) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1280 char *mailto; |
19729
1b8af105614d
Data in vCards is supposed to be plain text, not HTML. So escape
Mark Doliner <mark@kingant.net>
parents:
19723
diff
changeset
|
1281 escaped = g_markup_escape_text(userid, -1); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1282 mailto = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", escaped, escaped); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1283 purple_notify_user_info_add_pair(user_info, _("Email"), mailto); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1284 |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1285 g_free(mailto); |
19729
1b8af105614d
Data in vCards is supposed to be plain text, not HTML. So escape
Mark Doliner <mark@kingant.net>
parents:
19723
diff
changeset
|
1286 g_free(escaped); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1287 g_free(userid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1288 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1289 } else if((userid = xmlnode_get_data(child))) { |
15823 | 1290 /* lots of clients (including purple) do this, but it's |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1291 * out of spec */ |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1292 char *mailto; |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1293 |
19729
1b8af105614d
Data in vCards is supposed to be plain text, not HTML. So escape
Mark Doliner <mark@kingant.net>
parents:
19723
diff
changeset
|
1294 escaped = g_markup_escape_text(userid, -1); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1295 mailto = g_strdup_printf("<a href=\"mailto:%s\">%s</a>", escaped, escaped); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1296 purple_notify_user_info_add_pair(user_info, _("Email"), mailto); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1297 |
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1298 g_free(mailto); |
19729
1b8af105614d
Data in vCards is supposed to be plain text, not HTML. So escape
Mark Doliner <mark@kingant.net>
parents:
19723
diff
changeset
|
1299 g_free(escaped); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1300 g_free(userid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1301 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1302 } else if(!strcmp(child->name, "ORG")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1303 for(child2 = child->child; child2; child2 = child2->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1304 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1305 char *text2; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1306 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1307 if(child2->type != XMLNODE_TYPE_TAG) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1308 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1309 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1310 text2 = xmlnode_get_data(child2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1311 if(text2 && !strcmp(child2->name, "ORGNAME")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1312 purple_notify_user_info_add_pair(user_info, _("Organization Name"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1313 } else if(text2 && !strcmp(child2->name, "ORGUNIT")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1314 purple_notify_user_info_add_pair(user_info, _("Organization Unit"), text2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1315 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1316 g_free(text2); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1317 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1318 } else if(text && !strcmp(child->name, "TITLE")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1319 purple_notify_user_info_add_pair(user_info, _("Title"), text); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1320 } else if(text && !strcmp(child->name, "ROLE")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1321 purple_notify_user_info_add_pair(user_info, _("Role"), text); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1322 } else if(text && !strcmp(child->name, "DESC")) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1323 purple_notify_user_info_add_pair(user_info, _("Description"), text); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1324 } else if(!strcmp(child->name, "PHOTO") || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1325 !strcmp(child->name, "LOGO")) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1326 char *bintext = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1327 xmlnode *binval; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1328 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1329 if( ((binval = xmlnode_get_child(child, "BINVAL")) && |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1330 (bintext = xmlnode_get_data(binval))) || |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1331 (bintext = xmlnode_get_data(child))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1332 gsize size; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1333 guchar *data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1334 gboolean photo = (strcmp(child->name, "PHOTO") == 0); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1335 |
15823 | 1336 data = purple_base64_decode(bintext, &size); |
16515
e340dc515178
disapproval of revision 'a999246dfcbd33c9494afa445d9562aee5e5457c'
Richard Laager <rlaager@wiktel.com>
parents:
16514
diff
changeset
|
1337 if (data) { |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1338 char *img_text; |
24641
61e0924de04a
Fix up the XMPP User Avatar SHA1 hashing so that we don't mess up the checksum
Paul Aurich <paul@darkrain42.org>
parents:
24640
diff
changeset
|
1339 char *hash; |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1340 |
16515
e340dc515178
disapproval of revision 'a999246dfcbd33c9494afa445d9562aee5e5457c'
Richard Laager <rlaager@wiktel.com>
parents:
16514
diff
changeset
|
1341 jbi->vcard_imgids = g_slist_prepend(jbi->vcard_imgids, GINT_TO_POINTER(purple_imgstore_add_with_id(g_memdup(data, size), size, "logo.png"))); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1342 img_text = g_strdup_printf("<img id='%d'>", GPOINTER_TO_INT(jbi->vcard_imgids->data)); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1343 |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1344 purple_notify_user_info_add_pair(user_info, (photo ? _("Photo") : _("Logo")), img_text); |
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1345 |
24641
61e0924de04a
Fix up the XMPP User Avatar SHA1 hashing so that we don't mess up the checksum
Paul Aurich <paul@darkrain42.org>
parents:
24640
diff
changeset
|
1346 hash = jabber_calculate_data_sha1sum(data, size); |
16515
e340dc515178
disapproval of revision 'a999246dfcbd33c9494afa445d9562aee5e5457c'
Richard Laager <rlaager@wiktel.com>
parents:
16514
diff
changeset
|
1347 purple_buddy_icons_set_for_user(js->gc->account, bare_jid, |
e340dc515178
disapproval of revision 'a999246dfcbd33c9494afa445d9562aee5e5457c'
Richard Laager <rlaager@wiktel.com>
parents:
16514
diff
changeset
|
1348 data, size, hash); |
24641
61e0924de04a
Fix up the XMPP User Avatar SHA1 hashing so that we don't mess up the checksum
Paul Aurich <paul@darkrain42.org>
parents:
24640
diff
changeset
|
1349 g_free(hash); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1350 g_free(img_text); |
16515
e340dc515178
disapproval of revision 'a999246dfcbd33c9494afa445d9562aee5e5457c'
Richard Laager <rlaager@wiktel.com>
parents:
16514
diff
changeset
|
1351 } |
24641
61e0924de04a
Fix up the XMPP User Avatar SHA1 hashing so that we don't mess up the checksum
Paul Aurich <paul@darkrain42.org>
parents:
24640
diff
changeset
|
1352 g_free(bintext); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1353 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1354 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1355 g_free(text); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1356 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1357 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1358 |
22439
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1359 if (serverside_alias) { |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1360 /* If we found a serverside alias, set it and tell the core */ |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1361 serv_got_alias(js->gc, from, serverside_alias); |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1362 if (b) { |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1363 purple_blist_node_set_string((PurpleBlistNode*)b, "servernick", serverside_alias); |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1364 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1365 |
22439
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1366 g_free(serverside_alias); |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1367 } |
b53bacc6eb6e
If we receive a Full Name and no nickname, use the Full Name as the serverside alias for an XMPP contact. If we receive just a nickname or both a full name and a nickname, prefer the nickname.
Evan Schoenberg <evan.s@dreskin.net>
parents:
22404
diff
changeset
|
1368 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1369 g_free(bare_jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1370 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1371 jabber_buddy_info_show_if_ready(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1372 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1373 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1374 static void jabber_buddy_info_resource_free(gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1375 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1376 JabberBuddyInfoResource *jbri = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1377 g_free(jbri); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1378 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1379 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1380 static void jabber_version_parse(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1381 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1382 xmlnode *packet, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1383 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1384 JabberBuddyInfo *jbi = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1385 xmlnode *query; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1386 char *resource_name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1387 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1388 g_return_if_fail(jbi != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1389 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1390 jabber_buddy_info_remove_id(jbi, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1391 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1392 if(!from) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1393 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1394 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1395 resource_name = jabber_get_resource(from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1396 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1397 if(resource_name) { |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1398 if (type == JABBER_IQ_RESULT) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1399 if((query = xmlnode_get_child(packet, "query"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1400 JabberBuddyResource *jbr = jabber_buddy_find_resource(jbi->jb, resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1401 if(jbr) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1402 xmlnode *node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1403 if((node = xmlnode_get_child(query, "name"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1404 jbr->client.name = xmlnode_get_data(node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1405 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1406 if((node = xmlnode_get_child(query, "version"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1407 jbr->client.version = xmlnode_get_data(node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1408 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1409 if((node = xmlnode_get_child(query, "os"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1410 jbr->client.os = xmlnode_get_data(node); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1411 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1412 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1413 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1414 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1415 g_free(resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1416 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1417 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1418 jabber_buddy_info_show_if_ready(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1419 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1420 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1421 static void jabber_last_parse(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1422 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1423 xmlnode *packet, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1424 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1425 JabberBuddyInfo *jbi = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1426 xmlnode *query; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1427 char *resource_name; |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1428 const char *seconds; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1429 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1430 g_return_if_fail(jbi != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1431 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1432 jabber_buddy_info_remove_id(jbi, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1433 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1434 if(!from) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1435 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1436 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1437 resource_name = jabber_get_resource(from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1438 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1439 if(resource_name) { |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1440 if (type == JABBER_IQ_RESULT) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1441 if((query = xmlnode_get_child(packet, "query"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1442 seconds = xmlnode_get_attrib(query, "seconds"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1443 if(seconds) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1444 char *end = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1445 long sec = strtol(seconds, &end, 10); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1446 if(end != seconds) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1447 JabberBuddyInfoResource *jbir = g_hash_table_lookup(jbi->resources, resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1448 if(jbir) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1449 jbir->idle_seconds = sec; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1450 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1451 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1452 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1453 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1454 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1455 g_free(resource_name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1456 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1457 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1458 jabber_buddy_info_show_if_ready(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1459 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1460 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1461 static void jabber_time_parse(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1462 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1463 xmlnode *packet, gpointer data) |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1464 { |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1465 JabberBuddyInfo *jbi = data; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1466 JabberBuddyResource *jbr; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1467 char *resource_name; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1468 |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1469 g_return_if_fail(jbi != NULL); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1470 |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1471 jabber_buddy_info_remove_id(jbi, id); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1472 |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1473 if (!from) |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1474 return; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1475 |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1476 resource_name = jabber_get_resource(from); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1477 jbr = resource_name ? jabber_buddy_find_resource(jbi->jb, resource_name) : NULL; |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1478 g_free(resource_name); |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1479 if (jbr) { |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
1480 if (type == JABBER_IQ_RESULT) { |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1481 xmlnode *time = xmlnode_get_child(packet, "time"); |
25939
150282919040
Actually display the buddy's local time.
Paul Aurich <paul@darkrain42.org>
parents:
25938
diff
changeset
|
1482 xmlnode *tzo = time ? xmlnode_get_child(time, "tzo") : NULL; |
25943
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1483 char *tzo_data = tzo ? xmlnode_get_data(tzo) : NULL; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1484 if (tzo_data) { |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1485 char *c = tzo_data; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1486 int hours, minutes; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1487 if (tzo_data[0] == 'Z' && tzo_data[1] == '\0') { |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1488 jbr->tz_off = 0; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1489 } else { |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1490 gboolean offset_positive = (tzo_data[0] == '+'); |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1491 /* [+-]HH:MM */ |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1492 if (((*c == '+' || *c == '-') && (c = c + 1)) && |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1493 sscanf(c, "%02d:%02d", &hours, &minutes) == 2) { |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1494 jbr->tz_off = 60*60*hours + 60*minutes; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1495 if (!offset_positive) |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1496 jbr->tz_off *= -1; |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1497 } else { |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1498 purple_debug_info("jabber", "Ignoring malformed timezone %s", |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1499 tzo_data); |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1500 } |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1501 } |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1502 |
b73c79f7490c
Fix the timezone parsing (again) and display the timezone in the info dialog
Paul Aurich <paul@darkrain42.org>
parents:
25941
diff
changeset
|
1503 g_free(tzo_data); |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1504 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1505 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1506 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1507 |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1508 jabber_buddy_info_show_if_ready(jbi); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1509 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1510 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1511 void jabber_buddy_remove_all_pending_buddy_info_requests(JabberStream *js) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1512 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1513 if (js->pending_buddy_info_requests) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1514 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1515 JabberBuddyInfo *jbi; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1516 GSList *l = js->pending_buddy_info_requests; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1517 while (l) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1518 jbi = l->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1519 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1520 g_slist_free(jbi->ids); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1521 jabber_buddy_info_destroy(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1522 |
15666
6eda87b08cdf
Don't access the list element after it has been freed.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15627
diff
changeset
|
1523 l = l->next; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1524 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1525 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1526 g_slist_free(js->pending_buddy_info_requests); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1527 js->pending_buddy_info_requests = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1528 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1529 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1530 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1531 static gboolean jabber_buddy_get_info_timeout(gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1532 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1533 JabberBuddyInfo *jbi = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1534 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1535 /* remove the pending callbacks */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1536 while(jbi->ids) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1537 char *id = jbi->ids->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1538 jabber_iq_remove_callback_by_id(jbi->js, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1539 jbi->ids = g_slist_remove(jbi->ids, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1540 g_free(id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1541 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1542 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1543 jbi->js->pending_buddy_info_requests = g_slist_remove(jbi->js->pending_buddy_info_requests, jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1544 jbi->timeout_handle = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1545 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1546 jabber_buddy_info_show_if_ready(jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1547 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1548 return FALSE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1549 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1550 |
16990
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1551 static gboolean _client_is_blacklisted(JabberBuddyResource *jbr, const char *ns) |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1552 { |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1553 /* can't be blacklisted if we don't know what you're running yet */ |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1554 if(!jbr->client.name) |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1555 return FALSE; |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1556 |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1557 if(!strcmp(ns, "jabber:iq:last")) { |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1558 if(!strcmp(jbr->client.name, "Trillian")) { |
20092
ab3c87375b17
another day, another irritating workaround
Nathan Walp <nwalp@pidgin.im>
parents:
20058
diff
changeset
|
1559 /* verified by nwalp 2007/05/09 */ |
ab3c87375b17
another day, another irritating workaround
Nathan Walp <nwalp@pidgin.im>
parents:
20058
diff
changeset
|
1560 if(!strcmp(jbr->client.version, "3.1.0.121") || |
ab3c87375b17
another day, another irritating workaround
Nathan Walp <nwalp@pidgin.im>
parents:
20058
diff
changeset
|
1561 /* verified by nwalp 2007/09/19 */ |
ab3c87375b17
another day, another irritating workaround
Nathan Walp <nwalp@pidgin.im>
parents:
20058
diff
changeset
|
1562 !strcmp(jbr->client.version, "3.1.7.0")) { |
16990
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1563 return TRUE; |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1564 } |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1565 } |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1566 } |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1567 |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1568 return FALSE; |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1569 } |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1570 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1571 static void jabber_buddy_get_info_for_jid(JabberStream *js, const char *jid) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1572 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1573 JabberIq *iq; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1574 xmlnode *vcard; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1575 GList *resources; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1576 JabberBuddy *jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1577 JabberBuddyInfo *jbi; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1578 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1579 jb = jabber_buddy_find(js, jid, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1580 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1581 /* invalid JID */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1582 if(!jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1583 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1584 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1585 jbi = g_new0(JabberBuddyInfo, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1586 jbi->jid = g_strdup(jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1587 jbi->js = js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1588 jbi->jb = jb; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1589 jbi->resources = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, jabber_buddy_info_resource_free); |
23208
646e96069fcd
Use the notify_user_info API for the vcard information instead of creating
Evan Schoenberg <evan.s@dreskin.net>
parents:
23182
diff
changeset
|
1590 jbi->user_info = purple_notify_user_info_new(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1591 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1592 iq = jabber_iq_new(js, JABBER_IQ_GET); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1593 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1594 xmlnode_set_attrib(iq->node, "to", jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1595 vcard = xmlnode_new_child(iq->node, "vCard"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1596 xmlnode_set_namespace(vcard, "vcard-temp"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1597 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1598 jabber_iq_set_callback(iq, jabber_vcard_parse, jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1599 jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1600 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1601 jabber_iq_send(iq); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1602 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1603 for(resources = jb->resources; resources; resources = resources->next) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1604 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1605 JabberBuddyResource *jbr = resources->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1606 JabberBuddyInfoResource *jbir; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1607 char *full_jid; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1608 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1609 if ((strchr(jid, '/') == NULL) && (jbr->name != NULL)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1610 full_jid = g_strdup_printf("%s/%s", jid, jbr->name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1611 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1612 full_jid = g_strdup(jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1613 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1614 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1615 if (jbr->name != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1616 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1617 jbir = g_new0(JabberBuddyInfoResource, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1618 g_hash_table_insert(jbi->resources, g_strdup(jbr->name), jbir); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1619 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1620 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1621 if(!jbr->client.name) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1622 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:version"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1623 xmlnode_set_attrib(iq->node, "to", full_jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1624 jabber_iq_set_callback(iq, jabber_version_parse, jbi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1625 jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1626 jabber_iq_send(iq); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1627 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1628 |
16990
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1629 /* this is to fix the feeling of irritation I get when trying |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1630 * to get info on a friend running Trillian, which doesn't |
17006 | 1631 * respond (with an error or otherwise) to jabber:iq:last |
16990
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1632 * requests. There are a number of Trillian users in my |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1633 * office. */ |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1634 if(!_client_is_blacklisted(jbr, "jabber:iq:last")) { |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1635 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:last"); |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1636 xmlnode_set_attrib(iq->node, "to", full_jid); |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1637 jabber_iq_set_callback(iq, jabber_last_parse, jbi); |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1638 jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1639 jabber_iq_send(iq); |
f8d0c9bbb9ae
gross hack that will save me time in 30 second chunks
Nathan Walp <nwalp@pidgin.im>
parents:
16962
diff
changeset
|
1640 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1641 |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1642 if (jbr->tz_off == PURPLE_NO_TZ_OFF && |
25941
d1a0e487d45f
Request time information from a resource if we don't have caps for it
Paul Aurich <paul@darkrain42.org>
parents:
25939
diff
changeset
|
1643 (!jbr->caps || |
d1a0e487d45f
Request time information from a resource if we don't have caps for it
Paul Aurich <paul@darkrain42.org>
parents:
25939
diff
changeset
|
1644 jabber_resource_has_capability(jbr, "urn:xmpp:time"))) { |
25938
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1645 xmlnode *child; |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1646 iq = jabber_iq_new(js, JABBER_IQ_GET); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1647 xmlnode_set_attrib(iq->node, "to", full_jid); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1648 child = xmlnode_new_child(iq->node, "time"); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1649 xmlnode_set_namespace(child, "urn:xmpp:time"); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1650 jabber_iq_set_callback(iq, jabber_time_parse, jbi); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1651 jbi->ids = g_slist_prepend(jbi->ids, g_strdup(iq->id)); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1652 jabber_iq_send(iq); |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1653 } |
45c33d60c547
Retrieve and display buddy's local time in Get Info dialog
Paul Aurich <paul@darkrain42.org>
parents:
24984
diff
changeset
|
1654 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1655 g_free(full_jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1656 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1657 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1658 js->pending_buddy_info_requests = g_slist_prepend(js->pending_buddy_info_requests, jbi); |
15823 | 1659 jbi->timeout_handle = purple_timeout_add(30000, jabber_buddy_get_info_timeout, jbi); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1660 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1661 |
15823 | 1662 void jabber_buddy_get_info(PurpleConnection *gc, const char *who) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1663 { |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1664 JabberStream *js = purple_connection_get_protocol_data(gc); |
24510
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1665 JabberID *jid = jabber_id_new(who); |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1666 |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1667 if (!jid) |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1668 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1669 |
25069
d7dcdba13b88
A JID can have no node (the part before the @), but a chat must have one,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
24984
diff
changeset
|
1670 if (jid->node && jabber_chat_find(js, jid->node, jid->domain)) { |
24510
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1671 /* For a conversation, include the resource (indicates the user). */ |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1672 jabber_buddy_get_info_for_jid(js, who); |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1673 } else { |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1674 char *bare_jid = jabber_get_bare_jid(who); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1675 jabber_buddy_get_info_for_jid(js, bare_jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1676 g_free(bare_jid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1677 } |
24510
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1678 |
5f597914cd01
Don't try to get info for MUC's. Allow getting info for regular JID's and
Paul Aurich <paul@darkrain42.org>
parents:
24507
diff
changeset
|
1679 jabber_id_free(jid); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1680 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1681 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1682 static void jabber_buddy_set_invisibility(JabberStream *js, const char *who, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1683 gboolean invisible) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1684 { |
15823 | 1685 PurplePresence *gpresence; |
1686 PurpleAccount *account; | |
1687 PurpleStatus *status; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1688 JabberBuddy *jb = jabber_buddy_find(js, who, TRUE); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1689 xmlnode *presence; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1690 JabberBuddyState state; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1691 char *msg; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1692 int priority; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1693 |
15823 | 1694 account = purple_connection_get_account(js->gc); |
1695 gpresence = purple_account_get_presence(account); | |
1696 status = purple_presence_get_active_status(gpresence); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1697 |
15823 | 1698 purple_status_to_jabber(status, &state, &msg, &priority); |
17563
95affacf6f82
Added the ability to define extensions to caps
Andreas Monitzer <pidgin@monitzer.com>
parents:
17006
diff
changeset
|
1699 presence = jabber_presence_create_js(js, state, msg, priority); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1700 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1701 g_free(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1702 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1703 xmlnode_set_attrib(presence, "to", who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1704 if(invisible) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1705 xmlnode_set_attrib(presence, "type", "invisible"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1706 jb->invisible |= JABBER_INVIS_BUDDY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1707 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1708 jb->invisible &= ~JABBER_INVIS_BUDDY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1709 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1710 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1711 jabber_send(js, presence); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1712 xmlnode_free(presence); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1713 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1714 |
15823 | 1715 static void jabber_buddy_make_invisible(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1716 { |
15823 | 1717 PurpleBuddy *buddy; |
1718 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1719 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1720 |
15823 | 1721 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1722 |
15823 | 1723 buddy = (PurpleBuddy *) node; |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1724 gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1725 js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1726 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1727 jabber_buddy_set_invisibility(js, purple_buddy_get_name(buddy), TRUE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1728 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1729 |
15823 | 1730 static void jabber_buddy_make_visible(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1731 { |
15823 | 1732 PurpleBuddy *buddy; |
1733 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1734 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1735 |
15823 | 1736 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1737 |
15823 | 1738 buddy = (PurpleBuddy *) node; |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1739 gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1740 js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1741 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1742 jabber_buddy_set_invisibility(js, purple_buddy_get_name(buddy), FALSE); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1743 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1744 |
15823 | 1745 static void jabber_buddy_cancel_presence_notification(PurpleBlistNode *node, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1746 gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1747 { |
15823 | 1748 PurpleBuddy *buddy; |
1749 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1750 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1751 |
15823 | 1752 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1753 |
15823 | 1754 buddy = (PurpleBuddy *) node; |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1755 gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1756 js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1757 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1758 /* I wonder if we should prompt the user before doing this */ |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1759 jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "unsubscribed"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1760 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1761 |
15823 | 1762 static void jabber_buddy_rerequest_auth(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1763 { |
15823 | 1764 PurpleBuddy *buddy; |
1765 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1766 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1767 |
15823 | 1768 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1769 |
15823 | 1770 buddy = (PurpleBuddy *) node; |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1771 gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1772 js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1773 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1774 jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "subscribe"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1775 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1776 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1777 |
15823 | 1778 static void jabber_buddy_unsubscribe(PurpleBlistNode *node, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1779 { |
15823 | 1780 PurpleBuddy *buddy; |
1781 PurpleConnection *gc; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1782 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1783 |
15823 | 1784 g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1785 |
15823 | 1786 buddy = (PurpleBuddy *) node; |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1787 gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1788 js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1789 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1790 jabber_presence_subscription_set(js, purple_buddy_get_name(buddy), "unsubscribe"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1791 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1792 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1793 static void jabber_buddy_login(PurpleBlistNode *node, gpointer data) { |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1794 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1795 /* simply create a directed presence of the current status */ |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1796 PurpleBuddy *buddy = (PurpleBuddy *) node; |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1797 PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1798 JabberStream *js = purple_connection_get_protocol_data(gc); |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1799 PurpleAccount *account = purple_connection_get_account(gc); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1800 PurplePresence *gpresence = purple_account_get_presence(account); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1801 PurpleStatus *status = purple_presence_get_active_status(gpresence); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1802 xmlnode *presence; |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1803 JabberBuddyState state; |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1804 char *msg; |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1805 int priority; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1806 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1807 purple_status_to_jabber(status, &state, &msg, &priority); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1808 presence = jabber_presence_create_js(js, state, msg, priority); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1809 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1810 g_free(msg); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1811 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1812 xmlnode_set_attrib(presence, "to", purple_buddy_get_name(buddy)); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1813 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1814 jabber_send(js, presence); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1815 xmlnode_free(presence); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1816 } |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1817 } |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1818 |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1819 static void jabber_buddy_logout(PurpleBlistNode *node, gpointer data) { |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1820 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1821 /* simply create a directed unavailable presence */ |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1822 PurpleBuddy *buddy = (PurpleBuddy *) node; |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1823 PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1824 JabberStream *js = purple_connection_get_protocol_data(gc); |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1825 xmlnode *presence; |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1826 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1827 presence = jabber_presence_create_js(js, JABBER_BUDDY_STATE_UNAVAILABLE, NULL, 0); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1828 |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1829 xmlnode_set_attrib(presence, "to", purple_buddy_get_name(buddy)); |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1830 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1831 jabber_send(js, presence); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1832 xmlnode_free(presence); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1833 } |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1834 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1835 |
15823 | 1836 static GList *jabber_buddy_menu(PurpleBuddy *buddy) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1837 { |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1838 PurpleConnection *gc = purple_account_get_connection(purple_buddy_get_account(buddy)); |
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
1839 JabberStream *js = purple_connection_get_protocol_data(gc); |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1840 const char *name = purple_buddy_get_name(buddy); |
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1841 JabberBuddy *jb = jabber_buddy_find(js, name, TRUE); |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1842 GList *jbrs; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1843 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1844 GList *m = NULL; |
15823 | 1845 PurpleMenuAction *act; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1846 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1847 if(!jb) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1848 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1849 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1850 /* XXX: fix the NOT ME below */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1851 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1852 if(js->protocol_version == JABBER_PROTO_0_9 /* && NOT ME */) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1853 if(jb->invisible & JABBER_INVIS_BUDDY) { |
15823 | 1854 act = purple_menu_action_new(_("Un-hide From"), |
1855 PURPLE_CALLBACK(jabber_buddy_make_visible), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1856 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1857 } else { |
15823 | 1858 act = purple_menu_action_new(_("Temporarily Hide From"), |
1859 PURPLE_CALLBACK(jabber_buddy_make_invisible), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1860 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1861 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1862 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1863 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1864 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1865 if(jb->subscription & JABBER_SUB_FROM /* && NOT ME */) { |
15823 | 1866 act = purple_menu_action_new(_("Cancel Presence Notification"), |
1867 PURPLE_CALLBACK(jabber_buddy_cancel_presence_notification), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1868 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1869 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1870 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1871 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1872 if(!(jb->subscription & JABBER_SUB_TO)) { |
15823 | 1873 act = purple_menu_action_new(_("(Re-)Request authorization"), |
1874 PURPLE_CALLBACK(jabber_buddy_rerequest_auth), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1875 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1876 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1877 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1878 } else /* if(NOT ME) */{ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1879 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1880 /* shouldn't this just happen automatically when the buddy is |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1881 removed? */ |
15823 | 1882 act = purple_menu_action_new(_("Unsubscribe"), |
1883 PURPLE_CALLBACK(jabber_buddy_unsubscribe), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1884 NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1885 m = g_list_append(m, act); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1886 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1887 |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1888 /* |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1889 * This if-condition implements parts of XEP-0100: Gateway Interaction |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1890 * |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1891 * According to stpeter, there is no way to know if a jid on the roster is a gateway without sending a disco#info. |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1892 * However, since the gateway might appear offline to us, we cannot get that information. Therefore, I just assume |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1893 * that gateways on the roster can be identified by having no '@' in their jid. This is a faily safe assumption, since |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1894 * people don't tend to have a server or other service there. |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1895 */ |
24120
16734635febf
Start hiding blist.h internals in prpls.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23986
diff
changeset
|
1896 if (g_utf8_strchr(name, -1, '@') == NULL) { |
17601
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1897 act = purple_menu_action_new(_("Log In"), |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1898 PURPLE_CALLBACK(jabber_buddy_login), |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1899 NULL, NULL); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1900 m = g_list_append(m, act); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1901 act = purple_menu_action_new(_("Log Out"), |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1902 PURPLE_CALLBACK(jabber_buddy_logout), |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1903 NULL, NULL); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1904 m = g_list_append(m, act); |
906ed2836a04
Implemented logging in/out of gateways, as explained in XEP-0100.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17600
diff
changeset
|
1905 } |
25443
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25438
diff
changeset
|
1906 |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1907 /* add all ad hoc commands to the action menu */ |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1908 for(jbrs = jb->resources; jbrs; jbrs = g_list_next(jbrs)) { |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1909 JabberBuddyResource *jbr = jbrs->data; |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1910 GList *commands; |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1911 if (!jbr->commands) |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1912 continue; |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1913 for(commands = jbr->commands; commands; commands = g_list_next(commands)) { |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1914 JabberAdHocCommands *cmd = commands->data; |
17611
feac55968392
Now all ad-hoc commands have to be sent through jabber_adhoc_execute to be properly executed (including the form steps). This cleans up the code a bit, and avoids DOS attacks by flooding the client with malicious ad-hoc command forms that were not requested.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17609
diff
changeset
|
1915 act = purple_menu_action_new(cmd->name, PURPLE_CALLBACK(jabber_adhoc_execute_action), cmd, NULL); |
17609
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1916 m = g_list_append(m, act); |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1917 } |
f88b3a093cba
Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <pidgin@monitzer.com>
parents:
17601
diff
changeset
|
1918 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1919 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1920 return m; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1921 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1922 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1923 GList * |
15823 | 1924 jabber_blist_node_menu(PurpleBlistNode *node) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1925 { |
15823 | 1926 if(PURPLE_BLIST_NODE_IS_BUDDY(node)) { |
1927 return jabber_buddy_menu((PurpleBuddy *) node); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1928 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1929 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1930 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1931 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1932 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1933 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1934 const char * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1935 jabber_buddy_state_get_name(JabberBuddyState state) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1936 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1937 switch(state) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1938 case JABBER_BUDDY_STATE_UNKNOWN: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1939 return _("Unknown"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1940 case JABBER_BUDDY_STATE_ERROR: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1941 return _("Error"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1942 case JABBER_BUDDY_STATE_UNAVAILABLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1943 return _("Offline"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1944 case JABBER_BUDDY_STATE_ONLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1945 return _("Available"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1946 case JABBER_BUDDY_STATE_CHAT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1947 return _("Chatty"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1948 case JABBER_BUDDY_STATE_AWAY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1949 return _("Away"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1950 case JABBER_BUDDY_STATE_XA: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1951 return _("Extended Away"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1952 case JABBER_BUDDY_STATE_DND: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1953 return _("Do Not Disturb"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1954 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1955 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1956 return _("Unknown"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1957 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1958 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1959 JabberBuddyState jabber_buddy_status_id_get_state(const char *id) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1960 if(!id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1961 return JABBER_BUDDY_STATE_UNKNOWN; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1962 if(!strcmp(id, "available")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1963 return JABBER_BUDDY_STATE_ONLINE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1964 if(!strcmp(id, "freeforchat")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1965 return JABBER_BUDDY_STATE_CHAT; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1966 if(!strcmp(id, "away")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1967 return JABBER_BUDDY_STATE_AWAY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1968 if(!strcmp(id, "extended_away")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1969 return JABBER_BUDDY_STATE_XA; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1970 if(!strcmp(id, "dnd")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1971 return JABBER_BUDDY_STATE_DND; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1972 if(!strcmp(id, "offline")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1973 return JABBER_BUDDY_STATE_UNAVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1974 if(!strcmp(id, "error")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1975 return JABBER_BUDDY_STATE_ERROR; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1976 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1977 return JABBER_BUDDY_STATE_UNKNOWN; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1978 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1979 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1980 JabberBuddyState jabber_buddy_show_get_state(const char *id) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1981 if(!id) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1982 return JABBER_BUDDY_STATE_UNKNOWN; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1983 if(!strcmp(id, "available")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1984 return JABBER_BUDDY_STATE_ONLINE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1985 if(!strcmp(id, "chat")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1986 return JABBER_BUDDY_STATE_CHAT; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1987 if(!strcmp(id, "away")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1988 return JABBER_BUDDY_STATE_AWAY; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1989 if(!strcmp(id, "xa")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1990 return JABBER_BUDDY_STATE_XA; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1991 if(!strcmp(id, "dnd")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1992 return JABBER_BUDDY_STATE_DND; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1993 if(!strcmp(id, "offline")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1994 return JABBER_BUDDY_STATE_UNAVAILABLE; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1995 if(!strcmp(id, "error")) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1996 return JABBER_BUDDY_STATE_ERROR; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1997 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1998 return JABBER_BUDDY_STATE_UNKNOWN; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1999 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2000 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2001 const char *jabber_buddy_state_get_show(JabberBuddyState state) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2002 switch(state) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2003 case JABBER_BUDDY_STATE_CHAT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2004 return "chat"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2005 case JABBER_BUDDY_STATE_AWAY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2006 return "away"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2007 case JABBER_BUDDY_STATE_XA: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2008 return "xa"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2009 case JABBER_BUDDY_STATE_DND: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2010 return "dnd"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2011 case JABBER_BUDDY_STATE_ONLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2012 return "available"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2013 case JABBER_BUDDY_STATE_UNKNOWN: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2014 case JABBER_BUDDY_STATE_ERROR: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2015 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2016 case JABBER_BUDDY_STATE_UNAVAILABLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2017 return "offline"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2018 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2019 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2020 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2021 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2022 const char *jabber_buddy_state_get_status_id(JabberBuddyState state) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2023 switch(state) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2024 case JABBER_BUDDY_STATE_CHAT: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2025 return "freeforchat"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2026 case JABBER_BUDDY_STATE_AWAY: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2027 return "away"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2028 case JABBER_BUDDY_STATE_XA: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2029 return "extended_away"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2030 case JABBER_BUDDY_STATE_DND: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2031 return "dnd"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2032 case JABBER_BUDDY_STATE_ONLINE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2033 return "available"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2034 case JABBER_BUDDY_STATE_UNKNOWN: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2035 return "available"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2036 case JABBER_BUDDY_STATE_ERROR: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2037 return "error"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2038 case JABBER_BUDDY_STATE_UNAVAILABLE: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2039 return "offline"; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2040 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2041 return NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2042 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2043 |
15823 | 2044 static void user_search_result_add_buddy_cb(PurpleConnection *gc, GList *row, void *user_data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2045 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2046 /* XXX find out the jid */ |
15823 | 2047 purple_blist_request_add_buddy(purple_connection_get_account(gc), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2048 g_list_nth_data(row, 0), NULL, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2049 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2050 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2051 static void user_search_result_cb(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2052 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2053 xmlnode *packet, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2054 { |
15823 | 2055 PurpleNotifySearchResults *results; |
2056 PurpleNotifySearchColumn *column; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2057 xmlnode *x, *query, *item, *field; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2058 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2059 /* XXX error checking? */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2060 if(!(query = xmlnode_get_child(packet, "query"))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2061 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2062 |
15823 | 2063 results = purple_notify_searchresults_new(); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2064 if((x = xmlnode_get_child_with_namespace(query, "x", "jabber:x:data"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2065 xmlnode *reported; |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2066 GSList *column_vars = NULL; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2067 |
15823 | 2068 purple_debug_info("jabber", "new-skool\n"); |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2069 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2070 if((reported = xmlnode_get_child(x, "reported"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2071 xmlnode *field = xmlnode_get_child(reported, "field"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2072 while(field) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2073 const char *var = xmlnode_get_attrib(field, "var"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2074 const char *label = xmlnode_get_attrib(field, "label"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2075 if(var) { |
15823 | 2076 column = purple_notify_searchresults_column_new(label ? label : var); |
2077 purple_notify_searchresults_column_add(results, column); | |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2078 column_vars = g_slist_append(column_vars, (char *)var); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2079 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2080 field = xmlnode_get_next_twin(field); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2081 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2082 } |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2083 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2084 item = xmlnode_get_child(x, "item"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2085 while(item) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2086 GList *row = NULL; |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2087 GSList *l; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2088 xmlnode *valuenode; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2089 const char *var; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2090 |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2091 for (l = column_vars; l != NULL; l = l->next) { |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2092 /* |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2093 * Build a row containing the strings that correspond |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2094 * to each column of the search results. |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2095 */ |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2096 for (field = xmlnode_get_child(item, "field"); |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2097 field != NULL; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2098 field = xmlnode_get_next_twin(field)) |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2099 { |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2100 if ((var = xmlnode_get_attrib(field, "var")) && |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2101 !strcmp(var, l->data) && |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2102 (valuenode = xmlnode_get_child(field, "value"))) |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2103 { |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2104 char *value = xmlnode_get_data(valuenode); |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2105 row = g_list_append(row, value); |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2106 break; |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2107 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2108 } |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2109 if (field == NULL) |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2110 /* No data for this column */ |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2111 row = g_list_append(row, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2112 } |
15823 | 2113 purple_notify_searchresults_row_add(results, row); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2114 item = xmlnode_get_next_twin(item); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2115 } |
19931
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2116 |
cd067497cbe0
Fix the bug reported to the devel mailing list by Georgi Kirilov.
Mark Doliner <mark@kingant.net>
parents:
19729
diff
changeset
|
2117 g_slist_free(column_vars); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2118 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2119 /* old skool */ |
15823 | 2120 purple_debug_info("jabber", "old-skool\n"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2121 |
15823 | 2122 column = purple_notify_searchresults_column_new(_("JID")); |
2123 purple_notify_searchresults_column_add(results, column); | |
2124 column = purple_notify_searchresults_column_new(_("First Name")); | |
2125 purple_notify_searchresults_column_add(results, column); | |
2126 column = purple_notify_searchresults_column_new(_("Last Name")); | |
2127 purple_notify_searchresults_column_add(results, column); | |
2128 column = purple_notify_searchresults_column_new(_("Nickname")); | |
2129 purple_notify_searchresults_column_add(results, column); | |
23182
e0bcb8cfda74
Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@wiktel.com>
parents:
22834
diff
changeset
|
2130 column = purple_notify_searchresults_column_new(_("Email")); |
15823 | 2131 purple_notify_searchresults_column_add(results, column); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2132 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2133 for(item = xmlnode_get_child(query, "item"); item; item = xmlnode_get_next_twin(item)) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2134 const char *jid; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2135 xmlnode *node; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2136 GList *row = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2137 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2138 if(!(jid = xmlnode_get_attrib(item, "jid"))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2139 continue; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2140 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2141 row = g_list_append(row, g_strdup(jid)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2142 node = xmlnode_get_child(item, "first"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2143 row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2144 node = xmlnode_get_child(item, "last"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2145 row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2146 node = xmlnode_get_child(item, "nick"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2147 row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2148 node = xmlnode_get_child(item, "email"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2149 row = g_list_append(row, node ? xmlnode_get_data(node) : NULL); |
22475
3225c99785b8
Fix a bunch of compiler warnings caused by my addition of G_GNUC_PRINTF()
Mark Doliner <mark@kingant.net>
parents:
22439
diff
changeset
|
2150 purple_debug_info("jabber", "row=%p\n", row); |
15823 | 2151 purple_notify_searchresults_row_add(results, row); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2152 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2153 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2154 |
15823 | 2155 purple_notify_searchresults_button_add(results, PURPLE_NOTIFY_BUTTON_ADD, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2156 user_search_result_add_buddy_cb); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2157 |
15823 | 2158 purple_notify_searchresults(js->gc, NULL, NULL, _("The following are the results of your search"), results, NULL, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2160 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2161 static void user_search_x_data_cb(JabberStream *js, xmlnode *result, gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2162 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2163 xmlnode *query; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2164 JabberIq *iq; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2165 char *dir_server = data; |
21120
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2166 const char *type; |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2167 |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2168 /* if they've cancelled the search, we're |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2169 * just going to get an error if we send |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2170 * a cancel, so skip it */ |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2171 type = xmlnode_get_attrib(result, "type"); |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2172 if(type && !strcmp(type, "cancel")) { |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2173 g_free(dir_server); |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2174 return; |
0cc12e6909e2
don't send a canceled user query
Nathan Walp <nwalp@pidgin.im>
parents:
21113
diff
changeset
|
2175 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2176 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2177 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:search"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2178 query = xmlnode_get_child(iq->node, "query"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2179 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2180 xmlnode_insert_child(query, result); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2181 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2182 jabber_iq_set_callback(iq, user_search_result_cb, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2183 xmlnode_set_attrib(iq->node, "to", dir_server); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2184 jabber_iq_send(iq); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2185 g_free(dir_server); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2186 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2187 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2188 struct user_search_info { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2189 JabberStream *js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2190 char *directory_server; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2191 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2192 |
15823 | 2193 static void user_search_cancel_cb(struct user_search_info *usi, PurpleRequestFields *fields) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2194 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2195 g_free(usi->directory_server); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2196 g_free(usi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2197 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2198 |
15823 | 2199 static void user_search_cb(struct user_search_info *usi, PurpleRequestFields *fields) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2200 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2201 JabberStream *js = usi->js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2202 JabberIq *iq; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2203 xmlnode *query; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2204 GList *groups, *flds; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2205 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2206 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:search"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2207 query = xmlnode_get_child(iq->node, "query"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2208 |
15823 | 2209 for(groups = purple_request_fields_get_groups(fields); groups; groups = groups->next) { |
2210 for(flds = purple_request_field_group_get_fields(groups->data); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2211 flds; flds = flds->next) { |
15823 | 2212 PurpleRequestField *field = flds->data; |
2213 const char *id = purple_request_field_get_id(field); | |
2214 const char *value = purple_request_field_string_get_value(field); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2215 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2216 if(value && (!strcmp(id, "first") || !strcmp(id, "last") || !strcmp(id, "nick") || !strcmp(id, "email"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2217 xmlnode *y = xmlnode_new_child(query, id); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2218 xmlnode_insert_data(y, value, -1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2219 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2220 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2221 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2222 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2223 jabber_iq_set_callback(iq, user_search_result_cb, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2224 xmlnode_set_attrib(iq->node, "to", usi->directory_server); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2225 jabber_iq_send(iq); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2226 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2227 g_free(usi->directory_server); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2228 g_free(usi); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2229 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2230 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2231 #if 0 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2232 /* This is for gettext only -- it will see this even though there's an #if 0. */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2233 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2234 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2235 * An incomplete list of server generated original language search |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2236 * comments for Jabber User Directories |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2237 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2238 * See discussion thread "Search comment for Jabber is not translatable" |
15823 | 2239 * in purple-i18n@lists.sourceforge.net (March 2006) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2240 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2241 static const char * jabber_user_dir_comments [] = { |
19489
b0733d5d7621
Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18698
diff
changeset
|
2242 /* current comment from Jabber User Directory users.jabber.org */ |
b0733d5d7621
Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18698
diff
changeset
|
2243 N_("Find a contact by entering the search criteria in the given fields. " |
b0733d5d7621
Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18698
diff
changeset
|
2244 "Note: Each field supports wild card searches (%)"), |
b0733d5d7621
Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents:
18698
diff
changeset
|
2245 NULL |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2246 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2247 #endif |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2248 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2249 static void user_search_fields_result_cb(JabberStream *js, const char *from, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2250 JabberIqType type, const char *id, |
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2251 xmlnode *packet, gpointer data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2252 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2253 xmlnode *query, *x; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2254 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2255 if (!from) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2256 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2257 |
26547
ae41d8e827e3
Convert all the XMPP IQ callbacks to a typedef similar to the IQ Handlers.
Paul Aurich <paul@darkrain42.org>
parents:
25983
diff
changeset
|
2258 if (type == JABBER_IQ_ERROR) { |
20814
bde477ec6a71
Stop jabber setting wants_to_die itself. This involved plumbing disconnection
Will Thompson <will.thompson@collabora.co.uk>
parents:
20092
diff
changeset
|
2259 char *msg = jabber_parse_error(js, packet, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2260 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2261 if(!msg) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2262 msg = g_strdup(_("Unknown error")); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2263 |
15823 | 2264 purple_notify_error(js->gc, _("Directory Query Failed"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2265 _("Could not query the directory server."), msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2266 g_free(msg); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2267 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2268 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2269 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2270 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2271 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2272 if(!(query = xmlnode_get_child(packet, "query"))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2273 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2274 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2275 if((x = xmlnode_get_child_with_namespace(query, "x", "jabber:x:data"))) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2276 jabber_x_data_request(js, x, user_search_x_data_cb, g_strdup(from)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2277 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2278 } else { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2279 struct user_search_info *usi; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2280 xmlnode *instnode; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2281 char *instructions = NULL; |
15823 | 2282 PurpleRequestFields *fields; |
2283 PurpleRequestFieldGroup *group; | |
2284 PurpleRequestField *field; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2285 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2286 /* old skool */ |
15823 | 2287 fields = purple_request_fields_new(); |
2288 group = purple_request_field_group_new(NULL); | |
2289 purple_request_fields_add_group(fields, group); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2290 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2291 if((instnode = xmlnode_get_child(query, "instructions"))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2292 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2293 char *tmp = xmlnode_get_data(instnode); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2294 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2295 if(tmp) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2296 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2297 /* Try to translate the message (see static message |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2298 list in jabber_user_dir_comments[]) */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2299 instructions = g_strdup_printf(_("Server Instructions: %s"), _(tmp)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2300 g_free(tmp); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2301 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2302 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2303 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2304 if(!instructions) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2305 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2306 instructions = g_strdup(_("Fill in one or more fields to search " |
16915
56042b2f8b64
s/Jabber/XMPP in user-visible places.
Richard Laager <rlaager@wiktel.com>
parents:
16728
diff
changeset
|
2307 "for any matching XMPP users.")); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2308 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2309 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2310 if(xmlnode_get_child(query, "first")) { |
15823 | 2311 field = purple_request_field_string_new("first", _("First Name"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2312 NULL, FALSE); |
15823 | 2313 purple_request_field_group_add_field(group, field); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2314 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2315 if(xmlnode_get_child(query, "last")) { |
15823 | 2316 field = purple_request_field_string_new("last", _("Last Name"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2317 NULL, FALSE); |
15823 | 2318 purple_request_field_group_add_field(group, field); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2319 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2320 if(xmlnode_get_child(query, "nick")) { |
15823 | 2321 field = purple_request_field_string_new("nick", _("Nickname"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2322 NULL, FALSE); |
15823 | 2323 purple_request_field_group_add_field(group, field); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2324 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2325 if(xmlnode_get_child(query, "email")) { |
23182
e0bcb8cfda74
Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@wiktel.com>
parents:
22834
diff
changeset
|
2326 field = purple_request_field_string_new("email", _("Email Address"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2327 NULL, FALSE); |
15823 | 2328 purple_request_field_group_add_field(group, field); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2329 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2330 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2331 usi = g_new0(struct user_search_info, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2332 usi->js = js; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2333 usi->directory_server = g_strdup(from); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2334 |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
2335 purple_request_fields(js->gc, _("Search for XMPP users"), |
16915
56042b2f8b64
s/Jabber/XMPP in user-visible places.
Richard Laager <rlaager@wiktel.com>
parents:
16728
diff
changeset
|
2336 _("Search for XMPP users"), instructions, fields, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2337 _("Search"), G_CALLBACK(user_search_cb), |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
2338 _("Cancel"), G_CALLBACK(user_search_cancel_cb), |
17591
58a145802f0a
Fixed weird bug that caused not supplying the account when searching for users.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17582
diff
changeset
|
2339 purple_connection_get_account(js->gc), NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
2340 usi); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2341 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2342 g_free(instructions); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2343 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2344 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2345 |
17600
3f2b5e2ab5c5
Exposed the user search function, so that directory searches can be performed directly when the jid is known.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17591
diff
changeset
|
2346 void jabber_user_search(JabberStream *js, const char *directory) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2347 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2348 JabberIq *iq; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2349 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2350 /* XXX: should probably better validate the directory we're given */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2351 if(!directory || !*directory) { |
15823 | 2352 purple_notify_error(js->gc, _("Invalid Directory"), _("Invalid Directory"), NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2353 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2354 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2355 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2356 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:search"); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2357 xmlnode_set_attrib(iq->node, "to", directory); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2358 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2359 jabber_iq_set_callback(iq, user_search_fields_result_cb, NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2360 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2361 jabber_iq_send(iq); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2362 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2363 |
15823 | 2364 void jabber_user_search_begin(PurplePluginAction *action) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2365 { |
15823 | 2366 PurpleConnection *gc = (PurpleConnection *) action->context; |
25286
ede22bc33d56
More struct hiding work
Richard Laager <rlaager@wiktel.com>
parents:
23986
diff
changeset
|
2367 JabberStream *js = purple_connection_get_protocol_data(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2368 |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
2369 purple_request_input(gc, _("Enter a User Directory"), _("Enter a User Directory"), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2370 _("Select a user directory to search"), |
16962
88444e60ea95
Removes 'jabber.org' defaults from XMPP. I think we had agreed this was a good idea.
Sean Egan <seanegan@gmail.com>
parents:
16915
diff
changeset
|
2371 js->user_directories ? js->user_directories->data : NULL, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2372 FALSE, FALSE, NULL, |
17600
3f2b5e2ab5c5
Exposed the user search function, so that directory searches can be performed directly when the jid is known.
Andreas Monitzer <pidgin@monitzer.com>
parents:
17591
diff
changeset
|
2373 _("Search Directory"), PURPLE_CALLBACK(jabber_user_search), |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
2374 _("Cancel"), NULL, |
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
15823
diff
changeset
|
2375 NULL, NULL, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
2376 js); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2377 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2378 |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2379 gboolean |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2380 jabber_resource_has_capability(const JabberBuddyResource *jbr, const gchar *cap) |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2381 { |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2382 const GList *iter = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2383 |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2384 if (!jbr->caps) { |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2385 purple_debug_error("jabber", |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2386 "Unable to find caps: nothing known about buddy\n"); |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2387 return FALSE; |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2388 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
2389 |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2390 for (iter = jbr->caps->features ; iter ; iter = g_list_next(iter)) { |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2391 if (strcmp(iter->data, cap) == 0) { |
24312
f4cb55854e87
Make jabber_resource_have_capability polute the log a little less...
Marcus Lundblad <ml@update.uu.se>
parents:
23986
diff
changeset
|
2392 purple_debug_info("jabber", "Found cap: %s\n", (char *)iter->data); |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2393 return TRUE; |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2394 } |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2395 } |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2396 |
24312
f4cb55854e87
Make jabber_resource_have_capability polute the log a little less...
Marcus Lundblad <ml@update.uu.se>
parents:
23986
diff
changeset
|
2397 purple_debug_info("jabber", "Cap %s not found\n", cap); |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2398 return FALSE; |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2399 } |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2400 |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2401 gboolean |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2402 jabber_buddy_has_capability(const JabberBuddy *jb, const gchar *cap) |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2403 { |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2404 JabberBuddyResource *jbr = jabber_buddy_find_resource((JabberBuddy*)jb, NULL); |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2405 |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2406 if (!jbr) { |
24984
c814641afcf2
This happens anytime you IM an offline user, and is totally not an error
Mark Doliner <mark@kingant.net>
parents:
24920
diff
changeset
|
2407 purple_debug_info("jabber", |
23445
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2408 "Unable to find caps: buddy might be offline\n"); |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2409 return FALSE; |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2410 } |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2411 |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2412 return jabber_resource_has_capability(jbr, cap); |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2413 } |
4ac5db6e39f3
Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents:
23253
diff
changeset
|
2414 |