Sun, 10 Dec 2006 02:53:09 +0000
[gaim-migrate @ 17929]
User Info and Tooltips now use the GaimNotifyUserInfo object and methods defined in notify.h. GaimNotifyUserInfo objects encapsulate a list of GaimNotifyUserInfoEntry objects, each of which may have a label, a value, and be specified to be a section header.
This moves the burden of UI generation of user information from the various prpls to the UI. The UI can choose how to display the information rather than being fenced into a particular HTML formatting. Consistency across the prpls' information presentation is now enforced, as well. gaim_notify_user_info_get_text_with_newline() generates text in the:
<b>label</b>: value
<b>label</b>: value
format as was passed by convention from prpls in the past.
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
1 | /** |
|
15087
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
2 | * @file buddy_info.c |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
3 | * |
|
15087
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
4 | * gaim |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
5 | * |
|
15087
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
6 | * Gaim is the legal property of its developers, whose names are too numerous |
|
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
78879d4adf13
[gaim-migrate @ 17807]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14691
diff
changeset
|
8 | * source distribution. |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
9 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
10 | * This program is free software; you can redistribute it and/or modify |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
11 | * it under the terms of the GNU General Public License as published by |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
12 | * the Free Software Foundation; either version 2 of the License, or |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
13 | * (at your option) any later version. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
14 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
15 | * This program is distributed in the hope that it will be useful, |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
18 | * GNU General Public License for more details. |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
19 | * |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
20 | * You should have received a copy of the GNU General Public License |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
21 | * along with this program; if not, write to the Free Software |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
23 | */ |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
24 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
25 | #include "internal.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
26 | #include "debug.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
27 | #include "notify.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
28 | #include "request.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
29 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
30 | #include "utils.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
31 | #include "packet_parse.h" |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
32 | #include "buddy_info.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
33 | #include "char_conv.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
34 | #include "crypt.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
35 | #include "header_info.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
36 | #include "keep_alive.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
37 | #include "send_core.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
38 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
39 | #define QQ_PRIMARY_INFORMATION _("Primary Information") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
40 | #define QQ_ADDITIONAL_INFORMATION _("Additional Information") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
41 | #define QQ_INTRO _("Personal Introduction") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
42 | #define QQ_NUMBER _("QQ Number") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
43 | #define QQ_NICKNAME _("Nickname") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
44 | #define QQ_NAME _("Name") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
45 | #define QQ_AGE _("Age") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
46 | #define QQ_GENDER _("Gender") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
47 | #define QQ_COUNTRY _("Country/Region") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
48 | #define QQ_PROVINCE _("Province/State") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
49 | #define QQ_CITY _("City") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
50 | #define QQ_HOROSCOPE _("Horoscope Symbol") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
51 | #define QQ_OCCUPATION _("Occupation") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
52 | #define QQ_ZODIAC _("Zodiac Sign") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
53 | #define QQ_BLOOD _("Blood Type") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
54 | #define QQ_COLLEGE _("College") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
55 | #define QQ_EMAIL _("Email") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
56 | #define QQ_ADDRESS _("Address") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
57 | #define QQ_ZIPCODE _("Zipcode") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
58 | #define QQ_CELL _("Cellphone Number") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
59 | #define QQ_TELEPHONE _("Phone Number") |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
60 | #define QQ_HOMEPAGE _("Homepage") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
61 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
62 | #define QQ_HOROSCOPE_SIZE 13 |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
63 | static const gchar *horoscope_names[] = { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
64 | "-", N_("Aquarius"), N_("Pisces"), N_("Aries"), N_("Taurus"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
65 | N_("Gemini"), N_("Cancer"), N_("Leo"), N_("Virgo"), N_("Libra"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
66 | N_("Scorpio"), N_("Sagittarius"), N_("Capricorn") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
67 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
68 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
69 | #define QQ_ZODIAC_SIZE 13 |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
70 | static const gchar *zodiac_names[] = { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
71 | "-", N_("Rat"), N_("Ox"), N_("Tiger"), N_("Rabbit"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
72 | N_("Dragon"), N_("Snake"), N_("Horse"), N_("Goat"), N_("Monkey"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
73 | N_("Rooster"), N_("Dog"), N_("Pig") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
74 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
75 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
76 | #define QQ_BLOOD_SIZE 6 |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
77 | static const gchar *blood_types[] = { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
78 | "-", "A", "B", "O", "AB", N_("Other") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
79 | }; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
80 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
81 | #define QQ_GENDER_SIZE 2 |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
82 | static const gchar *genders[] = { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
83 | N_("Male"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
84 | N_("Female") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
85 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
86 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
87 | #define QQ_CONTACT_FIELDS 37 |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
88 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
89 | /* There is no user id stored in the reply packet for information query |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
90 | * we have to manually store the query, so that we know the query source */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
91 | typedef struct _qq_info_query { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
92 | guint32 uid; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
93 | gboolean show_window; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
94 | gboolean modify_info; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
95 | } qq_info_query; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
96 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
97 | /* We get an info packet on ourselves before we modify our information. |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
98 | * Even though not all of the information is modifiable, it still |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
99 | * all needs to be there when we send out the modify info packet */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
100 | typedef struct _modify_info_data { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
101 | GaimConnection *gc; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
102 | contact_info *info; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
103 | } modify_info_data; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
104 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
105 | /* return -1 as a sentinel */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
106 | static gint choice_index(const gchar *value, const gchar **choice, gint choice_size) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
107 | { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
108 | gint len, i; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
109 | |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
110 | len = strlen(value); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
111 | if (len > 3 || len == 0) return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
112 | for (i = 0; i < len; i++) { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
113 | if (!g_ascii_isdigit(value[i])) |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
114 | return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
115 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
116 | i = strtol(value, NULL, 10); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
117 | if (i >= choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
118 | return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
119 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
120 | return i; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
121 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
122 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
123 | /* return should be freed */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
124 | static gchar *field_value(const gchar *field, const gchar **choice, gint choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
125 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
126 | gint index, len; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
127 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
128 | len = strlen(field); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
129 | if (len == 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
130 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
131 | } else if (choice != NULL) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
132 | /* some choice fields are also customizable */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
133 | index = choice_index(field, choice, choice_size); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
134 | if (index == -1) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
135 | if (strcmp(field, "-") != 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
136 | return qq_to_utf8(field, QQ_CHARSET_DEFAULT); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
137 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
138 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
139 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
140 | /* else ASCIIized index */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
141 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
142 | if (strcmp(choice[index], "-") != 0) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
143 | return g_strdup(choice[index]); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
144 | else |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
145 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
146 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
147 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
148 | if (strcmp(field, "-") != 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
149 | return qq_to_utf8(field, QQ_CHARSET_DEFAULT); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
150 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
151 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
152 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
153 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
154 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
155 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
156 | static gboolean append_field_value(GaimNotifyUserInfo *user_info, const gchar *field, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
157 | const gchar *title, const gchar **choice, gint choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
158 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
159 | gchar *value = field_value(field, choice, choice_size); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
160 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
161 | if (value != NULL) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
162 | gaim_notify_user_info_add_pair(user_info, title, value); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
163 | g_free(value); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
164 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
165 | return TRUE; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
166 | } |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
167 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
168 | return FALSE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
169 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
170 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
171 | static GaimNotifyUserInfo * |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
172 | info_to_notify_user_info(const contact_info *info) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
173 | { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
174 | GaimNotifyUserInfo *user_info = gaim_notify_user_info_new(); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
175 | const gchar *intro; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
176 | gboolean has_extra_info = FALSE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
177 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
178 | gaim_notify_user_info_add_pair(user_info, QQ_NUMBER, info->uid); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
179 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
180 | append_field_value(user_info, info->nick, QQ_NICKNAME, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
181 | append_field_value(user_info, info->name, QQ_NAME, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
182 | append_field_value(user_info, info->age, QQ_AGE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
183 | append_field_value(user_info, info->gender, QQ_GENDER, genders, QQ_GENDER_SIZE); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
184 | append_field_value(user_info, info->country, QQ_COUNTRY, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
185 | append_field_value(user_info, info->province, QQ_PROVINCE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
186 | append_field_value(user_info, info->city, QQ_CITY, NULL, 0); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
187 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
188 | gaim_notify_user_info_add_section_header(user_info, QQ_ADDITIONAL_INFORMATION); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
189 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
190 | has_extra_info |= append_field_value(user_info, info->horoscope, QQ_HOROSCOPE, horoscope_names, QQ_HOROSCOPE_SIZE); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
191 | has_extra_info |= append_field_value(user_info, info->occupation, QQ_OCCUPATION, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
192 | has_extra_info |= append_field_value(user_info, info->zodiac, QQ_ZODIAC, zodiac_names, QQ_ZODIAC_SIZE); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
193 | has_extra_info |= append_field_value(user_info, info->blood, QQ_BLOOD, blood_types, QQ_BLOOD_SIZE); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
194 | has_extra_info |= append_field_value(user_info, info->college, QQ_COLLEGE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
195 | has_extra_info |= append_field_value(user_info, info->email, QQ_EMAIL, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
196 | has_extra_info |= append_field_value(user_info, info->address, QQ_ADDRESS, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
197 | has_extra_info |= append_field_value(user_info, info->zipcode, QQ_ZIPCODE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
198 | has_extra_info |= append_field_value(user_info, info->hp_num, QQ_CELL, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
199 | has_extra_info |= append_field_value(user_info, info->tel, QQ_TELEPHONE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
200 | has_extra_info |= append_field_value(user_info, info->homepage, QQ_HOMEPAGE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
201 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
202 | if (!has_extra_info) |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
203 | gaim_notify_user_info_remove_last_item(user_info); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
204 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
205 | intro = field_value(info->intro, NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
206 | if (intro) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
207 | gaim_notify_user_info_add_pair(user_info, QQ_INTRO, intro); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
208 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
209 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
210 | /* for debugging */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
211 | /* |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
212 | g_string_append_printf(info_text, "<br /><br /><b>%s</b><br />", "Miscellaneous"); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
213 | append_field_value(info_text, info->pager_sn, "pager_sn", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
214 | append_field_value(info_text, info->pager_num, "pager_num", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
215 | append_field_value(info_text, info->pager_sp, "pager_sp", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
216 | append_field_value(info_text, info->pager_base_num, "pager_base_num", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
217 | append_field_value(info_text, info->pager_type, "pager_type", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
218 | append_field_value(info_text, info->auth_type, "auth_type", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
219 | append_field_value(info_text, info->unknown1, "unknown1", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
220 | append_field_value(info_text, info->unknown2, "unknown2", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
221 | append_field_value(info_text, info->face, "face", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
222 | append_field_value(info_text, info->hp_type, "hp_type", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
223 | append_field_value(info_text, info->unknown3, "unknown3", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
224 | append_field_value(info_text, info->unknown4, "unknown4", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
225 | append_field_value(info_text, info->unknown5, "unknown5", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
226 | append_field_value(info_text, info->is_open_hp, "is_open_hp", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
227 | append_field_value(info_text, info->is_open_contact, "is_open_contact", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
228 | append_field_value(info_text, info->qq_show, "qq_show", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
229 | append_field_value(info_text, info->unknown6, "unknown6", NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
230 | */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
231 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
232 | return user_info; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
233 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
234 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
235 | /* send a packet to get detailed information of uid */ |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
236 | void qq_send_packet_get_info(GaimConnection *gc, guint32 uid, gboolean show_window) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
237 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
238 | qq_data *qd; |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
239 | gchar uid_str[11]; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
240 | qq_info_query *query; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
241 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14673
diff
changeset
|
242 | g_return_if_fail(uid != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
243 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
244 | qd = (qq_data *) gc->proto_data; |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
245 | g_snprintf(uid_str, sizeof(uid_str), "%d", uid); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
246 | qq_send_cmd(gc, QQ_CMD_GET_USER_INFO, TRUE, 0, TRUE, (guint8 *) uid_str, strlen(uid_str)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
247 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
248 | query = g_new0(qq_info_query, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
249 | query->uid = uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
250 | query->show_window = show_window; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
251 | query->modify_info = FALSE; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
252 | qd->info_query = g_list_append(qd->info_query, query); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
253 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
254 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
255 | /* set up the fields requesting personal information and send a get_info packet |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
256 | * for myself */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
257 | void qq_prepare_modify_info(GaimConnection *gc) |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
258 | { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
259 | qq_data *qd; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
260 | GList *ql; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
261 | qq_info_query *query; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
262 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
263 | qd = (qq_data *) gc->proto_data; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
264 | qq_send_packet_get_info(gc, qd->uid, FALSE); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
265 | /* traverse backwards so we get the most recent info_query */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
266 | for (ql = g_list_last(qd->info_query); ql != NULL; ql = g_list_previous(ql)) { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
267 | query = ql->data; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
268 | if (query->uid == qd->uid) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
269 | query->modify_info = TRUE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
270 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
271 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
272 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
273 | /* send packet to modify personal information */ |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
274 | static void qq_send_packet_modify_info(GaimConnection *gc, gchar **segments) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
275 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
276 | gint i; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
277 | guint8 *raw_data, *cursor, bar; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
278 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14673
diff
changeset
|
279 | g_return_if_fail(segments != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
280 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
281 | bar = 0x1f; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
282 | raw_data = g_newa(guint8, MAX_PACKET_SIZE - 128); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
283 | cursor = raw_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
284 | |
|
14076
ac77316596dc
[gaim-migrate @ 16606]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14061
diff
changeset
|
285 | create_packet_b(raw_data, &cursor, bar); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
286 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
287 | /* important! skip the first uid entry */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
288 | for (i = 1; i < QQ_CONTACT_FIELDS; i++) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
289 | create_packet_b(raw_data, &cursor, bar); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
290 | create_packet_data(raw_data, &cursor, (guint8 *) segments[i], strlen(segments[i])); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
291 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
292 | create_packet_b(raw_data, &cursor, bar); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
293 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
294 | qq_send_cmd(gc, QQ_CMD_UPDATE_INFO, TRUE, 0, TRUE, raw_data, cursor - raw_data); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
295 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
296 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
297 | |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
298 | static void modify_info_cancel_cb(modify_info_data *mid) |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
299 | { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
300 | qq_data *qd; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
301 | |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
302 | qd = (qq_data *) mid->gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
303 | qd->modifying_info = FALSE; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
304 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
305 | g_strfreev((gchar **) mid->info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
306 | g_free(mid); |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
307 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
308 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
309 | static gchar *parse_field(GList **list, gboolean choice) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
310 | { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
311 | gchar *value; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
312 | GaimRequestField *field; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
313 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
314 | field = (GaimRequestField *) (*list)->data; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
315 | if (choice) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
316 | value = g_strdup_printf("%d", gaim_request_field_choice_get_value(field)); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
317 | } else { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
318 | value = (gchar *) gaim_request_field_string_get_value(field); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
319 | if (value == NULL) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
320 | value = g_strdup("-"); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
321 | else |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
322 | value = utf8_to_qq(value, QQ_CHARSET_DEFAULT); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
323 | } |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
324 | *list = g_list_remove_link(*list, *list); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
325 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
326 | return value; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
327 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
328 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
329 | /* parse fields and send info packet */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
330 | static void modify_info_ok_cb(modify_info_data *mid, GaimRequestFields *fields) |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
331 | { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
332 | GaimConnection *gc; |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
333 | qq_data *qd; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
334 | GList *list, *groups; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
335 | contact_info *info; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
336 | |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
337 | gc = mid->gc; |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
338 | qd = (qq_data *) gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
339 | qd->modifying_info = FALSE; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
340 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
341 | info = mid->info; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
342 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
343 | groups = gaim_request_fields_get_groups(fields); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
344 | list = gaim_request_field_group_get_fields(groups->data); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
345 | info->uid = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
346 | info->nick = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
347 | info->name = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
348 | info->age = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
349 | info->gender = parse_field(&list, TRUE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
350 | info->country = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
351 | info->province = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
352 | info->city = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
353 | groups = g_list_remove_link(groups, groups); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
354 | list = gaim_request_field_group_get_fields(groups->data); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
355 | info->horoscope = parse_field(&list, TRUE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
356 | info->occupation = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
357 | info->zodiac = parse_field(&list, TRUE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
358 | info->blood = parse_field(&list, TRUE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
359 | info->college = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
360 | info->email = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
361 | info->address = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
362 | info->zipcode = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
363 | info->hp_num = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
364 | info->tel = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
365 | info->homepage = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
366 | groups = g_list_remove_link(groups, groups); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
367 | list = gaim_request_field_group_get_fields(groups->data); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
368 | info->intro = parse_field(&list, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
369 | groups = g_list_remove_link(groups, groups); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
370 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
371 | qq_send_packet_modify_info(gc, (gchar **) info); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
372 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
373 | g_strfreev((gchar **) mid->info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
374 | g_free(mid); |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
375 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
376 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
377 | static GaimRequestFieldGroup *setup_field_group(GaimRequestFields *fields, const gchar *title) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
378 | { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
379 | GaimRequestFieldGroup *group; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
380 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
381 | group = gaim_request_field_group_new(title); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
382 | gaim_request_fields_add_group(fields, group); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
383 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
384 | return group; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
385 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
386 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
387 | static void add_string_field_to_group(GaimRequestFieldGroup *group, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
388 | const gchar *id, const gchar *title, const gchar *value) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
389 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
390 | GaimRequestField *field; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
391 | gchar *utf8_value; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
392 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
393 | utf8_value = qq_to_utf8(value, QQ_CHARSET_DEFAULT); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
394 | field = gaim_request_field_string_new(id, title, utf8_value, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
395 | gaim_request_field_group_add_field(group, field); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
396 | g_free(utf8_value); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
397 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
398 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
399 | static void add_choice_field_to_group(GaimRequestFieldGroup *group, |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
400 | const gchar *id, const gchar *title, const gchar *value, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
401 | const gchar **choice, gint choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
402 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
403 | GaimRequestField *field; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
404 | gint i, index; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
405 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
406 | index = choice_index(value, choice, choice_size); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
407 | field = gaim_request_field_choice_new(id, title, index); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
408 | for (i = 0; i < choice_size; i++) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
409 | gaim_request_field_choice_add(field, choice[i]); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
410 | gaim_request_field_group_add_field(group, field); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
411 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
412 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
413 | /* take the info returned by a get_info packet for myself and set up a request form */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
414 | static void create_modify_info_dialogue(GaimConnection *gc, const contact_info *info) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
415 | { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
416 | qq_data *qd; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
417 | GaimRequestFieldGroup *group; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
418 | GaimRequestFields *fields; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
419 | GaimRequestField *field; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
420 | modify_info_data *mid; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
421 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
422 | /* so we only have one dialog open at a time */ |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
423 | qd = (qq_data *) gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
424 | if (!qd->modifying_info) { |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
425 | qd->modifying_info = TRUE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
426 | |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
427 | fields = gaim_request_fields_new(); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
428 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
429 | group = setup_field_group(fields, QQ_PRIMARY_INFORMATION); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
430 | field = gaim_request_field_string_new("uid", QQ_NUMBER, info->uid, FALSE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
431 | gaim_request_field_group_add_field(group, field); |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
432 | gaim_request_field_string_set_editable(field, FALSE); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
433 | add_string_field_to_group(group, "nick", QQ_NICKNAME, info->nick); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
434 | add_string_field_to_group(group, "name", QQ_NAME, info->name); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
435 | add_string_field_to_group(group, "age", QQ_AGE, info->age); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
436 | add_choice_field_to_group(group, "gender", QQ_GENDER, info->gender, genders, QQ_GENDER_SIZE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
437 | add_string_field_to_group(group, "country", QQ_COUNTRY, info->country); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
438 | add_string_field_to_group(group, "province", QQ_PROVINCE, info->province); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
439 | add_string_field_to_group(group, "city", QQ_CITY, info->city); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
440 | group = setup_field_group(fields, QQ_ADDITIONAL_INFORMATION); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
441 | add_choice_field_to_group(group, "horoscope", QQ_HOROSCOPE, info->horoscope, horoscope_names, QQ_HOROSCOPE_SIZE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
442 | add_string_field_to_group(group, "occupation", QQ_OCCUPATION, info->occupation); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
443 | add_choice_field_to_group(group, "zodiac", QQ_ZODIAC, info->zodiac, zodiac_names, QQ_ZODIAC_SIZE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
444 | add_choice_field_to_group(group, "blood", QQ_BLOOD, info->blood, blood_types, QQ_BLOOD_SIZE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
445 | add_string_field_to_group(group, "college", QQ_COLLEGE, info->college); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
446 | add_string_field_to_group(group, "email", QQ_EMAIL, info->email); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
447 | add_string_field_to_group(group, "address", QQ_ADDRESS, info->address); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
448 | add_string_field_to_group(group, "zipcode", QQ_ZIPCODE, info->zipcode); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
449 | add_string_field_to_group(group, "hp_num", QQ_CELL, info->hp_num); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
450 | add_string_field_to_group(group, "tel", QQ_TELEPHONE, info->tel); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
451 | add_string_field_to_group(group, "homepage", QQ_HOMEPAGE, info->homepage); |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
452 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
453 | group = setup_field_group(fields, QQ_INTRO); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
454 | field = gaim_request_field_string_new("intro", QQ_INTRO, info->intro, TRUE); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
455 | gaim_request_field_group_add_field(group, field); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
456 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
457 | /* prepare unmodifiable info */ |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
458 | mid = g_new0(modify_info_data, 1); |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
459 | mid->gc = gc; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
460 | /* QQ_CONTACT_FIELDS+1 so that the array is NULL-terminated and can be g_strfreev()'ed later */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
461 | mid->info = (contact_info *) g_new0(gchar *, QQ_CONTACT_FIELDS+1); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
462 | mid->info->pager_sn = g_strdup(info->pager_sn); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
463 | mid->info->pager_num = g_strdup(info->pager_num); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
464 | mid->info->pager_sp = g_strdup(info->pager_sp); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
465 | mid->info->pager_base_num = g_strdup(info->pager_base_num); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
466 | mid->info->pager_type = g_strdup(info->pager_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
467 | mid->info->auth_type = g_strdup(info->auth_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
468 | mid->info->unknown1 = g_strdup(info->unknown1); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
469 | mid->info->unknown2 = g_strdup(info->unknown2); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
470 | mid->info->face = g_strdup(info->face); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
471 | mid->info->hp_type = g_strdup(info->hp_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
472 | mid->info->unknown3 = g_strdup(info->unknown3); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
473 | mid->info->unknown4 = g_strdup(info->unknown4); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
474 | mid->info->unknown5 = g_strdup(info->unknown5); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
475 | /* TODO stop hiding these 2 */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
476 | mid->info->is_open_hp = g_strdup(info->is_open_hp); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
477 | mid->info->is_open_contact = g_strdup(info->is_open_contact); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
478 | mid->info->qq_show = g_strdup(info->qq_show); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
479 | mid->info->unknown6 = g_strdup(info->unknown6); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
480 | |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
481 | gaim_request_fields(gc, _("Modify my information"), |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
482 | _("Modify my information"), NULL, fields, |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
483 | _("Update my information"), G_CALLBACK(modify_info_ok_cb), |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
484 | _("Cancel"), G_CALLBACK(modify_info_cancel_cb), |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
485 | mid); |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
486 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
487 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
488 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
489 | /* process the reply of modify_info packet */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
490 | void qq_process_modify_info_reply(guint8 *buf, gint buf_len, GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
491 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
492 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
493 | gint len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
494 | guint8 *data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
495 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
496 | g_return_if_fail(buf != NULL && buf_len != 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
497 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
498 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
499 | len = buf_len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
500 | data = g_newa(guint8, len); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
501 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
502 | if (qq_crypt(DECRYPT, buf, buf_len, qd->session_key, data, &len)) { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
503 | data[len] = '\0'; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
504 | if (qd->uid == atoi((gchar *) data)) { /* return should be my uid */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
505 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Update info ACK OK\n"); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
506 | gaim_notify_info(gc, NULL, _("Your information has been updated"), NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
507 | } |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
508 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
509 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Error decrypt modify info reply\n"); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
510 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
511 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
512 | |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
513 | static void _qq_send_packet_modify_face(GaimConnection *gc, gint face_num) |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
514 | { |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
515 | GaimAccount *account = gaim_connection_get_account(gc); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
516 | GaimPresence *presence = gaim_account_get_presence(account); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
517 | qq_data *qd = (qq_data *) gc->proto_data; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
518 | gint offset; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
519 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
520 | if(gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_INVISIBLE)) { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
521 | offset = 2; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
522 | } else if(gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_AWAY) |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
523 | || gaim_presence_is_status_primitive_active(presence, GAIM_STATUS_EXTENDED_AWAY)) { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
524 | offset = 1; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
525 | } else { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
526 | offset = 0; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
527 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
528 | |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
529 | qd->my_icon = 3 * (face_num - 1) + offset; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
530 | qd->modifying_face = TRUE; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
531 | qq_send_packet_get_info(gc, qd->uid, FALSE); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
532 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
533 | |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
534 | void qq_set_buddy_icon_for_user(GaimAccount *account, const gchar *who, const gchar *iconfile) |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
535 | { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
536 | FILE *file; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
537 | struct stat st; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
538 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
539 | g_return_if_fail(g_stat(iconfile, &st) == 0); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
540 | file = g_fopen(iconfile, "rb"); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
541 | if (file) { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
542 | GaimBuddyIcon *icon; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
543 | size_t data_len; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
544 | gchar *data = g_new(gchar, st.st_size + 1); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
545 | data_len = fread(data, 1, st.st_size, file); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
546 | fclose(file); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
547 | gaim_buddy_icons_set_for_user(account, who, data, data_len); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
548 | icon = gaim_buddy_icons_find(account, who); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
549 | gaim_buddy_icon_set_path(icon, iconfile); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
550 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
551 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
552 | |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
553 | /* TODO: custom faces for QQ members and users with level >= 16 */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
554 | void qq_set_my_buddy_icon(GaimConnection *gc, const gchar *iconfile) |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
555 | { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
556 | gchar *icon; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
557 | gint icon_num; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
558 | GaimAccount *account = gaim_connection_get_account(gc); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
559 | const gchar *icon_path = gaim_account_get_buddy_icon_path(account); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
560 | const gchar *buddy_icon_dir = qq_buddy_icon_dir(); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
561 | gint prefix_len = strlen(QQ_ICON_PREFIX); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
562 | gint suffix_len = strlen(QQ_ICON_SUFFIX); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
563 | gint dir_len = strlen(buddy_icon_dir); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
564 | gint icon_len = strlen(icon_path) - dir_len - 1 - prefix_len - suffix_len; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
565 | gchar *errmsg = g_strconcat(_("You are attempting to set a custom face. Gaim currently only allows the standard faces. Please choose an image from "), buddy_icon_dir, ".", NULL); |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
566 | gboolean icon_global = gaim_account_get_bool(gc->account, "use-global-buddyicon", TRUE); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
567 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
568 | /* make sure we're using an appropriate icon */ |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
569 | if (!(g_ascii_strncasecmp(icon_path, buddy_icon_dir, dir_len) == 0 |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
570 | && icon_path[dir_len] == G_DIR_SEPARATOR |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
571 | && g_ascii_strncasecmp(icon_path + dir_len + 1, QQ_ICON_PREFIX, prefix_len) == 0 |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
572 | && g_ascii_strncasecmp(icon_path + dir_len + 1 + prefix_len + icon_len, QQ_ICON_SUFFIX, suffix_len) == 0 |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
573 | && icon_len <= 3)) { |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
574 | if (icon_global) |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
575 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "%s\n", errmsg); |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
576 | else |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
577 | gaim_notify_error(gc, _("Invalid QQ Face"), errmsg, NULL); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
578 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
579 | return; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
580 | } |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
581 | /* strip everything but number */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
582 | icon = g_strndup(icon_path + dir_len + 1 + prefix_len, icon_len); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
583 | icon_num = strtol(icon, NULL, 10); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
584 | g_free(icon); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
585 | /* ensure face number in proper range */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
586 | if (icon_num > QQ_FACES) { |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
587 | if (icon_global) |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
588 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "%s\n", errmsg); |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
589 | else |
|
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
590 | gaim_notify_error(gc, _("Invalid QQ Face"), errmsg, NULL); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
591 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
592 | return; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
593 | } |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
594 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
595 | /* tell server my icon changed */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
596 | _qq_send_packet_modify_face(gc, icon_num); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
597 | /* display in blist */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
598 | qq_set_buddy_icon_for_user(account, account->username, icon_path); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
599 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
600 | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
601 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
602 | static void _qq_update_buddy_icon(GaimAccount *account, const gchar *name, gint face) |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
603 | { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
604 | gchar *icon_path; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
605 | GaimBuddyIcon *icon = gaim_buddy_icons_find(account, name); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
606 | gchar *icon_num_str = face_to_icon_str(face); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
607 | const gchar *old_path = gaim_buddy_icon_get_path(icon); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
608 | const gchar *buddy_icon_dir = qq_buddy_icon_dir(); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
609 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
610 | icon_path = g_strconcat(buddy_icon_dir, G_DIR_SEPARATOR_S, QQ_ICON_PREFIX, |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
611 | icon_num_str, QQ_ICON_SUFFIX, NULL); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
612 | if (icon == NULL || old_path == NULL |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
613 | || g_ascii_strcasecmp(icon_path, old_path) != 0) |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
614 | qq_set_buddy_icon_for_user(account, name, icon_path); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
615 | g_free(icon_num_str); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
616 | g_free(icon_path); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
617 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
618 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
619 | /* after getting info or modify myself, refresh the buddy list accordingly */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
620 | void qq_refresh_buddy_and_myself(contact_info *info, GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
621 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
622 | GaimBuddy *b; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
623 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
624 | qq_buddy *q_bud; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
625 | gchar *alias_utf8, *gaim_name; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
626 | GaimAccount *account = gaim_connection_get_account(gc); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
627 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
628 | qd = (qq_data *) gc->proto_data; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
629 | gaim_name = uid_to_gaim_name(strtol(info->uid, NULL, 10)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
630 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
631 | alias_utf8 = qq_to_utf8(info->nick, QQ_CHARSET_DEFAULT); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
632 | if (qd->uid == strtol(info->uid, NULL, 10)) { /* it is me */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
633 | qd->my_icon = strtol(info->face, NULL, 10); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
634 | if (alias_utf8 != NULL) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
635 | gaim_account_set_alias(account, alias_utf8); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
636 | } |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
637 | /* update buddy list (including myself, if myself is the buddy) */ |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
638 | b = gaim_find_buddy(gc->account, gaim_name); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
639 | q_bud = (b == NULL) ? NULL : (qq_buddy *) b->proto_data; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
640 | if (q_bud != NULL) { /* I have this buddy */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
641 | q_bud->age = strtol(info->age, NULL, 10); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
642 | q_bud->gender = strtol(info->gender, NULL, 10); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
643 | q_bud->face = strtol(info->face, NULL, 10); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
644 | if (alias_utf8 != NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
645 | q_bud->nickname = g_strdup(alias_utf8); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
646 | qq_update_buddy_contact(gc, q_bud); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
647 | _qq_update_buddy_icon(gc->account, gaim_name, q_bud->face); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
648 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
649 | g_free(gaim_name); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
650 | g_free(alias_utf8); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
651 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
652 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
653 | /* process reply to get_info packet */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
654 | void qq_process_get_info_reply(guint8 *buf, gint buf_len, GaimConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
655 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
656 | gint len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
657 | guint8 *data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
658 | gchar **segments; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
659 | qq_info_query *query; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
660 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
661 | contact_info *info; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
662 | GList *list, *query_list; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
663 | GaimNotifyUserInfo *user_info; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
664 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
665 | g_return_if_fail(buf != NULL && buf_len != 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
666 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
667 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
668 | list = query_list = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
669 | len = buf_len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
670 | data = g_newa(guint8, len); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
671 | info = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
672 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
673 | if (qq_crypt(DECRYPT, buf, buf_len, qd->session_key, data, &len)) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
674 | if (NULL == (segments = split_data(data, len, "\x1e", QQ_CONTACT_FIELDS))) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
675 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
676 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
677 | info = (contact_info *) segments; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
678 | if (qd->modifying_face && strtol(info->face, NULL, 10) != qd->my_icon) { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
679 | gchar *icon = g_strdup_printf("%d", qd->my_icon); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
680 | qd->modifying_face = FALSE; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
681 | g_free(info->face); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
682 | info->face = icon; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
683 | qq_send_packet_modify_info(gc, segments); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
684 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
685 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
686 | qq_refresh_buddy_and_myself(info, gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
687 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
688 | query_list = qd->info_query; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
689 | /* ensure we're processing the right query */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
690 | while (query_list) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
691 | query = (qq_info_query *) query_list->data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
692 | if (query->uid == atoi(info->uid)) { |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
693 | if (query->show_window) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
694 | user_info = info_to_notify_user_info(info); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
695 | gaim_notify_userinfo(gc, info->uid, user_info, NULL, NULL); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
696 | gaim_notify_user_info_destroy(user_info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
697 | } else if (query->modify_info) { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
698 | create_modify_info_dialogue(gc, info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
699 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
700 | qd->info_query = g_list_remove(qd->info_query, qd->info_query->data); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
701 | g_free(query); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
702 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
703 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
704 | query_list = query_list->next; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
705 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
706 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
707 | g_strfreev(segments); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
708 | } else { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
709 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Error decrypt get info reply\n"); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
710 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
711 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
712 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
713 | void qq_info_query_free(qq_data *qd) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
714 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
715 | gint i; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
716 | qq_info_query *p; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
717 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
718 | g_return_if_fail(qd != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
719 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
720 | i = 0; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
721 | while (qd->info_query != NULL) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
722 | p = (qq_info_query *) (qd->info_query->data); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
723 | qd->info_query = g_list_remove(qd->info_query, p); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
724 | g_free(p); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
725 | i++; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
726 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
727 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "%d info queries are freed!\n", i); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
728 | } |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
729 | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
730 | void qq_send_packet_get_level(GaimConnection *gc, guint32 uid) |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
731 | { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
732 | guint8 buf[5]; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
733 | guint32 tmp = g_htonl(uid); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
734 | buf[0] = 0; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
735 | memcpy(buf+1, &tmp, 4); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
736 | qq_send_cmd(gc, QQ_CMD_GET_LEVEL, TRUE, 0, TRUE, buf, 5); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
737 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
738 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
739 | void qq_send_packet_get_buddies_levels(GaimConnection *gc) |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
740 | { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
741 | guint8 *buf, *tmp, size; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
742 | qq_buddy *q_bud; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
743 | GList *node; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
744 | qq_data *qd = (qq_data *) gc->proto_data; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
745 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
746 | /* server only sends back levels for online buddies, no point |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
747 | * in asking for anyone else */ |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
748 | size = 4*g_list_length(qd->buddies) + 1; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
749 | buf = g_new0(guint8, size); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
750 | tmp = buf + 1; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
751 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
752 | for (node = qd->buddies; node != NULL; node = node->next) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
753 | guint32 tmp4; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
754 | q_bud = (qq_buddy *) node->data; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
755 | if (q_bud != NULL) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
756 | tmp4 = g_htonl(q_bud->uid); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
757 | memcpy(tmp, &tmp4, 4); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
758 | tmp += 4; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
759 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
760 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
761 | qq_send_cmd(gc, QQ_CMD_GET_LEVEL, TRUE, 0, TRUE, buf, size); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
762 | qd->last_get_levels = time(NULL); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
763 | g_free(buf); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
764 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
765 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
766 | void qq_process_get_level_reply(guint8 *buf, gint buf_len, GaimConnection *gc) |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
767 | { |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
768 | guint32 uid, onlineTime; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
769 | guint16 level, timeRemainder; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
770 | gchar *gaim_name; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
771 | GaimBuddy *b; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
772 | qq_buddy *q_bud; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
773 | gint decr_len, i; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
774 | guint8 *decr_buf, *tmp; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
775 | GaimAccount *account = gaim_connection_get_account(gc); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
776 | qq_data *qd = (qq_data *) gc->proto_data; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
777 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
778 | decr_len = buf_len; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
779 | decr_buf = g_new0(guint8, buf_len); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
780 | if (!qq_crypt(DECRYPT, buf, buf_len, qd->session_key, decr_buf, &decr_len)) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
781 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", "Couldn't decrypt get level packet\n"); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
782 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
783 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
784 | decr_len--; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
785 | if (decr_len % 12 != 0) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
786 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
787 | "Get levels list of abnormal length. Truncating last %d bytes.\n", decr_len % 12); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
788 | decr_len -= (decr_len % 12); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
789 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
790 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
791 | tmp = decr_buf + 1; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
792 | /* this byte seems random */ |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
793 | /* |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
794 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Byte one of get_level packet: %d\n", buf[0]); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
795 | */ |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
796 | for (i = 0; i < decr_len; i += 12) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
797 | uid = g_ntohl(*(guint32 *) tmp); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
798 | tmp += 4; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
799 | onlineTime = g_ntohl(*(guint32 *) tmp); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
800 | tmp += 4; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
801 | level = g_ntohs(*(guint16 *) tmp); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
802 | tmp += 2; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
803 | timeRemainder = g_ntohs(*(guint16 *) tmp); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
804 | tmp += 2; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
805 | /* |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
806 | gaim_debug(GAIM_DEBUG_INFO, "QQ", "Level packet entry:\nuid: %d\nonlineTime: %d\nlevel: %d\ntimeRemainder: %d\n", |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
807 | uid, onlineTime, level, timeRemainder); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
808 | */ |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
809 | gaim_name = uid_to_gaim_name(uid); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
810 | b = gaim_find_buddy(account, gaim_name); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
811 | q_bud = (b == NULL) ? NULL : (qq_buddy *) b->proto_data; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
812 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
813 | if (q_bud != NULL) { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
814 | q_bud->onlineTime = onlineTime; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
815 | q_bud->level = level; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
816 | q_bud->timeRemainder = timeRemainder; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
817 | } else { |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
818 | gaim_debug(GAIM_DEBUG_ERROR, "QQ", |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
819 | "Got an online buddy %d, but not in my buddy list\n", uid); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
820 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
821 | g_free(gaim_name); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
822 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
823 | g_free(decr_buf); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
824 | } |