commit 9b86360

default  ·  2025-04-18 07:12:44 +0000 UTC
parent 1ebf2a2
Renamed command-line option to 'list_add' and added new 'list_del'.
1 files changed,  +31, -3
M main.c
M main.c
+31, -3
 1@@ -63,7 +63,8 @@ int usage(void)
 2     printf("list_members {basedir} {uid} {name}  Returns the list of accounts inside a list\n");
 3     printf("create_list {basedir} {uid} {name}   Creates a new list\n");
 4     printf("delete_list {basedir} {uid} {name}   Deletes an existing list\n");
 5-    printf("add_to_list {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n");
 6+    printf("list_add {basedir} {uid} {name} {acct} Adds an account (@user@host or actor url) to a list\n");
 7+    printf("list_del {basedir} {uid} {name} {acct} Deletes an account (@user@host or actor url) from a list\n");
 8 
 9     return 1;
10 }
11@@ -348,7 +349,7 @@ int main(int argc, char *argv[])
12         return 0;
13     }
14 
15-    if (strcmp(cmd, "add_to_list") == 0) { /** **/
16+    if (strcmp(cmd, "list_add") == 0) { /** **/
17         const char *account = GET_ARGV();
18 
19         if (account != NULL) {
20@@ -362,7 +363,34 @@ int main(int argc, char *argv[])
21                     xs *md5 = xs_md5_hex(actor, strlen(actor));
22 
23                     list_content(&snac, lid, md5, 1);
24-                    printf("Actor %s (%s) added to list %s (%s)\n", actor, uid, url, lid);
25+                    printf("Actor %s (%s) added to list '%s' (%s)\n", actor, uid, url, lid);
26+                }
27+                else
28+                    fprintf(stderr, "Cannot resolve account '%s'\n", account);
29+            }
30+            else
31+                fprintf(stderr, "Cannot find a list named '%s'\n", url);
32+
33+        }
34+
35+        return 0;
36+    }
37+
38+    if (strcmp(cmd, "list_del") == 0) { /** **/
39+        const char *account = GET_ARGV();
40+
41+        if (account != NULL) {
42+            xs *lid = list_maint(&snac, url, 4);
43+
44+            if (lid != NULL) {
45+                xs *actor = NULL;
46+                xs *uid = NULL;
47+
48+                if (valid_status(webfinger_request(account, &actor, &uid))) {
49+                    xs *md5 = xs_md5_hex(actor, strlen(actor));
50+
51+                    list_content(&snac, lid, md5, 2);
52+                    printf("Actor %s (%s) deleted from list '%s' (%s)\n", actor, uid, url, lid);
53                 }
54                 else
55                     fprintf(stderr, "Cannot resolve account '%s'\n", account);