Bläddra i källkod

Uploading of videos to peertube via syncthing

Bob Mottram 7 år sedan
förälder
incheckning
69d5e0b35f
1 ändrade filer med 65 tillägg och 0 borttagningar
  1. 65
    0
      src/freedombone-app-peertube

+ 65
- 0
src/freedombone-app-peertube Visa fil

54
                     ARCHITECTURE
54
                     ARCHITECTURE
55
                     MY_EMAIL_ADDRESS)
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
 function peertube_create_database {
112
 function peertube_create_database {
58
     if [ -f "$IMAGE_PASSWORD_FILE" ]; then
113
     if [ -f "$IMAGE_PASSWORD_FILE" ]; then
59
         PEERTUBE_ADMIN_PASSWORD="$(printf "%s" "$(cat "$IMAGE_PASSWORD_FILE")")"
114
         PEERTUBE_ADMIN_PASSWORD="$(printf "%s" "$(cat "$IMAGE_PASSWORD_FILE")")"
326
 }
381
 }
327
 
382
 
328
 function upgrade_peertube {
383
 function upgrade_peertube {
384
+    peertube_import_from_syncthing
385
+
329
     CURR_PEERTUBE_COMMIT=$(get_completion_param "peertube commit")
386
     CURR_PEERTUBE_COMMIT=$(get_completion_param "peertube commit")
330
     if [[ "$CURR_PEERTUBE_COMMIT" == "$PEERTUBE_COMMIT" ]]; then
387
     if [[ "$CURR_PEERTUBE_COMMIT" == "$PEERTUBE_COMMIT" ]]; then
331
         return
388
         return
479
     remove_onion_service peertube ${PEERTUBE_ONION_PORT}
536
     remove_onion_service peertube ${PEERTUBE_ONION_PORT}
480
     remove_completion_param "install_peertube"
537
     remove_completion_param "install_peertube"
481
     sed -i '/peertube/d' "$COMPLETION_FILE"
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
     function_check drop_database_postgresql
548
     function_check drop_database_postgresql
484
     drop_database_postgresql peertube peertube
549
     drop_database_postgresql peertube peertube