Fri, 18 Jul 2008 00:46:22 +0000
disapproval of revision 'a39a33c79a3f235c5e1acf5602d7896f829623ba'
|
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 | * |
| 15884 | 4 | * purple |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
15087
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 |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16900
diff
changeset
|
22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
13932
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" |
| 23192 | 37 | #include "qq_network.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 | |
| 23190 | 97 | typedef struct _contact_info { |
| 98 | gchar *uid; | |
| 99 | gchar *nick; | |
| 100 | gchar *country; | |
| 101 | gchar *province; | |
| 102 | gchar *zipcode; | |
| 103 | gchar *address; | |
| 104 | gchar *tel; | |
| 105 | gchar *age; | |
| 106 | gchar *gender; | |
| 107 | gchar *name; | |
| 108 | gchar *email; | |
| 109 | gchar *pager_sn; | |
| 110 | gchar *pager_num; | |
| 111 | gchar *pager_sp; | |
| 112 | gchar *pager_base_num; | |
| 113 | gchar *pager_type; | |
| 114 | gchar *occupation; | |
| 115 | gchar *homepage; | |
| 116 | gchar *auth_type; | |
| 117 | gchar *unknown1; | |
| 118 | gchar *unknown2; | |
| 119 | gchar *face; | |
| 120 | gchar *hp_num; | |
| 121 | gchar *hp_type; | |
| 122 | gchar *intro; | |
| 123 | gchar *city; | |
| 124 | gchar *unknown3; | |
| 125 | gchar *unknown4; | |
| 126 | gchar *unknown5; | |
| 127 | gchar *is_open_hp; | |
| 128 | gchar *is_open_contact; | |
| 129 | gchar *college; | |
| 130 | gchar *horoscope; | |
| 131 | gchar *zodiac; | |
| 132 | gchar *blood; | |
| 133 | gchar *qq_show; | |
| 134 | gchar *unknown6; /* always 0x2D */ | |
| 135 | } contact_info; | |
| 136 | ||
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
137 | /* 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
|
138 | * 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
|
139 | * 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
|
140 | typedef struct _modify_info_data { |
| 15884 | 141 | PurpleConnection *gc; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
142 | contact_info *info; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
143 | } modify_info_data; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
144 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
145 | /* return -1 as a sentinel */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
146 | 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
|
147 | { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
148 | gint len, i; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
149 | |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
150 | len = strlen(value); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
151 | if (len > 3 || len == 0) return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
152 | for (i = 0; i < len; i++) { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
153 | if (!g_ascii_isdigit(value[i])) |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
154 | return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
155 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
156 | i = strtol(value, NULL, 10); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
157 | if (i >= choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
158 | return -1; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
159 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
160 | return i; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
161 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
162 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
163 | /* return should be freed */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
164 | 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
|
165 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
166 | gint index, len; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
167 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
168 | len = strlen(field); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
169 | if (len == 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
170 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
171 | } else if (choice != NULL) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
172 | /* some choice fields are also customizable */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
173 | index = choice_index(field, choice, choice_size); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
174 | if (index == -1) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
175 | if (strcmp(field, "-") != 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
176 | return qq_to_utf8(field, QQ_CHARSET_DEFAULT); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
177 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
178 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
179 | } |
| 23190 | 180 | /* else ASCIIized index */ |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
181 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
182 | if (strcmp(choice[index], "-") != 0) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
183 | return g_strdup(choice[index]); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
184 | else |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
185 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
186 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
187 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
188 | if (strcmp(field, "-") != 0) { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
189 | return qq_to_utf8(field, QQ_CHARSET_DEFAULT); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
190 | } else { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
191 | return NULL; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
192 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
193 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
194 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
195 | |
| 15884 | 196 | static gboolean append_field_value(PurpleNotifyUserInfo *user_info, const gchar *field, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
197 | const gchar *title, const gchar **choice, gint choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
198 | { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
199 | gchar *value = field_value(field, choice, choice_size); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
200 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
201 | if (value != NULL) { |
| 15884 | 202 | purple_notify_user_info_add_pair(user_info, title, value); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
203 | g_free(value); |
| 23190 | 204 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
205 | return TRUE; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
206 | } |
| 23190 | 207 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
208 | return FALSE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
209 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
210 | |
|
23213
7aaa8e8233bc
disapproval of revision 'a39a33c79a3f235c5e1acf5602d7896f829623ba'
Daniel Atallah <datallah@pidgin.im>
parents:
23212
diff
changeset
|
211 | static PurpleNotifyUserInfo * |
|
7aaa8e8233bc
disapproval of revision 'a39a33c79a3f235c5e1acf5602d7896f829623ba'
Daniel Atallah <datallah@pidgin.im>
parents:
23212
diff
changeset
|
212 | info_to_notify_user_info(const contact_info *info) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
213 | { |
| 15884 | 214 | PurpleNotifyUserInfo *user_info = purple_notify_user_info_new(); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
215 | const gchar *intro; |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
216 | gboolean has_extra_info = FALSE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
217 | |
| 15884 | 218 | purple_notify_user_info_add_pair(user_info, QQ_NUMBER, info->uid); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
219 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
220 | append_field_value(user_info, info->nick, QQ_NICKNAME, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
221 | append_field_value(user_info, info->name, QQ_NAME, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
222 | append_field_value(user_info, info->age, QQ_AGE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
223 | 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
|
224 | append_field_value(user_info, info->country, QQ_COUNTRY, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
225 | append_field_value(user_info, info->province, QQ_PROVINCE, NULL, 0); |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
226 | 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
|
227 | |
| 15884 | 228 | purple_notify_user_info_add_section_header(user_info, QQ_ADDITIONAL_INFORMATION); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
229 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
230 | 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
|
231 | 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
|
232 | 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
|
233 | 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
|
234 | 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
|
235 | 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
|
236 | 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
|
237 | 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
|
238 | 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
|
239 | 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
|
240 | 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
|
241 | |
|
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
242 | if (!has_extra_info) |
| 15884 | 243 | purple_notify_user_info_remove_last_item(user_info); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
244 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
245 | intro = field_value(info->intro, NULL, 0); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
246 | if (intro) { |
| 15884 | 247 | purple_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
|
248 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
249 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
250 | /* for debugging */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
251 | /* |
| 23190 | 252 | g_string_append_printf(info_text, "<br /><br /><b>%s</b><br />", "Miscellaneous"); |
| 253 | append_field_value(info_text, info->pager_sn, "pager_sn", NULL, 0); | |
| 254 | append_field_value(info_text, info->pager_num, "pager_num", NULL, 0); | |
| 255 | append_field_value(info_text, info->pager_sp, "pager_sp", NULL, 0); | |
| 256 | append_field_value(info_text, info->pager_base_num, "pager_base_num", NULL, 0); | |
| 257 | append_field_value(info_text, info->pager_type, "pager_type", NULL, 0); | |
| 258 | append_field_value(info_text, info->auth_type, "auth_type", NULL, 0); | |
| 259 | append_field_value(info_text, info->unknown1, "unknown1", NULL, 0); | |
| 260 | append_field_value(info_text, info->unknown2, "unknown2", NULL, 0); | |
| 261 | append_field_value(info_text, info->face, "face", NULL, 0); | |
| 262 | append_field_value(info_text, info->hp_type, "hp_type", NULL, 0); | |
| 263 | append_field_value(info_text, info->unknown3, "unknown3", NULL, 0); | |
| 264 | append_field_value(info_text, info->unknown4, "unknown4", NULL, 0); | |
| 265 | append_field_value(info_text, info->unknown5, "unknown5", NULL, 0); | |
| 266 | append_field_value(info_text, info->is_open_hp, "is_open_hp", NULL, 0); | |
| 267 | append_field_value(info_text, info->is_open_contact, "is_open_contact", NULL, 0); | |
| 268 | append_field_value(info_text, info->qq_show, "qq_show", NULL, 0); | |
| 269 | append_field_value(info_text, info->unknown6, "unknown6", NULL, 0); | |
| 270 | */ | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
271 | |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
272 | return user_info; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
273 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
274 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
275 | /* send a packet to get detailed information of uid */ |
| 15884 | 276 | void qq_send_packet_get_info(PurpleConnection *gc, guint32 uid, gboolean show_window) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
277 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
278 | qq_data *qd; |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
279 | gchar uid_str[11]; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
280 | qq_info_query *query; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
281 | |
|
14691
efb5fd0a34b7
[gaim-migrate @ 17375]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14673
diff
changeset
|
282 | g_return_if_fail(uid != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
283 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
284 | qd = (qq_data *) gc->proto_data; |
|
14581
5c4b594933f6
[gaim-migrate @ 17239]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14327
diff
changeset
|
285 | g_snprintf(uid_str, sizeof(uid_str), "%d", uid); |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
286 | qq_send_cmd(qd, QQ_CMD_GET_USER_INFO, (guint8 *) uid_str, strlen(uid_str)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
287 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
288 | query = g_new0(qq_info_query, 1); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
289 | query->uid = uid; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
290 | query->show_window = show_window; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
291 | query->modify_info = FALSE; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
292 | 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
|
293 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
294 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
295 | /* 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
|
296 | * for myself */ |
| 15884 | 297 | void qq_prepare_modify_info(PurpleConnection *gc) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
298 | { |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
299 | qq_data *qd; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
300 | GList *ql; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
301 | qq_info_query *query; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
302 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
303 | qd = (qq_data *) gc->proto_data; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
304 | qq_send_packet_get_info(gc, qd->uid, FALSE); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
305 | /* 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
|
306 | 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
|
307 | query = ql->data; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
308 | if (query->uid == qd->uid) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
309 | query->modify_info = TRUE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
310 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
311 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
312 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
313 | /* send packet to modify personal information */ |
| 23190 | 314 | static void qq_send_packet_modify_info(PurpleConnection *gc, contact_info *info) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
315 | { |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
316 | qq_data *qd = (qq_data *) gc->proto_data; |
| 23190 | 317 | gint bytes = 0; |
| 318 | guint8 raw_data[MAX_PACKET_SIZE - 128] = {0}; | |
| 319 | guint8 bar; | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
320 | |
| 23190 | 321 | g_return_if_fail(info != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
322 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
323 | bar = 0x1f; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
324 | |
| 23190 | 325 | bytes += qq_put8(raw_data + bytes, bar); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
326 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
327 | /* important! skip the first uid entry */ |
| 23190 | 328 | /* |
| 329 | for (i = 1; i < QQ_CONTACT_FIELDS; i++) { | |
| 330 | create_packet_b(raw_data, &cursor, bar); | |
| 331 | create_packet_data(raw_data, &cursor, (guint8 *) segments[i], strlen(segments[i])); | |
| 332 | } | |
| 333 | */ | |
| 334 | /* uid */ | |
| 335 | bytes += qq_put8(raw_data + bytes, bar); | |
| 336 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->uid, strlen(info->uid)); | |
| 337 | /* nick */ | |
| 338 | bytes += qq_put8(raw_data + bytes, bar); | |
| 339 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->nick, strlen(info->nick)); | |
| 340 | /* country */ | |
| 341 | bytes += qq_put8(raw_data + bytes, bar); | |
| 342 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->country, strlen(info->country)); | |
| 343 | /* province */ | |
| 344 | bytes += qq_put8(raw_data + bytes, bar); | |
| 345 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->province, strlen(info->province)); | |
| 346 | /* zipcode */ | |
| 347 | bytes += qq_put8(raw_data + bytes, bar); | |
| 348 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->zipcode, strlen(info->zipcode)); | |
| 349 | /* address */ | |
| 350 | bytes += qq_put8(raw_data + bytes, bar); | |
| 351 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->address, strlen(info->address)); | |
| 352 | /* tel */ | |
| 353 | bytes += qq_put8(raw_data + bytes, bar); | |
| 354 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->tel, strlen(info->tel)); | |
| 355 | /* age */ | |
| 356 | bytes += qq_put8(raw_data + bytes, bar); | |
| 357 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->age, strlen(info->age)); | |
| 358 | /* gender */ | |
| 359 | bytes += qq_put8(raw_data + bytes, bar); | |
| 360 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->gender, strlen(info->gender)); | |
| 361 | /* name */ | |
| 362 | bytes += qq_put8(raw_data + bytes, bar); | |
| 363 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->name, strlen(info->name)); | |
| 364 | /* email */ | |
| 365 | bytes += qq_put8(raw_data + bytes, bar); | |
| 366 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->email, strlen(info->email)); | |
| 367 | /* pager_sn */ | |
| 368 | bytes += qq_put8(raw_data + bytes, bar); | |
| 369 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->pager_sn, strlen(info->pager_sn)); | |
| 370 | /* pager_num */ | |
| 371 | bytes += qq_put8(raw_data + bytes, bar); | |
| 372 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->pager_num, strlen(info->pager_num)); | |
| 373 | /* pager_sp */ | |
| 374 | bytes += qq_put8(raw_data + bytes, bar); | |
| 375 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->pager_sp, strlen(info->pager_sp)); | |
| 376 | /* pager_base_num */ | |
| 377 | bytes += qq_put8(raw_data + bytes, bar); | |
| 378 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->pager_base_num, strlen(info->pager_base_num)); | |
| 379 | /* pager_type */ | |
| 380 | bytes += qq_put8(raw_data + bytes, bar); | |
| 381 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->pager_type, strlen(info->pager_type)); | |
| 382 | /* occupation */ | |
| 383 | bytes += qq_put8(raw_data + bytes, bar); | |
| 384 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->occupation, strlen(info->occupation)); | |
| 385 | /* homepage */ | |
| 386 | bytes += qq_put8(raw_data + bytes, bar); | |
| 387 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->homepage, strlen(info->homepage)); | |
| 388 | /* auth_type */ | |
| 389 | bytes += qq_put8(raw_data + bytes, bar); | |
| 390 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->auth_type, strlen(info->auth_type)); | |
| 391 | /* unknown1 */ | |
| 392 | bytes += qq_put8(raw_data + bytes, bar); | |
| 393 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown1, strlen(info->unknown1)); | |
| 394 | /* unknown2 */ | |
| 395 | bytes += qq_put8(raw_data + bytes, bar); | |
| 396 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown2, strlen(info->unknown2)); | |
| 397 | /* face */ | |
| 398 | bytes += qq_put8(raw_data + bytes, bar); | |
| 399 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->face, strlen(info->face)); | |
| 400 | /* hp_num */ | |
| 401 | bytes += qq_put8(raw_data + bytes, bar); | |
| 402 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->hp_num, strlen(info->hp_num)); | |
| 403 | /* hp_type */ | |
| 404 | bytes += qq_put8(raw_data + bytes, bar); | |
| 405 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->hp_type, strlen(info->hp_type)); | |
| 406 | /* intro */ | |
| 407 | bytes += qq_put8(raw_data + bytes, bar); | |
| 408 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->intro, strlen(info->intro)); | |
| 409 | /* city */ | |
| 410 | bytes += qq_put8(raw_data + bytes, bar); | |
| 411 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->city, strlen(info->city)); | |
| 412 | /* unknown3 */ | |
| 413 | bytes += qq_put8(raw_data + bytes, bar); | |
| 414 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown3, strlen(info->unknown3)); | |
| 415 | /* unknown4 */ | |
| 416 | bytes += qq_put8(raw_data + bytes, bar); | |
| 417 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown4, strlen(info->unknown4)); | |
| 418 | /* unknown5 */ | |
| 419 | bytes += qq_put8(raw_data + bytes, bar); | |
| 420 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown5, strlen(info->unknown5)); | |
| 421 | /* is_open_hp */ | |
| 422 | bytes += qq_put8(raw_data + bytes, bar); | |
| 423 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->is_open_hp, strlen(info->is_open_hp)); | |
| 424 | /* is_open_contact */ | |
| 425 | bytes += qq_put8(raw_data + bytes, bar); | |
| 426 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->is_open_contact, strlen(info->is_open_contact)); | |
| 427 | /* college */ | |
| 428 | bytes += qq_put8(raw_data + bytes, bar); | |
| 429 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->college, strlen(info->college)); | |
| 430 | /* horoscope */ | |
| 431 | bytes += qq_put8(raw_data + bytes, bar); | |
| 432 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->horoscope, strlen(info->horoscope)); | |
| 433 | /* zodiac */ | |
| 434 | bytes += qq_put8(raw_data + bytes, bar); | |
| 435 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->zodiac, strlen(info->zodiac)); | |
| 436 | /* blood */ | |
| 437 | bytes += qq_put8(raw_data + bytes, bar); | |
| 438 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->blood, strlen(info->blood)); | |
| 439 | /* qq_show */ | |
| 440 | bytes += qq_put8(raw_data + bytes, bar); | |
| 441 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->qq_show, strlen(info->qq_show)); | |
| 442 | /* unknown6 */ | |
| 443 | bytes += qq_put8(raw_data + bytes, bar); | |
| 444 | bytes += qq_putdata(raw_data + bytes, (guint8 *)info->unknown6, strlen(info->unknown6)); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
445 | |
| 23190 | 446 | bytes += qq_put8(raw_data + bytes, bar); |
| 447 | ||
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
448 | qq_send_cmd(qd, QQ_CMD_UPDATE_INFO, raw_data, bytes); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
449 | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
450 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
451 | |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
452 | static void modify_info_cancel_cb(modify_info_data *mid) |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
453 | { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
454 | qq_data *qd; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
455 | |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
456 | qd = (qq_data *) mid->gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
457 | qd->modifying_info = FALSE; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
458 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
459 | g_strfreev((gchar **) mid->info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
460 | g_free(mid); |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
461 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
462 | |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
463 | static gchar *parse_field(PurpleRequestField *field, gboolean choice) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
464 | { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
465 | gchar *value; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
466 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
467 | if (choice) { |
| 15884 | 468 | value = g_strdup_printf("%d", purple_request_field_choice_get_value(field)); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
469 | } else { |
| 15884 | 470 | value = (gchar *) purple_request_field_string_get_value(field); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
471 | if (value == NULL) |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
472 | value = g_strdup("-"); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
473 | else |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
474 | value = utf8_to_qq(value, QQ_CHARSET_DEFAULT); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
475 | } |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
476 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
477 | return value; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
478 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
479 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
480 | /* parse fields and send info packet */ |
| 15884 | 481 | static void modify_info_ok_cb(modify_info_data *mid, PurpleRequestFields *fields) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
482 | { |
| 15884 | 483 | PurpleConnection *gc; |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
484 | qq_data *qd; |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
485 | GList *groups; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
486 | contact_info *info; |
|
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 | gc = mid->gc; |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
489 | qd = (qq_data *) gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
490 | qd->modifying_info = FALSE; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
491 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
492 | info = mid->info; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
493 | |
| 15884 | 494 | groups = purple_request_fields_get_groups(fields); |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
495 | while (groups != NULL) { |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
496 | PurpleRequestFieldGroup *group = groups->data; |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
497 | const char *g_name = purple_request_field_group_get_title(group); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
498 | GList *fields = purple_request_field_group_get_fields(group); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
499 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
500 | if (g_name == NULL) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
501 | continue; |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
502 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
503 | while (fields != NULL) { |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
504 | PurpleRequestField *field = fields->data; |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
505 | const char *f_id = purple_request_field_get_id(field); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
506 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
507 | if (!strcmp(QQ_PRIMARY_INFORMATION, g_name)) { |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
508 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
509 | if (!strcmp(f_id, "uid")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
510 | info->uid = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
511 | else if (!strcmp(f_id, "nick")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
512 | info->nick = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
513 | else if (!strcmp(f_id, "name")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
514 | info->name = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
515 | else if (!strcmp(f_id, "age")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
516 | info->age = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
517 | else if (!strcmp(f_id, "gender")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
518 | info->gender = parse_field(field, TRUE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
519 | else if (!strcmp(f_id, "country")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
520 | info->country = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
521 | else if (!strcmp(f_id, "province")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
522 | info->province = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
523 | else if (!strcmp(f_id, "city")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
524 | info->city = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
525 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
526 | } else if (!strcmp(QQ_ADDITIONAL_INFORMATION, g_name)) { |
|
20228
ce019944d765
applied changes from 9d35dde0c779cca73548172223ba557f27d61882
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
527 | |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
528 | if (!strcmp(f_id, "horoscope")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
529 | info->horoscope = parse_field(field, TRUE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
530 | else if (!strcmp(f_id, "occupation")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
531 | info->occupation = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
532 | else if (!strcmp(f_id, "zodiac")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
533 | info->zodiac = parse_field(field, TRUE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
534 | else if (!strcmp(f_id, "blood")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
535 | info->blood = parse_field(field, TRUE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
536 | else if (!strcmp(f_id, "college")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
537 | info->college = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
538 | else if (!strcmp(f_id, "email")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
539 | info->email = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
540 | else if (!strcmp(f_id, "address")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
541 | info->address = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
542 | else if (!strcmp(f_id, "zipcode")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
543 | info->zipcode = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
544 | else if (!strcmp(f_id, "hp_num")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
545 | info->hp_num = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
546 | else if (!strcmp(f_id, "tel")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
547 | info->tel = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
548 | else if (!strcmp(f_id, "homepage")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
549 | info->homepage = parse_field(field, FALSE); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
550 | |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
551 | } else if (!strcmp(QQ_INTRO, g_name)) { |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
552 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
553 | if (!strcmp(f_id, "intro")) |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
554 | info->intro = parse_field(field, FALSE); |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
555 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
556 | } |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
557 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
558 | fields = fields->next; |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
559 | } |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
560 | |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
561 | groups = groups->next; |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
562 | } |
|
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
563 | |
| 23190 | 564 | /* This casting looks like a horrible idea to me -DAA |
| 565 | * yes, rewritten -s3e | |
| 566 | * qq_send_packet_modify_info(gc, (gchar **) info); | |
| 567 | */ | |
| 568 | qq_send_packet_modify_info(gc, info); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
569 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
570 | g_strfreev((gchar **) mid->info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
571 | g_free(mid); |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
572 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
573 | |
| 15884 | 574 | static PurpleRequestFieldGroup *setup_field_group(PurpleRequestFields *fields, const gchar *title) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
575 | { |
| 15884 | 576 | PurpleRequestFieldGroup *group; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
577 | |
| 15884 | 578 | group = purple_request_field_group_new(title); |
| 579 | purple_request_fields_add_group(fields, group); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
580 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
581 | return group; |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
582 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
583 | |
| 15884 | 584 | static void add_string_field_to_group(PurpleRequestFieldGroup *group, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
585 | const gchar *id, const gchar *title, const gchar *value) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
586 | { |
| 15884 | 587 | PurpleRequestField *field; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
588 | gchar *utf8_value; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
589 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
590 | utf8_value = qq_to_utf8(value, QQ_CHARSET_DEFAULT); |
| 15884 | 591 | field = purple_request_field_string_new(id, title, utf8_value, FALSE); |
| 592 | purple_request_field_group_add_field(group, field); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
593 | g_free(utf8_value); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
594 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
595 | |
| 15884 | 596 | static void add_choice_field_to_group(PurpleRequestFieldGroup *group, |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
597 | const gchar *id, const gchar *title, const gchar *value, |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
598 | const gchar **choice, gint choice_size) |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
599 | { |
| 15884 | 600 | PurpleRequestField *field; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
601 | gint i, index; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
602 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
603 | index = choice_index(value, choice, choice_size); |
| 15884 | 604 | field = purple_request_field_choice_new(id, title, index); |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
605 | for (i = 0; i < choice_size; i++) |
| 15884 | 606 | purple_request_field_choice_add(field, choice[i]); |
| 607 | purple_request_field_group_add_field(group, field); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
608 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
609 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
610 | /* take the info returned by a get_info packet for myself and set up a request form */ |
| 15884 | 611 | static void create_modify_info_dialogue(PurpleConnection *gc, const contact_info *info) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
612 | { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
613 | qq_data *qd; |
| 15884 | 614 | PurpleRequestFieldGroup *group; |
| 615 | PurpleRequestFields *fields; | |
| 616 | PurpleRequestField *field; | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
617 | modify_info_data *mid; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
618 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
619 | /* 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
|
620 | qd = (qq_data *) gc->proto_data; |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
621 | if (!qd->modifying_info) { |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
622 | qd->modifying_info = TRUE; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
623 | |
| 15884 | 624 | fields = purple_request_fields_new(); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
625 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
626 | group = setup_field_group(fields, QQ_PRIMARY_INFORMATION); |
| 15884 | 627 | field = purple_request_field_string_new("uid", QQ_NUMBER, info->uid, FALSE); |
| 628 | purple_request_field_group_add_field(group, field); | |
| 629 | purple_request_field_string_set_editable(field, FALSE); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
630 | 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
|
631 | 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
|
632 | 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
|
633 | 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
|
634 | 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
|
635 | 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
|
636 | add_string_field_to_group(group, "city", QQ_CITY, info->city); |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
637 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
638 | group = setup_field_group(fields, QQ_ADDITIONAL_INFORMATION); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
639 | 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
|
640 | 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
|
641 | 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
|
642 | 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
|
643 | 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
|
644 | 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
|
645 | 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
|
646 | 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
|
647 | 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
|
648 | 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
|
649 | 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
|
650 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
651 | group = setup_field_group(fields, QQ_INTRO); |
| 15884 | 652 | field = purple_request_field_string_new("intro", QQ_INTRO, info->intro, TRUE); |
| 653 | purple_request_field_group_add_field(group, field); | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
654 | |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
655 | /* prepare unmodifiable info */ |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
656 | mid = g_new0(modify_info_data, 1); |
|
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
657 | mid->gc = gc; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
658 | /* 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
|
659 | 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
|
660 | mid->info->pager_sn = g_strdup(info->pager_sn); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
661 | mid->info->pager_num = g_strdup(info->pager_num); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
662 | mid->info->pager_sp = g_strdup(info->pager_sp); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
663 | 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
|
664 | mid->info->pager_type = g_strdup(info->pager_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
665 | mid->info->auth_type = g_strdup(info->auth_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
666 | mid->info->unknown1 = g_strdup(info->unknown1); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
667 | mid->info->unknown2 = g_strdup(info->unknown2); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
668 | mid->info->face = g_strdup(info->face); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
669 | mid->info->hp_type = g_strdup(info->hp_type); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
670 | mid->info->unknown3 = g_strdup(info->unknown3); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
671 | mid->info->unknown4 = g_strdup(info->unknown4); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
672 | mid->info->unknown5 = g_strdup(info->unknown5); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
673 | /* TODO stop hiding these 2 */ |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
674 | 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
|
675 | 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
|
676 | mid->info->qq_show = g_strdup(info->qq_show); |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
677 | mid->info->unknown6 = g_strdup(info->unknown6); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
678 | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
679 | purple_request_fields(gc, _("Modify my information"), |
| 23190 | 680 | _("Modify my information"), NULL, fields, |
| 681 | _("Update my information"), G_CALLBACK(modify_info_ok_cb), | |
| 682 | _("Cancel"), G_CALLBACK(modify_info_cancel_cb), | |
| 683 | purple_connection_get_account(gc), NULL, NULL, | |
| 684 | mid); | |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
685 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
686 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
687 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
688 | /* process the reply of modify_info packet */ |
| 15884 | 689 | void qq_process_modify_info_reply(guint8 *buf, gint buf_len, PurpleConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
690 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
691 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
692 | gint len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
693 | guint8 *data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
694 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
695 | g_return_if_fail(buf != NULL && buf_len != 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
696 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
697 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
698 | len = buf_len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
699 | data = g_newa(guint8, len); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
700 | |
|
22685
f3a524370c38
Patch from ccpaging to clean up some QQ stuff. I removed the now commented
Ka-Hing Cheung <khc@pidgin.im>
parents:
21352
diff
changeset
|
701 | if (qq_decrypt(buf, buf_len, qd->session_key, data, &len)) { |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
702 | data[len] = '\0'; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
703 | if (qd->uid == atoi((gchar *) data)) { /* return should be my uid */ |
| 15884 | 704 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "Update info ACK OK\n"); |
| 705 | purple_notify_info(gc, NULL, _("Your information has been updated"), NULL); | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
706 | } |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
707 | } else { |
| 15884 | 708 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Error decrypt modify info reply\n"); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
709 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
710 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
711 | |
| 15884 | 712 | static void _qq_send_packet_modify_face(PurpleConnection *gc, gint face_num) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
713 | { |
| 15884 | 714 | PurpleAccount *account = purple_connection_get_account(gc); |
| 715 | PurplePresence *presence = purple_account_get_presence(account); | |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
716 | qq_data *qd = (qq_data *) gc->proto_data; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
717 | gint offset; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
718 | |
| 15884 | 719 | if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_INVISIBLE)) { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
720 | offset = 2; |
| 15884 | 721 | } else if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_AWAY) |
| 722 | || purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_EXTENDED_AWAY)) { | |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
723 | offset = 1; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
724 | } else { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
725 | offset = 0; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
726 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
727 | |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
728 | qd->my_icon = 3 * (face_num - 1) + offset; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
729 | qd->modifying_face = TRUE; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
730 | qq_send_packet_get_info(gc, qd->uid, FALSE); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
731 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
732 | |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
733 | void qq_set_buddy_icon_for_user(PurpleAccount *account, const gchar *who, const gchar *icon_num, const gchar *iconfile) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
734 | { |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
735 | gchar *data; |
|
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
736 | gsize len; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
737 | |
| 23190 | 738 | if (!g_file_get_contents(iconfile, &data, &len, NULL)) { |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
739 | g_return_if_reached(); |
| 23190 | 740 | } else { |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
741 | purple_buddy_icons_set_for_user(account, who, data, len, icon_num); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
742 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
743 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
744 | |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
745 | /* TODO: custom faces for QQ members and users with level >= 16 */ |
|
16538
c7e61e2917c9
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents:
16534
diff
changeset
|
746 | void qq_set_my_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
747 | { |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
748 | gchar *icon; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
749 | gint icon_num; |
|
15351
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
750 | gint icon_len; |
| 15884 | 751 | PurpleAccount *account = purple_connection_get_account(gc); |
| 752 | const gchar *icon_path = purple_account_get_buddy_icon_path(account); | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
753 | const gchar *buddy_icon_dir = qq_buddy_icon_dir(); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
754 | gint prefix_len = strlen(QQ_ICON_PREFIX); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
755 | gint suffix_len = strlen(QQ_ICON_SUFFIX); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
756 | gint dir_len = strlen(buddy_icon_dir); |
| 16196 | 757 | gchar *errmsg = g_strdup_printf(_("Setting custom faces is not currently supported. Please choose an image from %s."), buddy_icon_dir); |
| 15884 | 758 | gboolean icon_global = purple_account_get_bool(gc->account, "use-global-buddyicon", TRUE); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
759 | |
|
15351
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
760 | if (!icon_path) |
|
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
761 | icon_path = ""; |
|
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
762 | |
|
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
763 | icon_len = strlen(icon_path) - dir_len - 1 - prefix_len - suffix_len; |
|
259c1b4db96e
[gaim-migrate @ 18079]
Evan Schoenberg <evands@pidgin.im>
parents:
15205
diff
changeset
|
764 | |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
765 | /* make sure we're using an appropriate icon */ |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
766 | if (!(g_ascii_strncasecmp(icon_path, buddy_icon_dir, dir_len) == 0 |
| 23190 | 767 | && icon_path[dir_len] == G_DIR_SEPARATOR |
| 768 | && g_ascii_strncasecmp(icon_path + dir_len + 1, QQ_ICON_PREFIX, prefix_len) == 0 | |
| 769 | && g_ascii_strncasecmp(icon_path + dir_len + 1 + prefix_len + icon_len, QQ_ICON_SUFFIX, suffix_len) == 0 | |
| 770 | && icon_len <= 3)) { | |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
771 | if (icon_global) |
| 15884 | 772 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "%s\n", errmsg); |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
773 | else |
| 15884 | 774 | purple_notify_error(gc, _("Invalid QQ Face"), errmsg, NULL); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
775 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
776 | return; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
777 | } |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
778 | /* strip everything but number */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
779 | 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
|
780 | icon_num = strtol(icon, NULL, 10); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
781 | g_free(icon); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
782 | /* ensure face number in proper range */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
783 | if (icon_num > QQ_FACES) { |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
784 | if (icon_global) |
| 15884 | 785 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "%s\n", errmsg); |
|
15201
26e8598c7282
[gaim-migrate @ 17925]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15200
diff
changeset
|
786 | else |
| 15884 | 787 | purple_notify_error(gc, _("Invalid QQ Face"), errmsg, NULL); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
788 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
789 | return; |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
790 | } |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
791 | g_free(errmsg); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
792 | /* tell server my icon changed */ |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
793 | _qq_send_packet_modify_face(gc, icon_num); |
|
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
794 | /* display in blist */ |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
795 | qq_set_buddy_icon_for_user(account, account->username, icon, icon_path); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
796 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
797 | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
798 | |
| 15884 | 799 | static void _qq_update_buddy_icon(PurpleAccount *account, const gchar *name, gint face) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
800 | { |
|
16900
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
801 | PurpleBuddy *buddy; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
802 | gchar *icon_num_str = face_to_icon_str(face); |
|
16900
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
803 | const gchar *old_icon_num = NULL; |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
804 | |
|
16900
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
805 | if ((buddy = purple_find_buddy(account, name))) |
|
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
806 | old_icon_num = purple_buddy_icons_get_checksum_for_user(buddy); |
|
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
807 | |
|
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
808 | if (old_icon_num == NULL || |
| 23190 | 809 | strcmp(icon_num_str, old_icon_num)) |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
810 | { |
|
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
811 | gchar *icon_path; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
812 | |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
813 | icon_path = g_strconcat(qq_buddy_icon_dir(), G_DIR_SEPARATOR_S, |
| 23190 | 814 | QQ_ICON_PREFIX, icon_num_str, |
| 815 | QQ_ICON_SUFFIX, NULL); | |
|
16534
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
816 | |
|
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
817 | qq_set_buddy_icon_for_user(account, name, icon_num_str, icon_path); |
|
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
818 | g_free(icon_path); |
|
2ab9e23f99d9
Move the prpl icon checksum code into the core, so we can delete the
Richard Laager <rlaager@pidgin.im>
parents:
16421
diff
changeset
|
819 | } |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
820 | g_free(icon_num_str); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
821 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
822 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
823 | /* after getting info or modify myself, refresh the buddy list accordingly */ |
| 23190 | 824 | static void qq_refresh_buddy_and_myself(contact_info *info, PurpleConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
825 | { |
| 15884 | 826 | PurpleBuddy *b; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
827 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
828 | qq_buddy *q_bud; |
|
23213
7aaa8e8233bc
disapproval of revision 'a39a33c79a3f235c5e1acf5602d7896f829623ba'
Daniel Atallah <datallah@pidgin.im>
parents:
23212
diff
changeset
|
829 | gchar *alias_utf8, *purple_name; |
| 15884 | 830 | PurpleAccount *account = purple_connection_get_account(gc); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
831 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
832 | qd = (qq_data *) gc->proto_data; |
| 15884 | 833 | purple_name = uid_to_purple_name(strtol(info->uid, NULL, 10)); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
834 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
835 | 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
|
836 | 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
|
837 | qd->my_icon = strtol(info->face, NULL, 10); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
838 | if (alias_utf8 != NULL) |
| 15884 | 839 | purple_account_set_alias(account, alias_utf8); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
840 | } |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
841 | /* update buddy list (including myself, if myself is the buddy) */ |
| 15884 | 842 | b = purple_find_buddy(gc->account, purple_name); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
843 | 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
|
844 | if (q_bud != NULL) { /* I have this buddy */ |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
845 | q_bud->age = strtol(info->age, NULL, 10); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
846 | q_bud->gender = strtol(info->gender, NULL, 10); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
847 | q_bud->face = strtol(info->face, NULL, 10); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
848 | if (alias_utf8 != NULL) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
849 | q_bud->nickname = g_strdup(alias_utf8); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
850 | qq_update_buddy_contact(gc, q_bud); |
| 15884 | 851 | _qq_update_buddy_icon(gc->account, purple_name, q_bud->face); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
852 | } |
| 15884 | 853 | g_free(purple_name); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
854 | g_free(alias_utf8); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
855 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
856 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
857 | /* process reply to get_info packet */ |
| 15884 | 858 | void qq_process_get_info_reply(guint8 *buf, gint buf_len, PurpleConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
859 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
860 | gint len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
861 | guint8 *data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
862 | gchar **segments; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
863 | qq_info_query *query; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
864 | qq_data *qd; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
865 | contact_info *info; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
866 | GList *list, *query_list; |
| 15884 | 867 | PurpleNotifyUserInfo *user_info; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
868 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
869 | g_return_if_fail(buf != NULL && buf_len != 0); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
870 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
871 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
872 | list = query_list = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
873 | len = buf_len; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
874 | data = g_newa(guint8, len); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
875 | info = NULL; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
876 | |
|
22685
f3a524370c38
Patch from ccpaging to clean up some QQ stuff. I removed the now commented
Ka-Hing Cheung <khc@pidgin.im>
parents:
21352
diff
changeset
|
877 | if (qq_decrypt(buf, buf_len, qd->session_key, data, &len)) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
878 | if (NULL == (segments = split_data(data, len, "\x1e", QQ_CONTACT_FIELDS))) |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
879 | return; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
880 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
881 | info = (contact_info *) segments; |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
882 | 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
|
883 | gchar *icon = g_strdup_printf("%d", qd->my_icon); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
884 | qd->modifying_face = FALSE; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
885 | g_free(info->face); |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
886 | info->face = icon; |
| 23190 | 887 | qq_send_packet_modify_info(gc, (contact_info *)segments); |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
888 | } |
|
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
889 | |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
890 | qq_refresh_buddy_and_myself(info, gc); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
891 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
892 | query_list = qd->info_query; |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
893 | /* ensure we're processing the right query */ |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
894 | while (query_list) { |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
895 | query = (qq_info_query *) query_list->data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
896 | if (query->uid == atoi(info->uid)) { |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
897 | if (query->show_window) { |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
898 | user_info = info_to_notify_user_info(info); |
| 15884 | 899 | purple_notify_userinfo(gc, info->uid, user_info, NULL, NULL); |
| 900 | purple_notify_user_info_destroy(user_info); | |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
901 | } else if (query->modify_info) { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
902 | create_modify_info_dialogue(gc, info); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
903 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
904 | 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
|
905 | g_free(query); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
906 | break; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
907 | } |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
908 | query_list = query_list->next; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
909 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
910 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
911 | g_strfreev(segments); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
912 | } else { |
| 15884 | 913 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Error decrypt get info reply\n"); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
914 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
915 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
916 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
917 | void qq_info_query_free(qq_data *qd) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
918 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
919 | gint i; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
920 | qq_info_query *p; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
921 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
922 | g_return_if_fail(qd != NULL); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
923 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
924 | i = 0; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
925 | while (qd->info_query != NULL) { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
926 | p = (qq_info_query *) (qd->info_query->data); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
927 | qd->info_query = g_list_remove(qd->info_query, p); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
928 | g_free(p); |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
929 | i++; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
930 | } |
| 15884 | 931 | purple_debug(PURPLE_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
|
932 | } |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
933 | |
| 15884 | 934 | void qq_send_packet_get_level(PurpleConnection *gc, guint32 uid) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
935 | { |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
936 | qq_data *qd = (qq_data *) gc->proto_data; |
| 23190 | 937 | guint8 buf[16] = {0}; |
| 938 | gint bytes = 0; | |
| 939 | ||
| 940 | bytes += qq_put8(buf + bytes, 0x00); | |
| 941 | bytes += qq_put32(buf + bytes, uid); | |
| 942 | ||
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
943 | qd = (qq_data *) gc->proto_data; |
|
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
944 | qq_send_cmd(qd, QQ_CMD_GET_LEVEL, buf, bytes); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
945 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
946 | |
| 15884 | 947 | void qq_send_packet_get_buddies_levels(PurpleConnection *gc) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
948 | { |
| 23190 | 949 | guint8 *buf; |
|
16271
9605b8b1c673
Port SVN revisions 18230 to 18232 from Mark Huetsch from sf SVN to
Mark Doliner <markdoliner@pidgin.im>
parents:
16196
diff
changeset
|
950 | guint16 size; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
951 | qq_buddy *q_bud; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
952 | qq_data *qd = (qq_data *) gc->proto_data; |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
953 | GList *node = qd->buddies; |
| 23190 | 954 | gint bytes = 0; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
955 | |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
956 | if (qd->buddies) { |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
957 | /* server only sends back levels for online buddies, no point |
| 23190 | 958 | * in asking for anyone else */ |
| 959 | size = 4 * g_list_length(qd->buddies) + 1; | |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
960 | buf = g_new0(guint8, size); |
| 23190 | 961 | bytes += 1; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
962 | |
| 23190 | 963 | while (NULL != node) { |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
964 | q_bud = (qq_buddy *) node->data; |
| 23190 | 965 | if (NULL != q_bud) { |
| 966 | bytes += qq_put32(buf + bytes, q_bud->uid); | |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
967 | } |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
968 | node = node->next; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
969 | } |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
970 | qq_send_cmd(qd, QQ_CMD_GET_LEVEL, buf, size); |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
971 | g_free(buf); |
|
15541
d5974476ce3a
Port [18179] from markhuetsch: I believe there's a bug in the get_buddies_levels() code that I don't have time to find. Temporarily disable it.
Evan Schoenberg <evands@pidgin.im>
parents:
15498
diff
changeset
|
972 | } |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
973 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
974 | |
| 15884 | 975 | void qq_process_get_level_reply(guint8 *buf, gint buf_len, PurpleConnection *gc) |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
976 | { |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
977 | guint32 uid, onlineTime; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
978 | guint16 level, timeRemainder; |
| 15884 | 979 | gchar *purple_name; |
| 980 | PurpleBuddy *b; | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
981 | qq_buddy *q_bud; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
982 | gint decr_len, i; |
| 23190 | 983 | guint8 *decr_buf; |
| 15884 | 984 | PurpleAccount *account = purple_connection_get_account(gc); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
985 | qq_data *qd = (qq_data *) gc->proto_data; |
| 23190 | 986 | gint bytes = 0; |
| 987 | ||
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
988 | decr_len = buf_len; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
989 | decr_buf = g_new0(guint8, buf_len); |
|
22685
f3a524370c38
Patch from ccpaging to clean up some QQ stuff. I removed the now commented
Ka-Hing Cheung <khc@pidgin.im>
parents:
21352
diff
changeset
|
990 | if (!qq_decrypt(buf, buf_len, qd->session_key, decr_buf, &decr_len)) { |
| 15884 | 991 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", "Couldn't decrypt get level packet\n"); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
992 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
993 | |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
994 | decr_len--; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
995 | if (decr_len % 12 != 0) { |
| 15884 | 996 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", |
| 23190 | 997 | "Get levels list of abnormal length. Truncating last %d bytes.\n", decr_len % 12); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
998 | decr_len -= (decr_len % 12); |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
999 | } |
| 23190 | 1000 | |
| 1001 | bytes += 1; | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1002 | /* this byte seems random */ |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1003 | /* |
| 23190 | 1004 | purple_debug(PURPLE_DEBUG_INFO, "QQ", "Byte one of get_level packet: %d\n", buf[0]); |
| 1005 | */ | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1006 | for (i = 0; i < decr_len; i += 12) { |
| 23190 | 1007 | bytes += qq_get32(&uid, decr_buf + bytes); |
| 1008 | bytes += qq_get32(&onlineTime, decr_buf + bytes); | |
| 1009 | bytes += qq_get16(&level, decr_buf + bytes); | |
| 1010 | bytes += qq_get16(&timeRemainder, decr_buf + bytes); | |
| 1011 | purple_debug(PURPLE_DEBUG_INFO, "QQ", | |
|
23213
7aaa8e8233bc
disapproval of revision 'a39a33c79a3f235c5e1acf5602d7896f829623ba'
Daniel Atallah <datallah@pidgin.im>
parents:
23212
diff
changeset
|
1012 | "Level packet entry:\nuid: %d\nonlineTime: %d\nlevel: %d\ntimeRemainder: %d\n", |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1013 | uid, onlineTime, level, timeRemainder); |
| 15884 | 1014 | purple_name = uid_to_purple_name(uid); |
| 1015 | b = purple_find_buddy(account, purple_name); | |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1016 | q_bud = (b == NULL) ? NULL : (qq_buddy *) b->proto_data; |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1017 | |
|
15368
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1018 | if (q_bud != NULL || uid == qd->uid) { |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1019 | if (q_bud) { |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1020 | q_bud->onlineTime = onlineTime; |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1021 | q_bud->level = level; |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1022 | q_bud->timeRemainder = timeRemainder; |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1023 | } |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1024 | if (uid == qd->uid) { |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1025 | qd->my_level = level; |
|
a82976ccee64
[gaim-migrate @ 18097]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15351
diff
changeset
|
1026 | } |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1027 | } else { |
| 15884 | 1028 | purple_debug(PURPLE_DEBUG_ERROR, "QQ", |
| 23190 | 1029 | "Got an online buddy %d, but not in my buddy list\n", uid); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1030 | } |
| 15884 | 1031 | g_free(purple_name); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1032 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
1033 | g_free(decr_buf); |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
1034 | } |