annotate libpurple/protocols/qq/buddy_memo.c @ 25150:d673ccc44a6e

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