summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2024-09-18 12:28:58 +0200
committerGravatar default2024-09-18 12:28:58 +0200
commit53f339abf6c3be5dd56b056f1870e8b1d96c062c (patch)
treec0e9eac132477fce2598f5146ee43edfe27e85fc
parentStarted support for CSV data export. (diff)
downloadsnac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.tar.gz
snac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.tar.xz
snac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.zip
Also export lists.csv.
Diffstat (limited to '')
-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)
618 } 618 }
619 else 619 else
620 snac_log(user, xs_fmt("Cannot create file %s", fn)); 620 snac_log(user, xs_fmt("Cannot create file %s", fn));
621
622 fn = "lists.csv";
623 if ((f = fopen(fn, "w")) != NULL) {
624 snac_log(user, xs_fmt("Creating %s...", fn));
625
626 xs *lol = list_maint(user, NULL, 0);
627 const xs_list *li;
628
629 xs_list_foreach(lol, li) {
630 const char *lid = xs_list_get(li, 0);
631 const char *ltitle = xs_list_get(li, 1);
632
633 xs *actors = list_content(user, lid, NULL, 0);
634 const char *md5;
635
636 xs_list_foreach(actors, md5) {
637 xs *actor = NULL;
638
639 if (valid_status(object_get_by_md5(md5, &actor))) {
640 const char *id = xs_dict_get(actor, "id");
641 xs *uid = NULL;
642 int status;
643
644 if (valid_status((status = webfinger_request(id, NULL, &uid))))
645 fprintf(f, "%s,%s\n", ltitle, uid);
646 else
647 snac_log(user, xs_fmt("Error resolving list member %s %d", id, status));
648 }
649 }
650 }
651
652 fclose(f);
653 }
654 else
655 snac_log(user, xs_fmt("Cannot create file %s", fn));
621} 656}
622 657
623 658