we don't really need to build src/liblj/ as library; and we don't need to write each...
[k8lowj.git] / src / liblj / editfriends.c
blobee3583bb14cc765557bc2e79a9a7d79492822e2a
1 /* liblivejournal - a client library for LiveJournal.
2 * Copyright (C) 2003-2004 Evan Martin <martine@danga.com>
3 */
5 #include <glib.h>
7 #include "liblj/editfriends.h"
10 static void parse_result (LJVerb *verb) {
11 int i;
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);
31 return editfriends;
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");
38 g_free(key);
42 void lj_editfriends_add_friend (LJEditFriends *ef, const char *username, const char *fg, const char *bg) {
43 char *key;
45 ef->addcount++;
46 key = g_strdup_printf("editfriend_add_%d_user", ef->addcount);
47 lj_request_add(((LJVerb*)ef)->request, key, username);
48 g_free(key);
50 if (fg) {
51 key = g_strdup_printf("editfriend_add_%d_fg", ef->addcount);
52 lj_request_add(((LJVerb*)ef)->request, key, fg);
53 g_free(key);
55 if (bg) {
56 key = g_strdup_printf("editfriend_add_%d_bg", ef->addcount);
57 lj_request_add(((LJVerb*)ef)->request, key, bg);
58 g_free(key);
63 void lj_editfriends_free (LJEditFriends *ef) {
64 int i;
66 lj_verb_free_contents((LJVerb *)ef);
67 if (ef->added) {
68 for (i = 0; i < ef->addcount; i++) {
69 g_free(ef->added[i].username);
70 g_free(ef->added[i].fullname);
72 g_free(ef->added);
74 g_free(ef);