summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c53
1 files changed, 46 insertions, 7 deletions
diff --git a/utils.c b/utils.c
index 4f5ac55..df3b55d 100644
--- a/utils.c
+++ b/utils.c
@@ -670,20 +670,18 @@ void export_csv(snac *user)
670} 670}
671 671
672 672
673void import_csv(snac *user) 673void 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
708void 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
767void 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
824void 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) {