Pārlūkot izejas kodu

pleroma blocking script

Bob Mottram 7 gadus atpakaļ
vecāks
revīzija
ab2cba8075
1 mainītis faili ar 29 papildinājumiem un 0 dzēšanām
  1. 29
    0
      src/freedombone-app-pleroma

+ 29
- 0
src/freedombone-app-pleroma Parādīt failu

59
 # Number of months after which posts expire
59
 # Number of months after which posts expire
60
 PLEROMA_EXPIRE_MONTHS=3
60
 PLEROMA_EXPIRE_MONTHS=3
61
 pleroma_expire_posts_script=/usr/bin/pleroma-expire-posts
61
 pleroma_expire_posts_script=/usr/bin/pleroma-expire-posts
62
+blocking_script_file=/usr/bin/pleroma-blocking
62
 
63
 
63
 pleroma_variables=(ONION_ONLY
64
 pleroma_variables=(ONION_ONLY
64
                    PLEROMA_DOMAIN_NAME
65
                    PLEROMA_DOMAIN_NAME
71
                    MY_EMAIL_ADDRESS
72
                    MY_EMAIL_ADDRESS
72
                    MY_USERNAME)
73
                    MY_USERNAME)
73
 
74
 
75
+function create_pleroma_blocklist {
76
+    echo '#!/bin/bash' > $blocking_script_file
77
+    echo "if [ ! -f ${PROJECT_NAME}-firewall-domains.cfg ]; then" >> $blocking_script_file
78
+    echo '    exit 0' >> $blocking_script_file
79
+    echo 'fi' >> $blocking_script_file
80
+    echo 'cd /etc/postgresql' >> $blocking_script_file
81
+    echo 'while read blocked; do' >> $blocking_script_file
82
+    echo '    if [[ "$blocked" == *"."* || "$blocked" == *"@"* ]]; then' >> $blocking_script_file
83
+    echo '        if [ ${#blocked} -gt 4 ]; then' >> $blocking_script_file
84
+    echo "            sudo -u postgres psql -d pleroma -c \"DELETE FROM objects WHERE data->>'content' ilike '%\${blocked}%' or data->>'actor' ilike '%\${blocked}%'\"" >> $blocking_script_file
85
+    echo '        fi' >> $blocking_script_file
86
+    echo '    fi' >> $blocking_script_file
87
+    echo "done <${PROJECT_NAME}-firewall-domains.cfg" >> $blocking_script_file
88
+    chmod +x $blocking_script_file
89
+
90
+    if ! grep -q "$blocking_script_file" /etc/crontab; then
91
+        echo "#*/1            * *   *   *   root $blocking_script_file > /dev/null" >> /etc/crontab
92
+    fi
93
+}
94
+
74
 function expire_pleroma_posts {
95
 function expire_pleroma_posts {
75
     domain_name=$1
96
     domain_name=$1
76
     expire_months=$3
97
     expire_months=$3
433
                 write_config_param "PLEROMA_EXPIRE_MONTHS" "$PLEROMA_EXPIRE_MONTHS"
454
                 write_config_param "PLEROMA_EXPIRE_MONTHS" "$PLEROMA_EXPIRE_MONTHS"
434
 
455
 
435
                 expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
456
                 expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
457
+                create_pleroma_blocklist
436
 
458
 
437
                 dialog --title $"Set Pleroma post expiry period" \
459
                 dialog --title $"Set Pleroma post expiry period" \
438
                        --msgbox $"Expiry period set to $PLEROMA_EXPIRE_MONTHS months" 6 60
460
                        --msgbox $"Expiry period set to $PLEROMA_EXPIRE_MONTHS months" 6 60
592
     if [ ! -f $pleroma_expire_posts_script ]; then
614
     if [ ! -f $pleroma_expire_posts_script ]; then
593
         expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
615
         expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
594
     fi
616
     fi
617
+    if [ ! -f $blocking_script_file ]; then
618
+        create_pleroma_blocklist
619
+    fi
595
 
620
 
596
     CURR_PLEROMA_COMMIT=$(get_completion_param "pleroma commit")
621
     CURR_PLEROMA_COMMIT=$(get_completion_param "pleroma commit")
597
     if [[ "$CURR_PLEROMA_COMMIT" == "$PLEROMA_COMMIT" ]]; then
622
     if [[ "$CURR_PLEROMA_COMMIT" == "$PLEROMA_COMMIT" ]]; then
606
     pleroma_recompile
631
     pleroma_recompile
607
 
632
 
608
     expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
633
     expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
634
+    create_pleroma_blocklist
609
 }
635
 }
610
 
636
 
611
 function backup_local_pleroma {
637
 function backup_local_pleroma {
752
     remove_completion_param install_pleroma
778
     remove_completion_param install_pleroma
753
     sed -i '/pleroma domain/d' $COMPLETION_FILE
779
     sed -i '/pleroma domain/d' $COMPLETION_FILE
754
     sed -i '/pleroma commit/d' $COMPLETION_FILE
780
     sed -i '/pleroma commit/d' $COMPLETION_FILE
781
+    sed -i "/$blocking_script_file/d" /etc/crontab
755
 
782
 
756
     function_check remove_ddns_domain
783
     function_check remove_ddns_domain
757
     remove_ddns_domain $PLEROMA_DOMAIN_NAME
784
     remove_ddns_domain $PLEROMA_DOMAIN_NAME
964
         fi
991
         fi
965
     fi
992
     fi
966
 
993
 
994
+    create_pleroma_blocklist
995
+
967
     # daemon
996
     # daemon
968
     echo '[Unit]' > /etc/systemd/system/pleroma.service
997
     echo '[Unit]' > /etc/systemd/system/pleroma.service
969
     echo 'Description=Pleroma social network' >> /etc/systemd/system/pleroma.service
998
     echo 'Description=Pleroma social network' >> /etc/systemd/system/pleroma.service