diff options
| author | default <nobody@localhost> | 2024-09-18 12:28:58 +0200 |
|---|---|---|
| committer | default <nobody@localhost> | 2024-09-18 12:28:58 +0200 |
| commit | 53f339abf6c3be5dd56b056f1870e8b1d96c062c (patch) | |
| tree | c0e9eac132477fce2598f5146ee43edfe27e85fc | |
| parent | 748d60497fb6cdcc3fbc0a9dbd3bc812045ba85f (diff) | |
Also export lists.csv.
| -rw-r--r-- | utils.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -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)); } |