ソースを参照

Uploading of videos to peertube via syncthing

Bob Mottram 7 年 前
コミット
69d5e0b35f
共有1 個のファイルを変更した65 個の追加0 個の削除を含む
  1. 65
    0
      src/freedombone-app-peertube

+ 65
- 0
src/freedombone-app-peertube ファイルの表示

@@ -54,6 +54,61 @@ peertube_variables=(PEERTUBE_DOMAIN_NAME
54 54
                     ARCHITECTURE
55 55
                     MY_EMAIL_ADDRESS)
56 56
 
57
+function peertube_import_from_syncthing {
58
+    { echo '#!/bin/bash';
59
+      echo '';
60
+      echo "MY_USERNAME=\$(cat /root/${PROJECT_NAME}.cfg | grep MY_USERNAME | awk -F '=' '{print \$2}')";
61
+      echo "if [ ! \"\$MY_USERNAME\" ]; then";
62
+      echo '    exit 0';
63
+      echo 'fi';
64
+      echo '';
65
+      echo "search_dir=/home/\$MY_USERNAME/Sync/peertube_upload";
66
+      echo "if [ ! -f \$search_dir/login ]; then";
67
+      echo '    exit 0';
68
+      echo 'fi';
69
+      echo "import_script=${PEERTUBE_DIR}/dist/server/tools/upload.js";
70
+      echo "if [ ! -f \$import_script ]; then";
71
+      echo '    exit 0';
72
+      echo 'fi';
73
+      echo '';
74
+      echo "peertubedomain=\"http://localhost:${PEERTUBE_PORT}\"";
75
+      echo "peertubeuser=\$(sed -n 1p < \"\$search_dir/login\")";
76
+      echo "peertubepassword=\$(sed -n 2p < \"\$search_dir/login\")";
77
+      echo 'peertubensfw=';
78
+      echo "if grep 'nsfw' \"\$search_dir/login\"; then";
79
+      echo "    peertubensfw='--nsfw'";
80
+      echo 'fi';
81
+      echo '';
82
+      echo 'failed_uploads=0';
83
+      echo '';
84
+      echo "for video_file in \$search_dir/*; do";
85
+      echo "    echo \"\$video_file\"";
86
+      echo "    if [[ \"\$video_file\" == *'.ogv' || \"\$video_file\" == *'.mp4' || \"\$video_file\" == *'.webm' ]]; then";
87
+      echo "        cd ${PEERTUBE_DIR} || exit 32468356";
88
+      echo "        ";
89
+      echo "        if ! grep \"\$video_file\" /root/.peertube_uploaded; then";
90
+      echo "            if ! grep \"\$video_file\" /root/.peertube_uploading; then";
91
+      echo "                echo \"\$video_file\" >> /root/.peertube_uploading";
92
+      echo "                if node \$import_script \$peertubensfw -u \"\$peertubedomain\" -U \"\$peertubeuser\" --password \"\$peertubepassword\" -f \"\$video_file\"; then";
93
+      echo "                    echo \"\$video_file\" >> /root/.peertube_uploaded";
94
+      echo "                    sed -i \"/\$video_file/d\" /root/.peertube_uploading";
95
+      echo "                    exit 0";
96
+      echo '                else';
97
+      echo "                    sed -i \"/\$video_file/d\" /root/.peertube_uploading";
98
+      echo "                    failed_uploads=\$((failed_uploads+1))";
99
+      echo "                    if [ \$failed_uploads -gt 1 ]; then";
100
+      echo '                        exit 0';
101
+      echo '                    fi';
102
+      echo '                fi';
103
+      echo '            fi';
104
+      echo '        fi';
105
+      echo '    fi';
106
+      echo 'done'; } > /usr/bin/peertubesync
107
+
108
+    chmod +x /usr/bin/peertubesync
109
+    cron_add_mins 1 /usr/bin/peertubesync
110
+}
111
+
57 112
 function peertube_create_database {
58 113
     if [ -f "$IMAGE_PASSWORD_FILE" ]; then
59 114
         PEERTUBE_ADMIN_PASSWORD="$(printf "%s" "$(cat "$IMAGE_PASSWORD_FILE")")"
@@ -326,6 +381,8 @@ function reconfigure_peertube {
326 381
 }
327 382
 
328 383
 function upgrade_peertube {
384
+    peertube_import_from_syncthing
385
+
329 386
     CURR_PEERTUBE_COMMIT=$(get_completion_param "peertube commit")
330 387
     if [[ "$CURR_PEERTUBE_COMMIT" == "$PEERTUBE_COMMIT" ]]; then
331 388
         return
@@ -479,6 +536,14 @@ function remove_peertube {
479 536
     remove_onion_service peertube ${PEERTUBE_ONION_PORT}
480 537
     remove_completion_param "install_peertube"
481 538
     sed -i '/peertube/d' "$COMPLETION_FILE"
539
+    sed -i '/peertubesync/d' /etc/crontab
540
+
541
+    if [ -f /usr/bin/peertubesync ]; then
542
+        rm /usr/bin/peertubesync
543
+    fi
544
+    if [ -f /root/peertube_uploaded ]; then
545
+        rm /root/peertube_uploaded
546
+    fi
482 547
 
483 548
     function_check drop_database_postgresql
484 549
     drop_database_postgresql peertube peertube