we don't really need to build src/liblj/ as library; and we don't need to write each...
[k8lowj.git] / src / liblj / editfriendgroups.c
blob1f71816fb5485ad4075a34bd70979a082bf0e1b2
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/editfriendgroups.h"
10 static void parse_result (LJVerb *verb) {
11 int i;
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");
38 g_free(key);
42 void lj_editfriendgroups_add_groupmask (LJEditFriendGroups *efg, const char *username, guint32 groupmask) {
43 char *key;
45 key = g_strdup_printf("editfriend_groupmask_%s", username);
46 lj_request_add_int(((LJVerb*)efg)->request, key, groupmask);
47 g_free(key);
51 void lj_editfriendgroups_add_edit (LJEditFriendGroups *efg, int id, const char *name, gboolean ispublic) {
52 char *key;
54 key = g_strdup_printf("efg_set_%d_name", id);
55 lj_request_add(((LJVerb*)efg)->request, key, name);
56 g_free(key);
57 key = g_strdup_printf("efg_set_%d_public", id);
58 lj_request_add(((LJVerb*)efg)->request, key, ispublic ? "1" : "0");
59 g_free(key);
63 void lj_editfriendgroups_free (LJEditFriendGroups *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);