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