1 /* liblivejournal - a client library for LiveJournal.
2 * Copyright (C) 2003-2004 Evan Martin <martine@danga.com>
7 #include "liblj/editfriendgroups.h"
10 static void parse_result (LJVerb
*verb
) {
12 LJEditFriendGroups
*ef
= (LJEditFriendGroups
*)verb
;
14 ef
->addcount
= lj_result_get_int(verb
->result
, "friends_added");
15 if (ef
->addcount
> 0) {
16 ef
->added
= g_new0(LJFriend
, ef
->addcount
);
17 for (i
= 0; i
< ef
->addcount
; i
++) {
18 ef
->added
[i
].username
= lj_result_getf(verb
->result
, "friend_%d_user", i
+1);
19 ef
->added
[i
].fullname
= lj_result_getf(verb
->result
, "friend_%d_name", i
+1);
25 LJEditFriendGroups
*lj_editfriendgroups_new (LJUser
*user
) {
26 LJEditFriendGroups
*editfriendgroups
= g_new0(LJEditFriendGroups
, 1);
27 LJVerb
*verb
= (LJVerb
*)editfriendgroups
;
29 lj_verb_init(verb
, user
, "editfriendgroups", FALSE
, parse_result
);
31 return editfriendgroups
;
35 void lj_editfriendgroups_add_delete (LJEditFriendGroups
*efg
, int id
) {
36 char *key
= g_strdup_printf("efg_delete_%d", id
);
37 lj_request_add(((LJVerb
*)efg
)->request
, key
, "1");
42 void lj_editfriendgroups_add_groupmask (LJEditFriendGroups
*efg
, const char *username
, guint32 groupmask
) {
45 key
= g_strdup_printf("editfriend_groupmask_%s", username
);
46 lj_request_add_int(((LJVerb
*)efg
)->request
, key
, groupmask
);
51 void lj_editfriendgroups_add_edit (LJEditFriendGroups
*efg
, int id
, const char *name
, gboolean ispublic
) {
54 key
= g_strdup_printf("efg_set_%d_name", id
);
55 lj_request_add(((LJVerb
*)efg
)->request
, key
, name
);
57 key
= g_strdup_printf("efg_set_%d_public", id
);
58 lj_request_add(((LJVerb
*)efg
)->request
, key
, ispublic
? "1" : "0");
63 void lj_editfriendgroups_free (LJEditFriendGroups
*ef
) {
66 lj_verb_free_contents((LJVerb
*)ef
);
68 for (i
= 0; i
< ef
->addcount
; i
++) {
69 g_free(ef
->added
[i
].username
);
70 g_free(ef
->added
[i
].fullname
);