浏览代码

Merge branch 'stretch' of https://github.com/bashrc/freedombone

Bob Mottram 7 年前
父节点
当前提交
ca34c422a9
共有 2 个文件被更改,包括 67 次插入15 次删除
  1. 59
    11
      src/freedombone-app-pleroma
  2. 8
    4
      src/freedombone-utils-gnusocialtools

+ 59
- 11
src/freedombone-app-pleroma 查看文件

@@ -47,7 +47,7 @@ PLEROMA_CODE=
47 47
 PLEROMA_PORT=4000
48 48
 PLEROMA_ONION_PORT=8011
49 49
 PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
50
-PLEROMA_COMMIT='c1fa1e8844c8eae1ad7638a2d7f9d00e8cd07ce8'
50
+PLEROMA_COMMIT='2f291576e4eef95e6867348e24bc526058518095'
51 51
 PLEROMA_ADMIN_PASSWORD=
52 52
 PLEROMA_DIR=/etc/pleroma
53 53
 PLEROMA_SECRET_KEY=""
@@ -85,19 +85,42 @@ function create_pleroma_blocklist {
85 85
     echo '    fi' >> $blocking_script_file
86 86
     echo 'fi' >> $blocking_script_file
87 87
     echo 'touch /tmp/pleroma-blocking.lock' >> $blocking_script_file
88
-    echo 'cd /etc/postgresql' >> $blocking_script_file
88
+    echo 'objects_query="DELETE FROM objects WHERE"' >> $blocking_script_file
89
+    echo 'objects_updated=' >> $blocking_script_file
90
+    echo 'users_query="DELETE FROM users WHERE"' >> $blocking_script_file
91
+    echo 'websub_server_subscriptions_query="DELETE FROM websub_server_subscriptions WHERE"' >> $blocking_script_file
92
+    echo 'websub_server_subscriptions_updated=' >> $blocking_script_file
89 93
     echo 'while read blocked; do' >> $blocking_script_file
90 94
     echo '    if [[ "$blocked" == *"."* || "$blocked" == *"@"* ]]; then' >> $blocking_script_file
91 95
     echo '        if [ ${#blocked} -gt 4 ]; then' >> $blocking_script_file
92
-    echo "            sudo -u postgres psql -d pleroma -c \"DELETE FROM objects WHERE data->>'content' ilike '%\${blocked}%' or data->>'actor' ilike '%\${blocked}%' or data->>'to' ilike '%\${blocked}%' or data->>'id' ilike '%\${blocked}%' or data->>'external_url' ilike '%\${blocked}%'\"" >> $blocking_script_file
93
-    echo "            sudo -u postgres psql -d pleroma -c \"DELETE FROM users WHERE nickname ilike '%\${blocked}%'\"" >> $blocking_script_file
96
+    echo '          if [ $objects_updated ]; then' >> $blocking_script_file
97
+    echo '              objects_query="${objects_query} or"' >> $blocking_script_file
98
+    echo '              users_query="${users_query} or"' >> $blocking_script_file
99
+    echo '          fi' >> $blocking_script_file
100
+    echo "          objects_query=\"\${objects_query} data->>'content' ilike '%\${blocked}%' or data->>'actor' ilike '%\${blocked}%' or data->>'to' ilike '%\${blocked}%' or data->>'id' ilike '%\${blocked}%' or data->>'external_url' ilike '%\${blocked}%'\"" >> $blocking_script_file
101
+    echo "          users_query=\"\${users_query} nickname ilike '%\${blocked}%'\"" >> $blocking_script_file
102
+    echo '          objects_updated=1' >> $blocking_script_file
94 103
     echo '            if [[ "$blocked" != *"@"* ]]; then' >> $blocking_script_file
95
-    echo "                sudo -u postgres psql -d pleroma -c \"DELETE FROM websub_server_subscriptions WHERE callback like '%\${blocked}%'\"" >> $blocking_script_file
104
+    echo '              if [ $websub_server_subscriptions_updated ]; then' >> $blocking_script_file
105
+    echo '                  websub_server_subscriptions_query="${websub_server_subscriptions_query} or"' >> $blocking_script_file
106
+    echo '              fi' >> $blocking_script_file
107
+    echo "              websub_server_subscriptions_query=\"\${websub_server_subscriptions_query} callback like '%\${blocked}%'\"" >> $blocking_script_file
108
+    echo '              websub_server_subscriptions_updated=1' >> $blocking_script_file
96 109
     echo '            fi' >> $blocking_script_file
97 110
     echo '        fi' >> $blocking_script_file
98 111
     echo '    fi' >> $blocking_script_file
99
-    echo "done </root/${PROJECT_NAME}-firewall-domains.cfg" >> $blocking_script_file
112
+    echo 'done </root/freedombone-firewall-domains.cfg' >> $blocking_script_file
113
+    echo '' >> $blocking_script_file
114
+    echo 'cd /etc/postgresql' >> $blocking_script_file
115
+    echo 'if [ $objects_updated ]; then' >> $blocking_script_file
116
+    echo '    sudo -u postgres psql -d pleroma -c "$objects_query"' >> $blocking_script_file
117
+    echo '    sudo -u postgres psql -d pleroma -c "$users_query"' >> $blocking_script_file
118
+    echo 'fi' >> $blocking_script_file
119
+    echo 'if [ $websub_server_subscriptions_updated ]; then' >> $blocking_script_file
120
+    echo '    sudo -u postgres psql -d pleroma -c "$websub_server_subscriptions_query"' >> $blocking_script_file
121
+    echo 'fi' >> $blocking_script_file
100 122
     echo 'rm /tmp/pleroma-blocking.lock' >> $blocking_script_file
123
+
101 124
     chmod +x $blocking_script_file
102 125
 
103 126
     if ! grep -q "$blocking_script_file" /etc/crontab; then
@@ -441,6 +464,7 @@ function pleroma_set_background_image {
441 464
                 write_config_param "PLEROMA_BACKGROUND_IMAGE_URL" "$PLEROMA_BACKGROUND_IMAGE_URL"
442 465
                 if [[ $(pleroma_set_background_image_from_url $PLEROMA_DIR "$PLEROMA_DOMAIN_NAME" "$PLEROMA_BACKGROUND_IMAGE_URL" "$PLEROMA_TITLE" | tail -n 1) == "0" ]]; then
443 466
                     pleroma_recompile
467
+
444 468
                     dialog --title $"Set Pleroma login background" \
445 469
                            --msgbox $"The background image has been set" 6 60
446 470
                 fi
@@ -521,11 +545,11 @@ function pleroma_disable_registrations {
521 545
            --yesno $"\nDo you wish to disable new registrations?" 10 60
522 546
     sel=$?
523 547
     case $sel in
524
-        0) sed -i 's|registrations_open:.*|registrations_open: false|g' $PLEROMA_DIR/config/config.exs
525
-           sed -i 's|"registrationOpen":.*|"registrationOpen": false|g' $PLEROMA_DIR/priv/static/static/config.json
548
+        0) sed -i 's|registrations_open:.*|registrations_open: false,|g' $PLEROMA_DIR/config/config.exs
549
+           sed -i 's|"registrationOpen":.*|"registrationOpen": false,|g' $PLEROMA_DIR/priv/static/static/config.json
526 550
            ;;
527
-        1) sed -i 's|registrations_open:.*|registrations_open: true|g' $PLEROMA_DIR/config/config.exs
528
-           sed -i 's|"registrationOpen":.*|"registrationOpen": true|g' $PLEROMA_DIR/priv/static/static/config.json
551
+        1) sed -i 's|registrations_open:.*|registrations_open: true,|g' $PLEROMA_DIR/config/config.exs
552
+           sed -i 's|"registrationOpen":.*|"registrationOpen": true,|g' $PLEROMA_DIR/priv/static/static/config.json
529 553
            ;;
530 554
         255) return;;
531 555
     esac
@@ -677,15 +701,38 @@ function upgrade_pleroma {
677 701
         return
678 702
     fi
679 703
 
704
+    # make a copy of the configuration
705
+    cp $PLEROMA_DIR/priv/static/static/config.json $PLEROMA_DIR/priv/static/static/config_prev.json
706
+
707
+    if [ -f $PLEROMA_DIR/config/emoji.txt ]; then
708
+        cp $PLEROMA_DIR/config/emoji.txt $PLEROMA_DIR/config/emoji_prev.txt
709
+    fi
710
+
711
+    apt-get -yq update
712
+    apt-get -yq install --only-upgrade esl-erlang
713
+    apt-get -yq install --only-upgrade elixir erlang-xmerl erlang-dev erlang-parsetools
714
+
680 715
     function_check set_repo_commit
681 716
     set_repo_commit $PLEROMA_DIR "pleroma commit" "$PLEROMA_COMMIT" $PLEROMA_REPO
682 717
     chown -R pleroma:pleroma $PLEROMA_DIR
683 718
 
719
+    # restore the configuration
720
+    cp $PLEROMA_DIR/priv/static/static/config_prev.json $PLEROMA_DIR/priv/static/static/config.json
721
+    chown pleroma:pleroma $PLEROMA_DIR/priv/static/static/config.json
722
+
723
+    if [ -f $PLEROMA_DIR/config/emoji_prev.txt ]; then
724
+        cp $PLEROMA_DIR/config/emoji_prev.txt $PLEROMA_DIR/config/emoji.txt
725
+        chown pleroma:pleroma $PLEROMA_DIR/config/emoji.txt
726
+        rm cp $PLEROMA_DIR/config/emoji_prev.txt
727
+    fi
728
+
684 729
     sudo -u pleroma mix deps.get
685 730
     pleroma_recompile
686 731
 
687 732
     expire_pleroma_posts $PLEROMA_DOMAIN_NAME $PLEROMA_EXPIRE_MONTHS
688 733
     create_pleroma_blocklist
734
+
735
+    systemctl restart pleroma
689 736
 }
690 737
 
691 738
 function backup_local_pleroma {
@@ -735,6 +782,7 @@ function restore_local_pleroma {
735 782
             chown -R pleroma:pleroma $pleroma_dir
736 783
             rm -rf $temp_restore_dir
737 784
         fi
785
+        systemctl restart pleroma
738 786
 
739 787
         echo $"Restore of pleroma complete"
740 788
     fi
@@ -789,7 +837,7 @@ function restore_remote_pleroma {
789 837
             rm -rf $temp_restore_dir
790 838
         fi
791 839
 
792
-        pleroma_update_after_restore pleroma ${PLEROMA_DOMAIN_NAME}
840
+        systemctl restart pleroma
793 841
 
794 842
         echo $"Restore of pleroma complete"
795 843
     fi

+ 8
- 4
src/freedombone-utils-gnusocialtools 查看文件

@@ -276,10 +276,12 @@ function install_gnusocial_default_background {
276 276
     # customise the logo
277 277
     if [ -f $basedir/static/logo.png ]; then
278 278
         if [ -f ~/freedombone/img/logo_fbone3.png ]; then
279
-            cp ~/freedombone/img/logo_fbone3.png $basedir/static/logo.png
279
+            cp ~/freedombone/img/logo_fbone3.png $basedir/static/logo_custom.png
280
+            sed -i "s|\"logo\":.*|\"logo\": \"/static/logo_custom.png\",|g" $basedir/static/config.json
280 281
         else
281 282
             if [ -f /home/$MY_USERNAME/freedombone/img/logo_fbone3.png ]; then
282
-                cp /home/$MY_USERNAME/freedombone/img/logo_fbone3.png $basedir/static/logo.png
283
+                cp /home/$MY_USERNAME/freedombone/img/logo_fbone3.png $basedir/static/logo_custom.png
284
+                sed -i "s|\"logo\":.*|\"logo\": \"/static/logo_custom.png\",|g" $basedir/static/config.json
283 285
             fi
284 286
         fi
285 287
     fi
@@ -289,10 +291,12 @@ function install_gnusocial_default_background {
289 291
     fi
290 292
 
291 293
     if [ -f ~/freedombone/img/backgrounds/${gnusocial_type}.jpg ]; then
292
-        cp ~/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg.jpg
294
+        cp ~/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg_custom.jpg
295
+        sed -i "s|\"background\":.*|\"background\": \"/static/bg_custom.jpg\",|g" $basedir/static/config.json
293 296
     else
294 297
         if [ -f /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg ]; then
295
-            cp /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg.jpg
298
+            cp /home/$MY_USERNAME/freedombone/img/backgrounds/${gnusocial_type}.jpg $basedir/static/bg_custom.jpg
299
+            sed -i "s|\"background\":.*|\"background\": \"/static/bg_custom.jpg\",|g" $basedir/static/config.json
296 300
         fi
297 301
     fi
298 302
 }