diff options
| author | 2024-09-18 12:28:58 +0200 | |
|---|---|---|
| committer | 2024-09-18 12:28:58 +0200 | |
| commit | 53f339abf6c3be5dd56b056f1870e8b1d96c062c (patch) | |
| tree | c0e9eac132477fce2598f5146ee43edfe27e85fc | |
| parent | Started support for CSV data export. (diff) | |
| download | penes-snac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.tar.gz penes-snac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.tar.xz penes-snac2-53f339abf6c3be5dd56b056f1870e8b1d96c062c.zip | |
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) | |||
| 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 | ||