1 /* liblivejournal - a client library for LiveJournal.
2 * Copyright (C) 2003-2004 Evan Martin <martine@danga.com>
7 #include "liblj/editfriends.h"
10 static void parse_result (LJVerb
*verb
) {
12 LJEditFriends
*ef
= (LJEditFriends
*)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
= g_strdup(lj_result_getf(verb
->result
, "friend_%d_user", i
+1));
19 ef
->added
[i
].fullname
= g_strdup(lj_result_getf(verb
->result
, "friend_%d_name", i
+1));
25 LJEditFriends
*lj_editfriends_new (LJUser
*user
) {
26 LJEditFriends
*editfriends
= g_new0(LJEditFriends
, 1);
27 LJVerb
*verb
= (LJVerb
*)editfriends
;
29 lj_verb_init(verb
, user
, "editfriends", FALSE
, parse_result
);
35 void lj_editfriends_add_delete (LJEditFriends
*ef
, const char *username
) {
36 char *key
= g_strdup_printf("editfriend_delete_%s", username
);
37 lj_request_add(((LJVerb
*)ef
)->request
, key
, "1");
42 void lj_editfriends_add_friend (LJEditFriends
*ef
, const char *username
, const char *fg
, const char *bg
) {
46 key
= g_strdup_printf("editfriend_add_%d_user", ef
->addcount
);
47 lj_request_add(((LJVerb
*)ef
)->request
, key
, username
);
51 key
= g_strdup_printf("editfriend_add_%d_fg", ef
->addcount
);
52 lj_request_add(((LJVerb
*)ef
)->request
, key
, fg
);
56 key
= g_strdup_printf("editfriend_add_%d_bg", ef
->addcount
);
57 lj_request_add(((LJVerb
*)ef
)->request
, key
, bg
);
63 void lj_editfriends_free (LJEditFriends
*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
);