aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-09-18 12:28:58 +0200
committerdefault <nobody@localhost>2024-09-18 12:28:58 +0200
commit53f339abf6c3be5dd56b056f1870e8b1d96c062c (patch)
treec0e9eac132477fce2598f5146ee43edfe27e85fc
parent748d60497fb6cdcc3fbc0a9dbd3bc812045ba85f (diff)
Also export lists.csv.
-rw-r--r--utils.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index c64829d..49fd7e7 100644
--- a/utils.c
+++ b/utils.c
@@ -618,6 +618,41 @@ void export_csv(snac *user)
}
else
snac_log(user, xs_fmt("Cannot create file %s", fn));
+
+ fn = "lists.csv";
+ if ((f = fopen(fn, "w")) != NULL) {
+ snac_log(user, xs_fmt("Creating %s...", fn));
+
+ xs *lol = list_maint(user, NULL, 0);
+ const xs_list *li;
+
+ xs_list_foreach(lol, li) {
+ const char *lid = xs_list_get(li, 0);
+ const char *ltitle = xs_list_get(li, 1);
+
+ xs *actors = list_content(user, lid, NULL, 0);
+ const char *md5;
+
+ xs_list_foreach(actors, md5) {
+ xs *actor = NULL;
+
+ if (valid_status(object_get_by_md5(md5, &actor))) {
+ const char *id = xs_dict_get(actor, "id");
+ xs *uid = NULL;
+ int status;
+
+ if (valid_status((status = webfinger_request(id, NULL, &uid))))
+ fprintf(f, "%s,%s\n", ltitle, uid);
+ else
+ snac_log(user, xs_fmt("Error resolving list member %s %d", id, status));
+ }
+ }
+ }
+
+ fclose(f);
+ }
+ else
+ snac_log(user, xs_fmt("Cannot create file %s", fn));
}