diff options
| author | 2024-12-05 17:16:57 +0100 | |
|---|---|---|
| committer | 2024-12-05 17:16:57 +0100 | |
| commit | 7e743e8918e0a4d058217ec33ab745b1f1a97335 (patch) | |
| tree | 9aaed93dff31ccfbc63b4302dd8531a47c11f9bf /utils.c | |
| parent | Merge remote-tracking branch 'upstream/master' (diff) | |
| parent | Updated RELEASE_NOTES. (diff) | |
| download | penes-snac2-7e743e8918e0a4d058217ec33ab745b1f1a97335.tar.gz penes-snac2-7e743e8918e0a4d058217ec33ab745b1f1a97335.tar.xz penes-snac2-7e743e8918e0a4d058217ec33ab745b1f1a97335.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'utils.c')
| -rw-r--r-- | utils.c | 53 |
1 files changed, 46 insertions, 7 deletions
| @@ -670,20 +670,18 @@ void export_csv(snac *user) | |||
| 670 | } | 670 | } |
| 671 | 671 | ||
| 672 | 672 | ||
| 673 | void import_csv(snac *user) | 673 | void import_blocked_accounts_csv(snac *user, const char *fn) |
| 674 | /* import CSV files from Mastodon */ | 674 | /* imports a Mastodon CSV file of blocked accounts */ |
| 675 | { | 675 | { |
| 676 | FILE *f; | 676 | FILE *f; |
| 677 | const char *fn; | ||
| 678 | 677 | ||
| 679 | fn = "blocked_accounts.csv"; | ||
| 680 | if ((f = fopen(fn, "r")) != NULL) { | 678 | if ((f = fopen(fn, "r")) != NULL) { |
| 681 | snac_log(user, xs_fmt("Importing from %s...", fn)); | 679 | snac_log(user, xs_fmt("Importing from %s...", fn)); |
| 682 | 680 | ||
| 683 | while (!feof(f)) { | 681 | while (!feof(f)) { |
| 684 | xs *l = xs_strip_i(xs_readline(f)); | 682 | xs *l = xs_strip_i(xs_readline(f)); |
| 685 | 683 | ||
| 686 | if (*l) { | 684 | if (*l && strchr(l, '@') != NULL) { |
| 687 | xs *url = NULL; | 685 | xs *url = NULL; |
| 688 | xs *uid = NULL; | 686 | xs *uid = NULL; |
| 689 | 687 | ||
| @@ -704,8 +702,14 @@ void import_csv(snac *user) | |||
| 704 | } | 702 | } |
| 705 | else | 703 | else |
| 706 | snac_log(user, xs_fmt("Cannot open file %s", fn)); | 704 | snac_log(user, xs_fmt("Cannot open file %s", fn)); |
| 705 | } | ||
| 706 | |||
| 707 | |||
| 708 | void import_following_accounts_csv(snac *user, const char *fn) | ||
| 709 | /* imports a Mastodon CSV file of accounts to follow */ | ||
| 710 | { | ||
| 711 | FILE *f; | ||
| 707 | 712 | ||
| 708 | fn = "following_accounts.csv"; | ||
| 709 | if ((f = fopen(fn, "r")) != NULL) { | 713 | if ((f = fopen(fn, "r")) != NULL) { |
| 710 | snac_log(user, xs_fmt("Importing from %s...", fn)); | 714 | snac_log(user, xs_fmt("Importing from %s...", fn)); |
| 711 | 715 | ||
| @@ -757,8 +761,14 @@ void import_csv(snac *user) | |||
| 757 | } | 761 | } |
| 758 | else | 762 | else |
| 759 | snac_log(user, xs_fmt("Cannot open file %s", fn)); | 763 | snac_log(user, xs_fmt("Cannot open file %s", fn)); |
| 764 | } | ||
| 765 | |||
| 766 | |||
| 767 | void import_list_csv(snac *user, const char *fn) | ||
| 768 | /* imports a Mastodon CSV file list */ | ||
| 769 | { | ||
| 770 | FILE *f; | ||
| 760 | 771 | ||
| 761 | fn = "lists.csv"; | ||
| 762 | if ((f = fopen(fn, "r")) != NULL) { | 772 | if ((f = fopen(fn, "r")) != NULL) { |
| 763 | snac_log(user, xs_fmt("Importing from %s...", fn)); | 773 | snac_log(user, xs_fmt("Importing from %s...", fn)); |
| 764 | 774 | ||
| @@ -782,6 +792,21 @@ void import_csv(snac *user) | |||
| 782 | 792 | ||
| 783 | list_content(user, list_id, actor_md5, 1); | 793 | list_content(user, list_id, actor_md5, 1); |
| 784 | snac_log(user, xs_fmt("Added %s to list %s", url, lname)); | 794 | snac_log(user, xs_fmt("Added %s to list %s", url, lname)); |
| 795 | |||
| 796 | if (!following_check(user, url)) { | ||
| 797 | xs *msg = msg_follow(user, url); | ||
| 798 | |||
| 799 | if (msg == NULL) { | ||
| 800 | snac_log(user, xs_fmt("Cannot follow %s -- server down?", acct)); | ||
| 801 | continue; | ||
| 802 | } | ||
| 803 | |||
| 804 | following_add(user, url, msg); | ||
| 805 | |||
| 806 | enqueue_output_by_actor(user, msg, url, 0); | ||
| 807 | |||
| 808 | snac_log(user, xs_fmt("Following %s", url)); | ||
| 809 | } | ||
| 785 | } | 810 | } |
| 786 | else | 811 | else |
| 787 | snac_log(user, xs_fmt("Webfinger error while adding %s to list %s", acct, lname)); | 812 | snac_log(user, xs_fmt("Webfinger error while adding %s to list %s", acct, lname)); |
| @@ -793,6 +818,20 @@ void import_csv(snac *user) | |||
| 793 | } | 818 | } |
| 794 | else | 819 | else |
| 795 | snac_log(user, xs_fmt("Cannot open file %s", fn)); | 820 | snac_log(user, xs_fmt("Cannot open file %s", fn)); |
| 821 | } | ||
| 822 | |||
| 823 | |||
| 824 | void import_csv(snac *user) | ||
| 825 | /* import CSV files from Mastodon */ | ||
| 826 | { | ||
| 827 | FILE *f; | ||
| 828 | const char *fn; | ||
| 829 | |||
| 830 | import_blocked_accounts_csv(user, "blocked_accounts.csv"); | ||
| 831 | |||
| 832 | import_following_accounts_csv(user, "following_accounts.csv"); | ||
| 833 | |||
| 834 | import_list_csv(user, "lists.csv"); | ||
| 796 | 835 | ||
| 797 | fn = "bookmarks.csv"; | 836 | fn = "bookmarks.csv"; |
| 798 | if ((f = fopen(fn, "r")) != NULL) { | 837 | if ((f = fopen(fn, "r")) != NULL) { |