libpurple/protocols/qq/buddy_memo.c

Tue, 24 Feb 2009 14:33:49 +0000

author
SHiNE CsyFeK <csyfek@gmail.com>
date
Tue, 24 Feb 2009 14:33:49 +0000
branch
openq
changeset 25659
2bbb8a5e37e5
parent 25658
d3a305c0fce8
child 25662
c5525da702b3
permissions
-rw-r--r--

2009.02.24 - flos <lonicerae(at)gmail.com>
* Changed update_class type from gint to guint32
* Fixed a bug of displaying of memo when memo is nothing

25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
1 #include "internal.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
2 #include "debug.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
3 #include "notify.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
4 #include "request.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
5
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
6 #include "buddy_memo.h"
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
7 #include "utils.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
8 #include "packet_parse.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
9 #include "buddy_list.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
10 #include "buddy_info.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
11 #include "char_conv.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
12 #include "im.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
13 #include "qq_define.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
14 #include "qq_base.h"
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
15 #include "qq_network.h"
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
16 #include "qq.h"
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
17
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
18
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
19 #include <string.h>
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
20 #include <stdlib.h>
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
21 #include <stdio.h>
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
22
25656
337f9a10a7b8 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25655
diff changeset
23 #include <stdlib.h>
337f9a10a7b8 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25655
diff changeset
24 #include <stdio.h>
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
25
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
26 /* memo index */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
27 enum {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
28 QQ_MEMO_ALIAS = 0,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
29 QQ_MEMO_MOBILD,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
30 QQ_MEMO_TELEPHONE,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
31 QQ_MEMO_ADDRESS,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
32 QQ_MEMO_EMAIL,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
33 QQ_MEMO_ZIPCODE,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
34 QQ_MEMO_NOTE,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
35 QQ_MEMO_SIZE
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
36 };
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
37
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
38 /* memo id */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
39 static const gchar *memo_id[] = {
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
40 "mm_alias",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
41 "mm_mobile",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
42 "mm_telephone",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
43 "mm_address",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
44 "mm_email",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
45 "mm_zipcode",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
46 "mm_note"
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
47 };
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
48
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
49 /* memo text */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
50 static const gchar *memo_txt[] = {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
51 N_("Alias"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
52 N_("Mobile"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
53 N_("Telephone"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
54 N_("Address"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
55 N_("Email"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
56 N_("ZipCode"),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
57 N_("Note")
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
58 };
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
59
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
60 typedef struct _modify_memo_request {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
61 PurpleConnection *gc;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
62 guint32 bd_uid;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
63 gchar **segments;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
64 } modify_memo_request;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
65
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
66
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
67 static void memo_debug(gchar **segments)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
68 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
69 gint index;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
70 g_return_if_fail(NULL != segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
71 for (index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
72 purple_debug_info("QQ","memo[%i]=%s\n", index, segments[index]);
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
73 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
74 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
75
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
76 static void memo_free(gchar **segments)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
77 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
78 gint index;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
79 g_return_if_fail(NULL != segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
80 for (index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
81 g_free(segments[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
82 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
83 purple_debug_info("QQ", "memo freed\n");
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
84 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
85
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
86 static void update_buddy_memo(PurpleConnection *gc, guint32 bd_uid, gchar *alias)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
87 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
88 PurpleAccount *account;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
89 PurpleBuddy *buddy;
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
90 gchar *who;
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
91 g_return_if_fail(NULL != gc && NULL != alias);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
92
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
93 account = (PurpleAccount *)gc->account;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
94 g_return_if_fail(NULL != account);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
95
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
96 who = uid_to_purple_name(bd_uid);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
97 buddy = purple_find_buddy(account, who);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
98 if (buddy == NULL || buddy->proto_data == NULL) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
99 g_free(who);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
100 purple_debug_info("QQ", "Error...Can NOT find %d!\n", bd_uid);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
101 return;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
102 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
103 purple_blist_alias_buddy(buddy, (const char*)alias);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
104 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
105
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
106 static void request_change_memo(PurpleConnection *gc, guint32 bd_uid, gchar **segments)
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
107 {
25656
337f9a10a7b8 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25655
diff changeset
108 gint bytes;
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
109 /* Attention, length of each segment must be guint8(0~255),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
110 * so length of memo string is limited.
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
111 * convert it to guint8 first before putting data */
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
112 guint seg_len;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
113 gint index;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
114 guint8 raw_data[MAX_PACKET_SIZE - 16] = {0};
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
115
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
116 purple_debug_info( "QQ", "request_change_memo\n" );
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
117 g_return_if_fail(NULL != gc && NULL != segments);
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
118
25656
337f9a10a7b8 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25655
diff changeset
119 bytes = 0;
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
120 bytes += qq_put8(raw_data+bytes, QQ_BUDDY_MEMO_MODIFY);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
121 bytes += qq_put8(raw_data+bytes, 0x00);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
122 bytes += qq_put32(raw_data+bytes, (guint32)bd_uid);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
123 bytes += qq_put8(raw_data+bytes, 0x00);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
124 for (index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
125 seg_len = strlen(segments[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
126 seg_len = seg_len & 0xff;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
127 bytes += qq_put8(raw_data+bytes, (guint8)seg_len);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
128 bytes += qq_putdata(raw_data+bytes, (const guint8 *)segments[index], (guint8)seg_len);
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
129 }
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
130
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
131 /* debug */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
132 /*
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
133 qq_show_packet("MEMO MODIFY", raw_data, bytes);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
134 */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
135
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
136 qq_send_cmd(gc, QQ_CMD_BUDDY_MEMO, raw_data, bytes);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
137 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
138
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
139 static void memo_modify_cancle_cb(modify_memo_request *memo_request, PurpleRequestFields *fields)
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
140 {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
141 memo_free(memo_request->segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
142 g_free(memo_request);
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
143 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
144
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
145 /* prepare segments to be sent, string all convert to qq charset */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
146 static void memo_modify_ok_cb(modify_memo_request *memo_request, PurpleRequestFields *fields)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
147 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
148 PurpleConnection *gc;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
149 guint32 bd_uid;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
150 gchar **segments;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
151 const gchar *utf8_str;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
152 gchar *value = NULL;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
153 gint index;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
154
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
155 g_return_if_fail(NULL != memo_request);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
156 gc = (PurpleConnection *)memo_request->gc;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
157 segments = (gchar **)memo_request->segments;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
158 g_return_if_fail(NULL != gc && NULL != segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
159 bd_uid = (guint32)memo_request->bd_uid;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
160
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
161
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
162 for (index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
163 utf8_str = purple_request_fields_get_string(fields, memo_id[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
164 /* update alias */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
165 if (QQ_MEMO_ALIAS == index) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
166 update_buddy_memo(gc, bd_uid, segments[QQ_MEMO_ALIAS]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
167 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
168 if (NULL == utf8_str) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
169 value = g_strdup("");
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
170 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
171 else {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
172 value = utf8_to_qq(utf8_str, QQ_CHARSET_DEFAULT);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
173 /* Warnning: value will be string "(NULL)" instead of NULL */
25658
d3a305c0fce8 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25657
diff changeset
174 if (!qq_strcmp("(NULL)", value)) {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
175 value = g_strdup("");
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
176 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
177 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
178 g_free(segments[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
179 segments[index] = value;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
180 }
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
181
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
182 memo_debug(segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
183 /* send segments */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
184 request_change_memo(gc, bd_uid, segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
185
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
186 /* free segments */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
187 memo_free(segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
188 g_free(memo_request);
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
189 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
190
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
191 /* memo modify dialogue */
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
192 static void memo_modify_dialogue(PurpleConnection *gc, guint32 bd_uid, gchar **segments, guint32 action)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
193 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
194 modify_memo_request *memo_request;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
195 PurpleRequestField *field;
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
196 PurpleRequestFields *fields;
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
197 PurpleRequestFieldGroup *group;
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
198 int index;
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
199 gchar *utf8_title;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
200 gchar *utf8_primary;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
201
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
202 g_return_if_fail(NULL != gc && NULL != segments);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
203
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
204 switch (action) {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
205 case QQ_BUDDY_MEMO_GET:
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
206 memo_free(segments);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
207 break;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
208 case QQ_BUDDY_MEMO_MODIFY:
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
209 /* keep one dialog once a time */
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
210 purple_request_close_with_handle(gc);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
211 /* show dialog */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
212 fields = purple_request_fields_new();
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
213 group = purple_request_field_group_new(NULL);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
214 purple_request_fields_add_group(fields, group);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
215
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
216 for(index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
217 /*
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
218 purple_debug_info("QQ", "id:%s txt:%s segment:%s\n",
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
219 memo_id[index], memo_txt[index], segments[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
220 */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
221 field = purple_request_field_string_new(memo_id[index], memo_txt[index],
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
222 segments[index], FALSE);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
223 purple_request_field_group_add_field(group, field);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
224 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
225
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
226 /* for upload cb */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
227 memo_request = g_new0(modify_memo_request, 1);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
228 memo_request->gc = gc;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
229 memo_request->bd_uid = bd_uid;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
230 memo_request->segments = segments;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
231 /* callback */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
232 utf8_title = g_strdup(_("Buddy Memo"));
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
233 utf8_primary = g_strdup(_("Change his/her memo as you like"));
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
234
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
235 purple_request_fields(gc, utf8_title, utf8_primary, NULL,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
236 fields,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
237 _("_Modify"), G_CALLBACK(memo_modify_ok_cb),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
238 _("_Cancel"), G_CALLBACK(memo_modify_cancle_cb),
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
239 purple_connection_get_account(gc), NULL, NULL,
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
240 memo_request);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
241
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
242 g_free(utf8_title);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
243 g_free(utf8_primary);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
244 break;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
245 default:
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
246 purple_debug_info("QQ", "Error...unknown memo action, please tell us\n");
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
247 break;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
248 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
249 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
250
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
251 static void qq_create_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 action)
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
252 {
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
253 gchar **segments;
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
254 gint index;
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
255 g_return_if_fail(NULL != gc);
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
256
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
257 segments = g_new0(gchar*, QQ_MEMO_SIZE);
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
258 for (index = 0; index < QQ_MEMO_SIZE; index++) {
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
259 segments[index] = g_strdup("");;
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
260 }
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
261 memo_modify_dialogue(gc, bd_uid, segments, action);
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
262 }
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
263
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
264 /* process reply to get_memo packet */
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
265 void qq_process_get_buddy_memo(PurpleConnection *gc, guint8* data, gint data_len,
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
266 guint32 update_class, guint32 action)
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
267 {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
268 gchar **segments;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
269 gint bytes;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
270 gint index;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
271 guint8 rcv_cmd;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
272 guint32 rcv_uid;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
273 guint8 unk1_8;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
274 guint8 is_success;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
275
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
276 g_return_if_fail(NULL != gc && NULL != data && 0 != data_len);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
277 /*
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
278 qq_show_packet("MEMO REACH", data, data_len);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
279 */
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
280 purple_debug_info("QQ", "action=0x%02X\n", action);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
281
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
282 bytes = 0;
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
283
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
284 /* TX looks a bit clever than before... :) */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
285 bytes += qq_get8(&rcv_cmd, data+bytes);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
286 purple_debug_info("QQ", "rcv_cmd=0x%02X\n", rcv_cmd);
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
287
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
288 /* it's possible that packet contains no buddy uid and no memo!!!
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
289 * go to next step according to previous action sent */
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
290 if (1 == data_len) { /* only one byte */
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
291 purple_debug_info("QQ", "memo packet contains no buddy uid and memo...\n");
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
292 if (QQ_BUDDY_MEMO_MODIFY == action) {
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
293 qq_create_buddy_memo(gc, (guint32)update_class, QQ_BUDDY_MEMO_MODIFY);
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
294 return;
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
295 }
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
296 return;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
297 }
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
298
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
299 switch (rcv_cmd) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
300 case QQ_BUDDY_MEMO_MODIFY:
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
301 case QQ_BUDDY_MEMO_REMOVE:
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
302 bytes += qq_get8(&is_success, data+bytes);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
303 if (QQ_BUDDY_MEMO_REQUEST_SUCCESS == is_success) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
304 purple_notify_message(gc, PURPLE_NOTIFY_MSG_INFO,
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
305 _("Memo Modify"), _("Server says:"),
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
306 _("Your request was accepted."),
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
307 NULL, NULL);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
308 purple_debug_info("QQ", "memo change succeessfully!\n");
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
309 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
310 else {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
311 purple_notify_message(gc, PURPLE_NOTIFY_MSG_INFO,
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
312 _("Memo Modify"), _("Server says:"),
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
313 _("Your request was rejected."),
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
314 NULL, NULL);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
315 purple_debug_info("QQ", "memo change failed\n");
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
316 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
317 break;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
318 case QQ_BUDDY_MEMO_GET:
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
319 bytes += qq_get32(&rcv_uid, data+bytes);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
320 purple_debug_info("QQ", "rcv_uid=%u\n", rcv_uid);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
321 bytes += qq_get8(&unk1_8, data+bytes);
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
322 purple_debug_info("QQ", "unk1_8=0x%02X\n", unk1_8);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
323 segments = g_new0(gchar*, QQ_MEMO_SIZE);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
324 for (index = 0; index < QQ_MEMO_SIZE; index++) {
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
325 /* get utf8 string */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
326 bytes += qq_get_vstr(&segments[index], QQ_CHARSET_DEFAULT, data+bytes);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
327 /*
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
328 purple_debug_info("QQ", "bytes:%d, seg:%s\n", bytes, segments[index]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
329 */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
330 }
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
331
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
332 /* common action, update buddy memo */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
333 update_buddy_memo(gc, rcv_uid, segments[QQ_MEMO_ALIAS]);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
334
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
335 /* memo is thing that we regard our buddy as, so we need one more buddy_uid */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
336 memo_modify_dialogue(gc, rcv_uid, segments, action);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
337 break;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
338 default:
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
339 purple_debug_info("QQ", "received an UNKNOWN memo cmd!!!\n");
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
340 break;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
341 }
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
342 }
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
343
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
344 /* request buddy memo */
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
345 void qq_request_buddy_memo(PurpleConnection *gc, guint32 bd_uid, guint32 update_class, guint32 action)
25655
8c6d7250f64a 2009.02.09 - Chengming Wang <tiger2007532246(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents:
diff changeset
346 {
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
347 guint8 raw_data[16] = {0};
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
348 gint bytes;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
349
25659
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
350 purple_debug_info("QQ", "qq_request_buddy_memo, buddy uid=%u, update_class=%u\n",
2bbb8a5e37e5 2009.02.24 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25658
diff changeset
351 bd_uid, update_class);
25657
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
352 g_return_if_fail(NULL != gc);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
353 /* '0' is ok
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
354 g_return_if_fail(uid != 0);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
355 */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
356 bytes = 0;
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
357 bytes += qq_put8(raw_data+bytes, QQ_BUDDY_MEMO_GET);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
358 bytes += qq_put32(raw_data+bytes, bd_uid);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
359 /*
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
360 qq_show_packet("MEMO REQUEST", raw_data, bytes);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
361 */
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
362
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
363 qq_send_cmd_mess(gc, QQ_CMD_BUDDY_MEMO, (guint8*)raw_data, bytes, update_class, action);
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
364 }
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
365
4766831442b0 2009.02.21 - flos <lonicerae(at)gmail.com>
SHiNE CsyFeK <csyfek@gmail.com>
parents: 25656
diff changeset
366

mercurial