commit 0f3c60d
default
·
2024-09-18 08:59:42 +0000 UTC
parent 3155a80
New command-line command 'aka'.
1 files changed,
+27,
-0
M
main.c
M
main.c
+27,
-0
1@@ -47,6 +47,7 @@ int usage(void)
2 printf("unlimit {basedir} {uid} {actor} Unlimits an actor\n");
3 printf("verify_links {basedir} {uid} Verifies a user's links (in the metadata)\n");
4 printf("search {basedir} {uid} {regex} Searches posts by content\n");
5+ printf("aka {basedir} {uid} {actor} Sets actor (@user@host or url) as an a.k.a.\n");
6
7 return 1;
8 }
9@@ -269,6 +270,32 @@ int main(int argc, char *argv[])
10 if ((url = GET_ARGV()) == NULL)
11 return usage();
12
13+ if (strcmp(cmd, "aka") == 0) { /** **/
14+ xs *actor = NULL;
15+ xs *uid = NULL;
16+ int status = HTTP_STATUS_OK;
17+
18+ if (*url == '\0')
19+ actor = xs_dup("");
20+ else
21+ status = webfinger_request(url, &actor, &uid);
22+
23+ if (valid_status(status)) {
24+ snac.config = xs_dict_set(snac.config, "aka", actor);
25+
26+ xs *fn = xs_fmt("%s/user.json", snac.basedir);
27+ FILE *f;
28+ if ((f = fopen(fn, "w")) != NULL) {
29+ xs_json_dump(snac.config, 4, f);
30+ fclose(f);
31+ }
32+ }
33+ else
34+ snac_log(&snac, xs_fmt("Webfinger error for %s %d", url, status));
35+
36+ return 0;
37+ }
38+
39 if (strcmp(cmd, "webfinger_s") == 0) { /** **/
40 xs *actor = NULL;
41 xs *uid = NULL;