Sun, 06 Feb 2011 05:23:22 +0000
2010.01.23 - flos <lonicerae(at)gmail.com>
* added an option to force incoming message in chat room to use a default font instead of the font in message itself
2010.01.18 - flos <lonicerae(at)gmail.com>
* added type 'UPDCLS' and 'UID' for implementing business logic layer
2010.01.13 - ccpaging <ccpaging(at)gmail.com>
* qq2009-1 patch from ccpaging
|
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" |
|
27137
d04f3ddd7084
2009.05.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
26883
diff
changeset
|
29 | #include "connection.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
30 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
31 | #include "utils.h" |
|
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
32 | #include "packet_parse.h" |
|
23950
a974649cdb89
2008.08.02 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23212
diff
changeset
|
33 | #include "buddy_list.h" |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
34 | #include "buddy_info.h" |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
35 | #include "char_conv.h" |
|
24341
02abffea97fe
2008.09.26 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24340
diff
changeset
|
36 | #include "im.h" |
|
24340
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
37 | #include "qq_define.h" |
|
23950
a974649cdb89
2008.08.02 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23212
diff
changeset
|
38 | #include "qq_base.h" |
| 23192 | 39 | #include "qq_network.h" |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
40 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
41 | #define QQ_HOROSCOPE_SIZE 13 |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
42 | static const gchar *horoscope_names[] = { |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
43 | "-", N_("Aquarius"), N_("Pisces"), N_("Aries"), N_("Taurus"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
44 | N_("Gemini"), N_("Cancer"), N_("Leo"), N_("Virgo"), N_("Libra"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
45 | N_("Scorpio"), N_("Sagittarius"), N_("Capricorn") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
46 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
47 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
48 | #define QQ_ZODIAC_SIZE 13 |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
49 | static const gchar *zodiac_names[] = { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
50 | "-", N_("Rat"), N_("Ox"), N_("Tiger"), N_("Rabbit"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
51 | N_("Dragon"), N_("Snake"), N_("Horse"), N_("Goat"), N_("Monkey"), |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
52 | N_("Rooster"), N_("Dog"), N_("Pig") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
53 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
54 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
55 | #define QQ_BLOOD_SIZE 6 |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
56 | static const gchar *blood_types[] = { |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
57 | "-", "A", "B", "O", "AB", N_("Other") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
58 | }; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
59 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
60 | #define QQ_PUBLISH_SIZE 3 |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
61 | static const gchar *publish_types[] = { |
|
25099
051c0c74d822
fixed some spelling errors in QQ protocol plugin:
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
25073
diff
changeset
|
62 | N_("Visible"), N_("Friend Only"), N_("Private") |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
63 | }; |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
64 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
65 | #define QQ_GENDER_SIZE 3 |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
66 | static const gchar *genders[] = { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
67 | N_("Private"), |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
68 | N_("Male"), |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
69 | N_("Female"), |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
70 | }; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
71 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
72 | static const gchar *genders_zh[] = { |
|
24575
05086206f21b
Fix these strings in trunk. This change was made in the
Mark Doliner <markdoliner@pidgin.im>
parents:
24371
diff
changeset
|
73 | "-", |
|
05086206f21b
Fix these strings in trunk. This change was made in the
Mark Doliner <markdoliner@pidgin.im>
parents:
24371
diff
changeset
|
74 | "\xc4\xd0", |
|
05086206f21b
Fix these strings in trunk. This change was made in the
Mark Doliner <markdoliner@pidgin.im>
parents:
24371
diff
changeset
|
75 | "\xc5\xae", |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
76 | }; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
77 | |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
78 | #define QQ_FACES 134 |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
79 | #define QQ_ICON_PREFIX "qq_" |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
80 | #define QQ_ICON_SUFFIX ".png" |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
81 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
82 | enum { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
83 | QQ_INFO_UID = 0, QQ_INFO_NICK, QQ_INFO_COUNTRY, QQ_INFO_PROVINCE, QQ_INFO_ZIPCODE, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
84 | QQ_INFO_ADDR, QQ_INFO_TEL, QQ_INFO_AGE, QQ_INFO_GENDER, QQ_INFO_NAME, QQ_INFO_EMAIL, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
85 | QQ_INFO_PG_SN, QQ_INFO_PG_NUM, QQ_INFO_PG_SP, QQ_INFO_PG_BASE_NUM, QQ_INFO_PG_TYPE, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
86 | QQ_INFO_OCCU, QQ_INFO_HOME_PAGE, QQ_INFO_AUTH_TYPE, QQ_INFO_UNKNOW1, QQ_INFO_UNKNOW2, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
87 | QQ_INFO_FACE, QQ_INFO_MOBILE, QQ_INFO_MOBILE_TYPE, QQ_INFO_INTRO, QQ_INFO_CITY, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
88 | QQ_INFO_UNKNOW3, QQ_INFO_UNKNOW4, QQ_INFO_UNKNOW5, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
89 | QQ_INFO_IS_PUB_MOBILE, QQ_INFO_IS_PUB_CONTACT, QQ_INFO_COLLEGE, QQ_INFO_HOROSCOPE, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
90 | QQ_INFO_ZODIAC, QQ_INFO_BLOOD, QQ_INFO_SHOW, QQ_INFO_UNKNOW6, |
|
25105
fe13c190ca13
Remove the commas at the end of enumerator lists. This resolves warnings
Florian Quèze <florian@instantbird.org>
parents:
25099
diff
changeset
|
91 | QQ_INFO_LAST_2007, QQ_INFO_LAST |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
92 | }; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
93 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
94 | enum { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
95 | QQ_FIELD_UNUSED = 0, QQ_FIELD_BASE, QQ_FIELD_EXT, QQ_FIELD_CONTACT, QQ_FIELD_ADDR |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
96 | }; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
97 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
98 | enum { |
|
25105
fe13c190ca13
Remove the commas at the end of enumerator lists. This resolves warnings
Florian Quèze <florian@instantbird.org>
parents:
25099
diff
changeset
|
99 | QQ_FIELD_LABEL = 0, QQ_FIELD_STRING, QQ_FIELD_MULTI, QQ_FIELD_BOOL, QQ_FIELD_CHOICE |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
100 | }; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
101 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
102 | typedef struct { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
103 | int iclass; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
104 | int type; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
105 | char *id; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
106 | char *text; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
107 | const gchar **choice; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
108 | int choice_size; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
109 | } QQ_FIELD_INFO; |
| 23190 | 110 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
111 | static const QQ_FIELD_INFO field_infos[] = { |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
112 | { QQ_FIELD_BASE, QQ_FIELD_STRING, "uid", N_("QQ Number"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
113 | { QQ_FIELD_BASE, QQ_FIELD_STRING, "nick", N_("Nickname"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
114 | { QQ_FIELD_ADDR, QQ_FIELD_STRING, "country", N_("Country/Region"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
115 | { QQ_FIELD_ADDR, QQ_FIELD_STRING, "province", N_("Province/State"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
116 | { QQ_FIELD_ADDR, QQ_FIELD_STRING, "zipcode", N_("Zipcode"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
117 | { QQ_FIELD_ADDR, QQ_FIELD_STRING, "address", N_("Address"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
118 | { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "tel", N_("Phone Number"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
119 | { QQ_FIELD_BASE, QQ_FIELD_STRING, "age", N_("Age"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
120 | { QQ_FIELD_BASE, QQ_FIELD_CHOICE, "gender", N_("Gender"), genders, QQ_GENDER_SIZE }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
121 | { QQ_FIELD_BASE, QQ_FIELD_STRING, "name", N_("Name"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
122 | { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "email", N_("Email"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
123 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sn", "Pager Serial Num", NULL, 0 }, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
124 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_num", "Pager Num", NULL, 0 }, |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
125 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sp", "Pager Serivce Provider", NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
126 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sta", "Pager Station Num", NULL, 0 }, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
127 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_type", "Pager Type", NULL, 0 }, |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
128 | { QQ_FIELD_BASE, QQ_FIELD_STRING, "occupation", N_("Occupation"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
129 | { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "homepage", N_("Homepage"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
130 | { QQ_FIELD_BASE, QQ_FIELD_BOOL, "auth", N_("Authorize adding"), NULL, 0 }, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
131 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow1", "Unknow1", NULL, 0 }, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
132 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow2", "Unknow2", NULL, 0 }, |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
133 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "face", "Face", NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
134 | { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "mobile", N_("Cellphone Number"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
135 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "mobile_type", "Cellphone Type", NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
136 | { QQ_FIELD_BASE, QQ_FIELD_MULTI, "intro", N_("Personal Introduction"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
137 | { QQ_FIELD_ADDR, QQ_FIELD_STRING, "city", N_("City/Area"), NULL, 0 }, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
138 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow3", "Unknow3", NULL, 0 }, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
139 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow4", "Unknow4", NULL, 0 }, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
140 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow5", "Unknow5", NULL, 0 }, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
141 | { QQ_FIELD_UNUSED, QQ_FIELD_CHOICE, "pub_mobile", N_("Publish Mobile"), publish_types, QQ_PUBLISH_SIZE }, |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
142 | { QQ_FIELD_CONTACT, QQ_FIELD_CHOICE, "pub_contact", N_("Publish Contact"), publish_types, QQ_PUBLISH_SIZE }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
143 | { QQ_FIELD_EXT, QQ_FIELD_STRING, "college", N_("College"), NULL, 0 }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
144 | { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "horoscope", N_("Horoscope"), horoscope_names, QQ_HOROSCOPE_SIZE }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
145 | { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "zodiac", N_("Zodiac"), zodiac_names, QQ_ZODIAC_SIZE }, |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
146 | { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "blood", N_("Blood"), blood_types, QQ_BLOOD_SIZE }, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
147 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "qq_show", "QQ Show", NULL, 0 }, |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
148 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow6", "Unknow6", NULL, 0 }, |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
149 | { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "LAST_2005", "LAST_2005", NULL, 0 } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
150 | }; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
151 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
152 | typedef struct _modify_info_request { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
153 | PurpleConnection *gc; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
154 | int iclass; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
155 | gchar **segments; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
156 | } modify_info_request; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
157 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
158 | #ifdef DEBUG |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
159 | static void info_debug(gchar **segments) |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
160 | { |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24362
diff
changeset
|
161 | #if 0 |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
162 | int index; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
163 | gchar *utf8_str; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
164 | for (index = 0; segments[index] != NULL && index < QQ_INFO_LAST; index++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
165 | if (field_infos[index].type == QQ_FIELD_STRING |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
166 | || field_infos[index].type == QQ_FIELD_LABEL |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
167 | || field_infos[index].type == QQ_FIELD_MULTI |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
168 | || index == QQ_INFO_GENDER) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
169 | utf8_str = qq_to_utf8(segments[index], QQ_CHARSET_DEFAULT); |
|
24362
9984c7d8b290
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24361
diff
changeset
|
170 | purple_debug_info("QQ_BUDDY_INFO", "%s: %s\n", field_infos[index].text, utf8_str); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
171 | g_free(utf8_str); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
172 | continue; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
173 | } |
|
24362
9984c7d8b290
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24361
diff
changeset
|
174 | purple_debug_info("QQ_BUDDY_INFO", "%s: %s\n", field_infos[index].text, segments[index]); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
175 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24362
diff
changeset
|
176 | #endif |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
177 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
178 | #endif |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
179 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
180 | static void info_display_only(PurpleConnection *gc, gchar **segments) |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
181 | { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
182 | PurpleNotifyUserInfo *user_info; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
183 | gchar *utf8_value; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
184 | int index; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
185 | int choice_num; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
186 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
187 | user_info = purple_notify_user_info_new(); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
188 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
189 | for (index = 1; segments[index] != NULL && index < QQ_INFO_LAST; index++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
190 | if (field_infos[index].iclass == QQ_FIELD_UNUSED) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
191 | continue; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
192 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
193 | switch (field_infos[index].type) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
194 | case QQ_FIELD_BOOL: |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
195 | purple_notify_user_info_add_pair(user_info, _(field_infos[index].text), |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
196 | strtol(segments[index], NULL, 10) ? _("True") : _("False")); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
197 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
198 | case QQ_FIELD_CHOICE: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
199 | choice_num = strtol(segments[index], NULL, 10); |
|
25309
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
200 | if (choice_num < 0 || choice_num >= field_infos[index].choice_size) { |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
201 | choice_num = 0; |
|
d364c26b8c3a
2009.02.08 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25305
diff
changeset
|
202 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
203 | |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
204 | purple_notify_user_info_add_pair(user_info, _(field_infos[index].text), field_infos[index].choice[choice_num]); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
205 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
206 | case QQ_FIELD_LABEL: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
207 | case QQ_FIELD_STRING: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
208 | case QQ_FIELD_MULTI: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
209 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
210 | if (strlen(segments[index]) != 0) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
211 | utf8_value = qq_to_utf8(segments[index], QQ_CHARSET_DEFAULT); |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
212 | purple_notify_user_info_add_pair(user_info, _(field_infos[index].text), utf8_value); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
213 | g_free(utf8_value); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
214 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
215 | break; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
216 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
217 | } |
|
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
218 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
219 | purple_notify_userinfo(gc, segments[0], user_info, NULL, NULL); |
|
15205
f642029b2f97
[gaim-migrate @ 17929]
Evan Schoenberg <evands@pidgin.im>
parents:
15201
diff
changeset
|
220 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
221 | purple_notify_user_info_destroy(user_info); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
222 | g_strfreev(segments); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
223 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
224 | |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
225 | void qq_request_buddy_info(PurpleConnection *gc, UID uid, |
|
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
226 | UPDCLS update_class, int action) |
|
24019
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
227 | { |
|
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
228 | gchar raw_data[16] = {0}; |
|
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
229 | |
|
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
230 | g_return_if_fail(uid != 0); |
|
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
231 | |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
232 | g_snprintf(raw_data, sizeof(raw_data), "%u", uid); |
|
24020
fe90d74977b6
applied changes from 8cebefbc6cd5d84acb69c74e69e8821f11dd225d
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24019
diff
changeset
|
233 | qq_send_cmd_mess(gc, QQ_CMD_GET_BUDDY_INFO, (guint8 *) raw_data, strlen(raw_data), |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
234 | update_class, action); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
235 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
236 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
237 | /* send packet to modify personal information */ |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
238 | static void request_change_info(PurpleConnection *gc, gchar **segments) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
239 | { |
| 23190 | 240 | gint bytes = 0; |
| 241 | guint8 raw_data[MAX_PACKET_SIZE - 128] = {0}; | |
| 242 | guint8 bar; | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
243 | gchar *join; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
244 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
245 | g_return_if_fail(segments != NULL); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
246 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
247 | bar = 0x1f; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
248 | |
| 23190 | 249 | bytes += qq_put8(raw_data + bytes, bar); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
250 | bytes += qq_put8(raw_data + bytes, bar); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
251 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
252 | /* important! skip the first uid entry */ |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
253 | join = g_strjoinv("\x1f", segments + 1); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
254 | bytes += qq_putdata(raw_data + bytes, (guint8 *)join, strlen(join)); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
255 | g_free(join); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
256 | |
| 23190 | 257 | bytes += qq_put8(raw_data + bytes, bar); |
| 258 | ||
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
259 | /* qq_show_packet("request_modify_info", raw_data, bytes); */ |
|
24019
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
260 | qq_send_cmd(gc, QQ_CMD_UPDATE_INFO, raw_data, bytes); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
261 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
262 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
263 | static void info_modify_cancel_cb(modify_info_request *info_request) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
264 | { |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
265 | g_strfreev(info_request->segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
266 | g_free(info_request); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
267 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
268 | |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
269 | /* parse fields and send info packet */ |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
270 | static void info_modify_ok_cb(modify_info_request *info_request, PurpleRequestFields *fields) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
271 | { |
| 15884 | 272 | PurpleConnection *gc; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
273 | gchar **segments; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
274 | int index; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
275 | const char *utf8_str; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
276 | gchar *value; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
277 | int choice_num; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
278 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
279 | gc = info_request->gc; |
|
30706
612b36b49058
Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27785
diff
changeset
|
280 | g_return_if_fail(gc != NULL); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
281 | segments = info_request->segments; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
282 | g_return_if_fail(segments != NULL); |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
283 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
284 | for (index = 1; segments[index] != NULL && index < QQ_INFO_LAST; index++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
285 | if (field_infos[index].iclass == QQ_FIELD_UNUSED) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
286 | continue; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
287 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
288 | if (!purple_request_fields_exists(fields, field_infos[index].id)) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
289 | continue; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
290 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
291 | switch (field_infos[index].type) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
292 | case QQ_FIELD_BOOL: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
293 | value = purple_request_fields_get_bool(fields, field_infos[index].id) |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
294 | ? g_strdup("1") : g_strdup("0"); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
295 | g_free(segments[index]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
296 | segments[index] = value; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
297 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
298 | case QQ_FIELD_CHOICE: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
299 | choice_num = purple_request_fields_get_choice(fields, field_infos[index].id); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
300 | if (choice_num < 0 || choice_num >= field_infos[index].choice_size) choice_num = 0; |
|
20228
ce019944d765
applied changes from 9d35dde0c779cca73548172223ba557f27d61882
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
301 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
302 | if (index == QQ_INFO_GENDER) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
303 | /* QQ Server only recept gender in Chinese */ |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
304 | value = g_strdup(genders_zh[choice_num]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
305 | } else { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
306 | value = g_strdup_printf("%d", choice_num); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
307 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
308 | g_free(segments[index]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
309 | segments[index] = value; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
310 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
311 | case QQ_FIELD_LABEL: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
312 | case QQ_FIELD_STRING: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
313 | case QQ_FIELD_MULTI: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
314 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
315 | utf8_str = purple_request_fields_get_string(fields, field_infos[index].id); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
316 | if (utf8_str == NULL) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
317 | value = g_strdup("-"); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
318 | } else { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
319 | value = utf8_to_qq(utf8_str, QQ_CHARSET_DEFAULT); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
320 | if (value == NULL) value = g_strdup("-"); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
321 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
322 | g_free(segments[index]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
323 | segments[index] = value; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
324 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
325 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
326 | } |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
327 | request_change_info(gc, segments); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
328 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
329 | g_strfreev(segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
330 | g_free(info_request); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
331 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
332 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
333 | static void field_request_new(PurpleRequestFieldGroup *group, gint index, gchar **segments) |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
334 | { |
| 15884 | 335 | PurpleRequestField *field; |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
336 | gchar *utf8_value; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
337 | int choice_num; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
338 | int i; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
339 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
340 | g_return_if_fail(index >=0 && segments[index] != NULL && index < QQ_INFO_LAST); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
341 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
342 | switch (field_infos[index].type) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
343 | case QQ_FIELD_STRING: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
344 | case QQ_FIELD_MULTI: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
345 | utf8_value = qq_to_utf8(segments[index], QQ_CHARSET_DEFAULT); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
346 | if (field_infos[index].type == QQ_FIELD_STRING) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
347 | field = purple_request_field_string_new( |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
348 | field_infos[index].id, _(field_infos[index].text), utf8_value, FALSE); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
349 | } else { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
350 | field = purple_request_field_string_new( |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
351 | field_infos[index].id, _(field_infos[index].text), utf8_value, TRUE); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
352 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
353 | purple_request_field_group_add_field(group, field); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
354 | g_free(utf8_value); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
355 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
356 | case QQ_FIELD_BOOL: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
357 | field = purple_request_field_bool_new( |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
358 | field_infos[index].id, _(field_infos[index].text), |
|
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
359 | strtol(segments[index], NULL, 10) ? TRUE : FALSE); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
360 | purple_request_field_group_add_field(group, field); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
361 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
362 | case QQ_FIELD_CHOICE: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
363 | choice_num = strtol(segments[index], NULL, 10); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
364 | if (choice_num < 0 || choice_num >= field_infos[index].choice_size) choice_num = 0; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
365 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
366 | if (index == QQ_INFO_GENDER && strlen(segments[index]) != 0) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
367 | for (i = 0; i < QQ_GENDER_SIZE; i++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
368 | if (strcmp(segments[index], genders_zh[i]) == 0) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
369 | choice_num = i; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
370 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
371 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
372 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
373 | field = purple_request_field_choice_new( |
|
26883
3e6631a463da
correctly use some text marked by N_(), and mark one more string as
Ka-Hing Cheung <khc@pidgin.im>
parents:
26850
diff
changeset
|
374 | field_infos[index].id, _(field_infos[index].text), choice_num); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
375 | for (i = 0; i < field_infos[index].choice_size; i++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
376 | purple_request_field_choice_add(field, field_infos[index].choice[i]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
377 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
378 | purple_request_field_group_add_field(group, field); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
379 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
380 | case QQ_FIELD_LABEL: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
381 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
382 | field = purple_request_field_label_new(field_infos[index].id, segments[index]); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
383 | purple_request_field_group_add_field(group, field); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
384 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
385 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
386 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
387 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
388 | static void info_modify_dialogue(PurpleConnection *gc, gchar **segments, int iclass) |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
389 | { |
| 15884 | 390 | PurpleRequestFieldGroup *group; |
| 391 | PurpleRequestFields *fields; | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
392 | modify_info_request *info_request; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
393 | gchar *utf8_title, *utf8_prim; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
394 | int index; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
395 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
396 | /* Keep one dialog once a time */ |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
397 | purple_request_close_with_handle(gc); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
398 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
399 | fields = purple_request_fields_new(); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
400 | group = purple_request_field_group_new(NULL); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
401 | purple_request_fields_add_group(fields, group); |
|
20231
f09e8f947602
applied changes from 582eb3d8206e0fbe1023e9ce7f3bdf833a1c0db2
Luke Schierer <lschiere@pidgin.im>
parents:
20228
diff
changeset
|
402 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
403 | for (index = 1; segments[index] != NULL && index < QQ_INFO_LAST; index++) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
404 | if (field_infos[index].iclass != iclass) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
405 | continue; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
406 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
407 | field_request_new(group, index, segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
408 | } |
|
14055
651f64b7fb6a
[gaim-migrate @ 16570]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14051
diff
changeset
|
409 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
410 | switch (iclass) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
411 | case QQ_FIELD_CONTACT: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
412 | utf8_title = g_strdup(_("Modify Contact")); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
413 | utf8_prim = g_strdup_printf("%s for %s", _("Modify Contact"), segments[0]); |
|
30706
612b36b49058
Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27785
diff
changeset
|
414 | break; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
415 | case QQ_FIELD_ADDR: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
416 | utf8_title = g_strdup(_("Modify Address")); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
417 | utf8_prim = g_strdup_printf("%s for %s", _("Modify Address"), segments[0]); |
|
30706
612b36b49058
Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27785
diff
changeset
|
418 | break; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
419 | case QQ_FIELD_EXT: |
|
24652
7cdb83d14427
String changes. I'm kind of blindly making changes to the qq strings
Mark Doliner <markdoliner@pidgin.im>
parents:
24575
diff
changeset
|
420 | utf8_title = g_strdup(_("Modify Extended Information")); |
|
7cdb83d14427
String changes. I'm kind of blindly making changes to the qq strings
Mark Doliner <markdoliner@pidgin.im>
parents:
24575
diff
changeset
|
421 | utf8_prim = g_strdup_printf("%s for %s", _("Modify Extended Information"), segments[0]); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
422 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
423 | case QQ_FIELD_BASE: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
424 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
425 | utf8_title = g_strdup(_("Modify Information")); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
426 | utf8_prim = g_strdup_printf("%s for %s", _("Modify Information"), segments[0]); |
|
30706
612b36b49058
Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27785
diff
changeset
|
427 | break; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
428 | } |
|
14673
3a9adee11b19
[gaim-migrate @ 17339]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14581
diff
changeset
|
429 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
430 | info_request = g_new0(modify_info_request, 1); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
431 | info_request->gc = gc; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
432 | info_request->iclass = iclass; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
433 | info_request->segments = segments; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
434 | |
|
24340
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
435 | purple_request_fields(gc, |
|
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
436 | utf8_title, |
|
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
437 | utf8_prim, |
|
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
438 | NULL, |
|
36ceebf026a0
patch 20080922 from ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24337
diff
changeset
|
439 | fields, |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
440 | _("Update"), G_CALLBACK(info_modify_ok_cb), |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
441 | _("Cancel"), G_CALLBACK(info_modify_cancel_cb), |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
442 | purple_connection_get_account(gc), NULL, NULL, |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
443 | info_request); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
444 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
445 | g_free(utf8_title); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
446 | g_free(utf8_prim); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
447 | } |
|
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
448 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
449 | /* process the reply of modify_info packet */ |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
450 | void qq_process_change_info(PurpleConnection *gc, guint8 *data, gint data_len) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
451 | { |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
452 | qq_data *qd; |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
453 | g_return_if_fail(data != NULL && data_len != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
454 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
455 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
456 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
457 | data[data_len] = '\0'; |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
458 | if (qd->uid != atoi((gchar *) data)) { /* return should be my uid */ |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24362
diff
changeset
|
459 | purple_debug_info("QQ", "Failed Updating info\n"); |
|
25073
64862e19302b
2008.12.05 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25072
diff
changeset
|
460 | qq_got_message(gc, _("Could not change buddy information.")); |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
461 | } |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
462 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
463 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
464 | static void request_set_buddy_icon(PurpleConnection *gc, gint face_num) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
465 | { |
| 15884 | 466 | PurpleAccount *account = purple_connection_get_account(gc); |
| 467 | PurplePresence *presence = purple_account_get_presence(account); | |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
468 | qq_data *qd = (qq_data *) gc->proto_data; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
469 | gint offset; |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
470 | |
| 15884 | 471 | 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
|
472 | offset = 2; |
| 15884 | 473 | } else if(purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_AWAY) |
| 474 | || 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
|
475 | offset = 1; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
476 | } else { |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
477 | offset = 0; |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
478 | } |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
479 | |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
480 | qd->my_icon = 3 * (face_num - 1) + offset; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
481 | qq_request_buddy_info(gc, qd->uid, 0, QQ_BUDDY_INFO_SET_ICON); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
482 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
483 | |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
484 | void qq_change_icon_cb(PurpleConnection *gc, const char *filepath) |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
485 | { |
|
24653
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
486 | gchar *basename; |
|
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
487 | size_t index; |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
488 | gint face; |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
489 | |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
490 | g_return_if_fail(filepath != NULL); |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
491 | |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
492 | purple_debug_info("QQ", "Change my icon to %s\n", filepath); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
493 | |
|
24653
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
494 | basename = g_path_get_basename(filepath); |
|
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
495 | index = strcspn(basename, "0123456789"); |
|
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
496 | face = strtol(basename + index, NULL, 10); |
|
c3bf7c939480
Use basename() instead of splitting a path and then taking the last element.
Mark Doliner <markdoliner@pidgin.im>
parents:
24652
diff
changeset
|
497 | g_free(basename); |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
498 | purple_debug_info("QQ", "Set face to %d\n", face); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
499 | |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
500 | request_set_buddy_icon(gc, face); |
|
15133
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
501 | } |
|
9d5bbb9f8248
[gaim-migrate @ 17855]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15087
diff
changeset
|
502 | |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
503 | void qq_set_custom_icon(PurpleConnection *gc, PurpleStoredImage *img) |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
504 | { |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
505 | PurpleAccount *account = purple_connection_get_account(gc); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
506 | 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
|
507 | |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
508 | g_return_if_fail(icon_path != NULL); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
509 | |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
510 | /* Fixme: |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
511 | * icon_path is always null |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
512 | * purple_imgstore_get_filename is always new file |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
513 | * QQ buddy may set custom icon if level is over 16 */ |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
514 | purple_debug_info("QQ", "Change my icon to %s\n", icon_path); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
515 | } |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
516 | |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
517 | gchar *qq_get_icon_name(gint face) |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
518 | { |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
519 | gint icon; |
|
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
520 | gchar *icon_name; |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
521 | |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
522 | icon = face / 3 + 1; |
|
24371
e729eb60c299
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
523 | if (icon < 1 || icon > QQ_FACES) { |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
524 | icon = 1; |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
525 | } |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24362
diff
changeset
|
526 | |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
527 | icon_name = g_strdup_printf("%s%d%s", QQ_ICON_PREFIX, icon, QQ_ICON_SUFFIX); |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
528 | return icon_name; |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
529 | } |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
530 | |
|
27651
23032f491c38
Add a comment about some strange behavior that I noticed
Mark Doliner <markdoliner@pidgin.im>
parents:
26883
diff
changeset
|
531 | /* |
|
27785
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
532 | * This function seems to let people set their buddy icon, but it restricts |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
533 | * them to using a small list of stock icons. Wouldn't it make more sense |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
534 | * to use libpurple's normal icon setting stuff? |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
535 | * |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
536 | * Also it would be nice to unify the icon_dir code for Windows and Linux. |
|
27651
23032f491c38
Add a comment about some strange behavior that I noticed
Mark Doliner <markdoliner@pidgin.im>
parents:
26883
diff
changeset
|
537 | */ |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
538 | gchar *qq_get_icon_path(gchar *icon_name) |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
539 | { |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
540 | gchar *icon_path; |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
541 | const gchar *icon_dir; |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
542 | #ifdef _WIN32 |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
543 | static char *dir = NULL; |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
544 | if (dir == NULL) { |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
545 | dir = g_build_filename(wpurple_install_dir(), "pixmaps", |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
546 | "purple", "buddy_icons", "qq", NULL); |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
547 | } |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
548 | #endif |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
549 | |
|
27785
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
550 | /* |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
551 | * TODO: The QQ protocol plugin should probably call |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
552 | * purple_prefs_add_string() at startup to initialize this |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
553 | * preference. It is used to allow users or distributions |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
554 | * to specify this directory. We don't include these icons |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
555 | * with libpurple because of possible copyright concerns. |
|
dea7fbe0a233
Update these comments based on Kevin's reply a week ago on the devel
Mark Doliner <markdoliner@pidgin.im>
parents:
27651
diff
changeset
|
556 | */ |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
557 | icon_dir = purple_prefs_get_string("/plugins/prpl/qq/icon_dir"); |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
558 | if ( icon_dir == NULL || strlen(icon_dir) == 0) { |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
559 | #ifdef _WIN32 |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
560 | icon_dir = dir; |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
561 | #else |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
562 | icon_dir = QQ_BUDDY_ICON_DIR; |
|
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
563 | #endif |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
564 | } |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
565 | icon_path = g_strdup_printf("%s%c%s", icon_dir, G_DIR_SEPARATOR, icon_name); |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
566 | |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
567 | return icon_path; |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
568 | } |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
569 | |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
570 | void qq_update_buddy_icon(PurpleAccount *account, const gchar *who, gint face) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
571 | { |
|
16900
e9f12eb06c5b
Rework purple_buddy_icons_find() to return a reference for the caller, which
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
572 | PurpleBuddy *buddy; |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
573 | const gchar *icon_name_prev = NULL; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
574 | gchar *icon_name; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
575 | gchar *icon_path; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
576 | gchar *icon_file_content; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
577 | gsize icon_file_size; |
|
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
|
578 | |
|
24362
9984c7d8b290
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24361
diff
changeset
|
579 | g_return_if_fail(account != NULL && who != NULL); |
|
24367
80bead6c1577
2008.10.14 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24362
diff
changeset
|
580 | |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
581 | /* purple_debug_info("QQ", "Update %s icon to %d\n", who, 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
|
582 | |
|
24360
f7e260e79429
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24358
diff
changeset
|
583 | icon_name = qq_get_icon_name(face); |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
584 | g_return_if_fail(icon_name != NULL); |
|
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
585 | /* purple_debug_info("QQ", "icon file name is %s\n", icon_name); */ |
|
24371
e729eb60c299
2008.10.27 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24369
diff
changeset
|
586 | |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
587 | if ((buddy = purple_find_buddy(account, who))) { |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
588 | icon_name_prev = purple_buddy_icons_get_checksum_for_user(buddy); |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
589 | /* |
|
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
590 | purple_debug_info("QQ", "Previous icon is %s\n", |
|
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
591 | icon_name_prev != NULL ? icon_name_prev : "(NULL)"); |
|
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
592 | */ |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
593 | } |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
594 | if (icon_name_prev != NULL && !strcmp(icon_name, icon_name_prev)) { |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
595 | /* purple_debug_info("QQ", "Icon is not changed\n"); */ |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
596 | g_free(icon_name); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
597 | return; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
598 | } |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
599 | |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
600 | icon_path = qq_get_icon_path(icon_name); |
|
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
601 | if (icon_path == NULL) { |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
602 | g_free(icon_name); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
603 | return; |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
604 | } |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
605 | |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
606 | if (!g_file_get_contents(icon_path, &icon_file_content, &icon_file_size, NULL)) { |
|
24358
c1afcf2d6186
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24356
diff
changeset
|
607 | purple_debug_error("QQ", "Failed reading icon file %s\n", icon_path); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
608 | } else { |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
609 | purple_debug_info("QQ", "Update %s icon to %d (%s)\n", |
|
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
610 | who, face, icon_path); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
611 | purple_buddy_icons_set_for_user(account, who, |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
612 | icon_file_content, icon_file_size, icon_name); |
|
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
|
613 | } |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
614 | g_free(icon_name); |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
615 | g_free(icon_path); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
616 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
617 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
618 | /* after getting info or modify myself, refresh the buddy list accordingly */ |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
619 | static void update_buddy_info(PurpleConnection *gc, gchar **segments) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
620 | { |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
621 | PurpleBuddy *buddy = NULL; |
|
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
622 | qq_data *qd = NULL; |
|
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
623 | qq_buddy_data *bd = NULL; |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
624 | UID uid; |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
625 | gchar *who; |
|
23212
a39a33c79a3f
2008.07.12 - ccpaging <ecc_hy(at)hotmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23193
diff
changeset
|
626 | gchar *alias_utf8; |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
627 | |
| 15884 | 628 | PurpleAccount *account = purple_connection_get_account(gc); |
|
24954
27e63ec24946
Finished struct hiding in bonjour and qq
Gary Kramlich <grim@reaperworld.com>
parents:
24371
diff
changeset
|
629 | qd = (qq_data *)purple_connection_get_protocol_data(gc); |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
630 | |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
631 | uid = strtoul(segments[QQ_INFO_UID], NULL, 10); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
632 | who = uid_to_purple_name(uid); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
633 | qq_filter_str(segments[QQ_INFO_NICK]); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
634 | alias_utf8 = qq_to_utf8(segments[QQ_INFO_NICK], QQ_CHARSET_DEFAULT); |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
635 | |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
636 | if (uid == qd->uid) { /* it is me */ |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
637 | purple_debug_info("QQ", "Got my info\n"); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
638 | qd->my_icon = strtol(segments[QQ_INFO_FACE], NULL, 10); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
639 | if (alias_utf8 != NULL) { |
| 15884 | 640 | purple_account_set_alias(account, alias_utf8); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
641 | } |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
642 | /* add me to buddy list */ |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
643 | buddy = qq_buddy_find_or_new(gc, uid); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
644 | } else { |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
645 | buddy = purple_find_buddy(gc->account, who); |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
646 | /* purple_debug_info("QQ", "buddy=%p\n", (void*)buddy); */ |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
647 | } |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
648 | |
|
24954
27e63ec24946
Finished struct hiding in bonjour and qq
Gary Kramlich <grim@reaperworld.com>
parents:
24371
diff
changeset
|
649 | /* if the buddy is null, the api will catch it and return null here */ |
|
27e63ec24946
Finished struct hiding in bonjour and qq
Gary Kramlich <grim@reaperworld.com>
parents:
24371
diff
changeset
|
650 | bd = purple_buddy_get_protocol_data(buddy); |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
651 | /* purple_debug_info("QQ", "bd=%p\n", (void*)bd); */ |
|
24954
27e63ec24946
Finished struct hiding in bonjour and qq
Gary Kramlich <grim@reaperworld.com>
parents:
24371
diff
changeset
|
652 | |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
653 | if (bd == NULL || buddy == NULL) { |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
654 | g_free(who); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
655 | g_free(alias_utf8); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
656 | return; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
657 | } |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
658 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
659 | /* update buddy list (including myself, if myself is the buddy) */ |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
660 | bd->age = strtol(segments[QQ_INFO_AGE], NULL, 10); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
661 | bd->gender = strtol(segments[QQ_INFO_GENDER], NULL, 10); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
662 | bd->face = strtol(segments[QQ_INFO_FACE], NULL, 10); |
|
26850
8092dbdb9739
2009.04.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25911
diff
changeset
|
663 | |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
664 | if (alias_utf8 != NULL) { |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
665 | if (bd->nickname) g_free(bd->nickname); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
666 | bd->nickname = g_strdup(alias_utf8); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
667 | } |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
668 | bd->last_update = time(NULL); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
669 | |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
670 | purple_blist_server_alias_buddy(buddy, bd->nickname); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
671 | |
|
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
672 | /* convert face num from packet (0-299) to local face (1-100) */ |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
673 | qq_update_buddy_icon(gc->account, who, bd->face); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
674 | |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
675 | g_free(who); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
676 | g_free(alias_utf8); |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
677 | } |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
678 | |
|
14083
2b68bb18a66c
[gaim-migrate @ 16618]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14076
diff
changeset
|
679 | /* process reply to get_info packet */ |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
680 | void qq_process_get_buddy_info(guint8 *data, gint data_len, guint32 action, PurpleConnection *gc) |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
681 | { |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
682 | qq_data *qd; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
683 | gchar **segments; |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
684 | gint field_count; |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
685 | gchar *icon_name; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
686 | |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
687 | g_return_if_fail(data != NULL && data_len != 0); |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
688 | |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
689 | qd = (qq_data *) gc->proto_data; |
|
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
690 | |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
691 | if (qd->client_version >= 2008) { |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
692 | field_count = QQ_INFO_LAST; |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
693 | } else { |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
694 | field_count = QQ_INFO_LAST_2007; |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
695 | } |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
696 | if (NULL == (segments = split_data(data, data_len, "\x1e", field_count))) |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
697 | return; |
|
13932
4d131bd2b40f
[gaim-migrate @ 16340]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
diff
changeset
|
698 | |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
699 | #ifdef DEBUG |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
700 | info_debug(segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
701 | #endif |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
702 | |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
703 | if (action == QQ_BUDDY_INFO_SET_ICON) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
704 | if (strtol(segments[QQ_INFO_FACE], NULL, 10) != qd->my_icon) { |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
705 | icon_name = g_strdup_printf("%d", qd->my_icon); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
706 | g_free(segments[QQ_INFO_FACE]); |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
707 | segments[QQ_INFO_FACE] = icon_name; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
708 | |
|
24361
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
709 | /* Update me in buddy list */ |
|
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
710 | update_buddy_info(gc, segments); |
|
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
711 | /* send new face to server */ |
|
de1985a5045f
2008.10.08 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24360
diff
changeset
|
712 | request_change_info(gc, segments); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
713 | } |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
714 | g_strfreev(segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
715 | return; |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
716 | } |
|
14327
35a1e5dda285
[gaim-migrate @ 16947]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
14254
diff
changeset
|
717 | |
|
24356
48097e816313
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24355
diff
changeset
|
718 | update_buddy_info(gc, segments); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
719 | switch (action) { |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
720 | case QQ_BUDDY_INFO_DISPLAY: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
721 | info_display_only(gc, segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
722 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
723 | case QQ_BUDDY_INFO_SET_ICON: |
|
24369
11eef9c1dae1
2008.10.22 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24367
diff
changeset
|
724 | g_return_if_reached(); |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
725 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
726 | case QQ_BUDDY_INFO_MODIFY_BASE: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
727 | info_modify_dialogue(gc, segments, QQ_FIELD_BASE); |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
728 | break; |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
729 | case QQ_BUDDY_INFO_MODIFY_EXT: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
730 | info_modify_dialogue(gc, segments, QQ_FIELD_EXT); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
731 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
732 | case QQ_BUDDY_INFO_MODIFY_ADDR: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
733 | info_modify_dialogue(gc, segments, QQ_FIELD_ADDR); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
734 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
735 | case QQ_BUDDY_INFO_MODIFY_CONTACT: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
736 | info_modify_dialogue(gc, segments, QQ_FIELD_CONTACT); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
737 | break; |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
738 | default: |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
739 | g_strfreev(segments); |
|
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
740 | break; |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
741 | } |
|
24337
09fc304dae73
2008.09.19 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24314
diff
changeset
|
742 | return; |
|
14051
6bc807df2a0a
[gaim-migrate @ 16562]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
13932
diff
changeset
|
743 | } |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
744 | |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
745 | void qq_request_get_level(PurpleConnection *gc, UID uid) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
746 | { |
|
23193
384ba35bfa8f
patch-05-reconnect-and-code-cleanup
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23192
diff
changeset
|
747 | qq_data *qd = (qq_data *) gc->proto_data; |
| 23190 | 748 | guint8 buf[16] = {0}; |
| 749 | gint bytes = 0; | |
| 750 | ||
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
751 | if (qd->client_version >= 2007) { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
752 | bytes += qq_put8(buf + bytes, 0x02); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
753 | } else { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
754 | bytes += qq_put8(buf + bytes, 0x00); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
755 | } |
| 23190 | 756 | bytes += qq_put32(buf + bytes, uid); |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
757 | qq_send_cmd(gc, QQ_CMD_GET_LEVEL, buf, bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
758 | } |
| 23190 | 759 | |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
760 | void qq_request_get_level_2007(PurpleConnection *gc, UID uid) |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
761 | { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
762 | guint8 buf[16] = {0}; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
763 | gint bytes = 0; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
764 | |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
765 | bytes += qq_put8(buf + bytes, 0x08); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
766 | bytes += qq_put32(buf + bytes, uid); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
767 | bytes += qq_put8(buf + bytes, 0x00); |
|
24019
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
768 | 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
|
769 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
770 | |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
771 | void qq_request_get_buddies_level(PurpleConnection *gc, UPDCLS update_class) |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
772 | { |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
773 | qq_data *qd = (qq_data *) gc->proto_data; |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
774 | PurpleBuddy *buddy; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
775 | qq_buddy_data *bd; |
| 23190 | 776 | guint8 *buf; |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
777 | GSList *buddies, *it; |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
778 | gint bytes; |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
779 | |
|
24019
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
780 | /* server only reply levels for online buddies */ |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
781 | buf = g_newa(guint8, MAX_PACKET_SIZE); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
782 | |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
783 | bytes = 0; |
|
23950
a974649cdb89
2008.08.02 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23212
diff
changeset
|
784 | bytes += qq_put8(buf + bytes, 0x00); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
785 | buddies = purple_find_buddies(purple_connection_get_account(gc), NULL); |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
786 | for (it = buddies; it; it = it->next) { |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
787 | buddy = it->data; |
|
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
788 | if (buddy == NULL) continue; |
|
24954
27e63ec24946
Finished struct hiding in bonjour and qq
Gary Kramlich <grim@reaperworld.com>
parents:
24371
diff
changeset
|
789 | if ((bd = purple_buddy_get_protocol_data(buddy)) == NULL) continue; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
790 | if (bd->uid == 0) continue; /* keep me as end of packet*/ |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
791 | if (bd->uid == qd->uid) continue; |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
792 | bytes += qq_put32(buf + bytes, bd->uid); |
|
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
|
793 | } |
|
24019
c0801ae3c886
applied changes from f12c8903079425d7850fa183df0b3f937b2952be
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24018
diff
changeset
|
794 | bytes += qq_put32(buf + bytes, qd->uid); |
|
24354
dcb8e72dad63
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24352
diff
changeset
|
795 | qq_send_cmd_mess(gc, QQ_CMD_GET_LEVEL, buf, bytes, update_class, 0); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
796 | } |
|
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
797 | |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
798 | static void process_level(PurpleConnection *gc, guint8 *data, gint data_len) |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
799 | { |
| 23190 | 800 | gint bytes = 0; |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
801 | UID uid; |
|
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
802 | guint32 onlineTime; |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
803 | guint16 level, timeRemainder; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
804 | qq_buddy_data *bd; |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
805 | |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
806 | while (data_len - bytes >= 12) { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
807 | bytes += qq_get32(&uid, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
808 | bytes += qq_get32(&onlineTime, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
809 | bytes += qq_get16(&level, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
810 | bytes += qq_get16(&timeRemainder, data + bytes); |
|
25078
3125e29b8bb1
2008.12.17 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25073
diff
changeset
|
811 | purple_debug_info("QQ", "level: %d, uid %u, tmOnline: %d, tmRemainder: %d\n", |
| 25049 | 812 | level, uid, onlineTime, timeRemainder); |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
813 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
814 | bd = qq_buddy_data_find(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
815 | if (bd == NULL) { |
|
25025
e1e8fdc48c45
Change QQ number as unsigned long
Hu Yong <ccpaging@gmail.com>
parents:
24575
diff
changeset
|
816 | purple_debug_error("QQ", "Got levels of %u 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
|
817 | continue; |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
818 | } |
|
24018
91f0294f2377
2008.08.10 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23950
diff
changeset
|
819 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
820 | bd->onlineTime = onlineTime; |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
821 | bd->level = level; |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
822 | bd->timeRemainder = timeRemainder; |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
823 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
824 | |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
825 | if (bytes != data_len) { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
826 | purple_debug_error("QQ", |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
827 | "Wrong format of Get levels. Truncate %d bytes.\n", data_len - bytes); |
|
15200
a28a70a4e7ce
[gaim-migrate @ 17924]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15137
diff
changeset
|
828 | } |
|
15137
28f227957781
[gaim-migrate @ 17859]
Daniel Atallah <datallah@pidgin.im>
parents:
15133
diff
changeset
|
829 | } |
|
23950
a974649cdb89
2008.08.02 - csyfek <csyfek(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
23212
diff
changeset
|
830 | |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
831 | static void process_level_2007(PurpleConnection *gc, guint8 *data, gint data_len) |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
832 | { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
833 | gint bytes; |
|
31393
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
834 | UID uid; |
|
04447b1f6403
2010.01.23 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
31112
diff
changeset
|
835 | guint32 onlineTime; |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
836 | guint16 level, timeRemainder; |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
837 | qq_buddy_data *bd; |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
838 | guint16 str_len; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
839 | gchar *str; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
840 | gchar *str_utf8; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
841 | |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
842 | bytes = 0; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
843 | bytes += qq_get32(&uid, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
844 | bytes += qq_get32(&onlineTime, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
845 | bytes += qq_get16(&level, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
846 | bytes += qq_get16(&timeRemainder, data + bytes); |
|
25078
3125e29b8bb1
2008.12.17 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25073
diff
changeset
|
847 | purple_debug_info("QQ", "level: %d, uid %u, tmOnline: %d, tmRemainder: %d\n", |
| 25049 | 848 | level, uid, onlineTime, timeRemainder); |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
849 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
850 | bd = qq_buddy_data_find(gc, uid); |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
851 | if (bd == NULL) { |
|
25078
3125e29b8bb1
2008.12.17 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
25073
diff
changeset
|
852 | purple_debug_error("QQ", "Got levels of %u not in my buddy list\n", uid); |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
853 | return; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
854 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
855 | |
|
24355
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
856 | bd->onlineTime = onlineTime; |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
857 | bd->level = level; |
|
c9deccad8f3f
2008.10.07 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24354
diff
changeset
|
858 | bd->timeRemainder = timeRemainder; |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
859 | |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
860 | /* extend bytes in qq2007*/ |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
861 | bytes += 4; /* skip 8 bytes */ |
|
24352
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
862 | /* qq_show_packet("Buddies level", data + bytes, data_len - bytes); */ |
|
871c27553af6
Flos Lonicerae <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24351
diff
changeset
|
863 | |
|
24348
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
864 | do { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
865 | bytes += qq_get16(&str_len, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
866 | if (str_len <= 0 || bytes + str_len > data_len) { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
867 | purple_debug_error("QQ", |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
868 | "Wrong format of Get levels. Truncate %d bytes.\n", data_len - bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
869 | break; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
870 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
871 | str = g_strndup((gchar *)data + bytes, str_len); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
872 | bytes += str_len; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
873 | str_utf8 = qq_to_utf8(str, QQ_CHARSET_DEFAULT); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
874 | purple_debug_info("QQ", "%s\n", str_utf8); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
875 | g_free(str_utf8); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
876 | g_free(str); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
877 | } while (bytes < data_len); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
878 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
879 | |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
880 | void qq_process_get_level_reply(guint8 *data, gint data_len, PurpleConnection *gc) |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
881 | { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
882 | gint bytes; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
883 | guint8 sub_cmd; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
884 | |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
885 | bytes = 0; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
886 | bytes += qq_get8(&sub_cmd, data + bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
887 | switch (sub_cmd) { |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
888 | case 0x08: |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
889 | process_level_2007(gc, data + bytes, data_len - bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
890 | break; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
891 | case 0x00: |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
892 | case 0x02: |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
893 | default: |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
894 | process_level(gc, data + bytes, data_len - bytes); |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
895 | break; |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
896 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
897 | } |
|
1249d8b99aa9
2008.10.03 - ccpaging <ccpaging(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
24341
diff
changeset
|
898 |