From 69d5e0b35f3627adf8494536ac875a13174dfe7a Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 1 Apr 2018 16:25:41 +0100 Subject: [PATCH] Uploading of videos to peertube via syncthing --- src/freedombone-app-peertube | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/freedombone-app-peertube b/src/freedombone-app-peertube index 63c24687..f66b9af1 100755 --- a/src/freedombone-app-peertube +++ b/src/freedombone-app-peertube @@ -54,6 +54,61 @@ peertube_variables=(PEERTUBE_DOMAIN_NAME ARCHITECTURE MY_EMAIL_ADDRESS) +function peertube_import_from_syncthing { + { echo '#!/bin/bash'; + echo ''; + echo "MY_USERNAME=\$(cat /root/${PROJECT_NAME}.cfg | grep MY_USERNAME | awk -F '=' '{print \$2}')"; + echo "if [ ! \"\$MY_USERNAME\" ]; then"; + echo ' exit 0'; + echo 'fi'; + echo ''; + echo "search_dir=/home/\$MY_USERNAME/Sync/peertube_upload"; + echo "if [ ! -f \$search_dir/login ]; then"; + echo ' exit 0'; + echo 'fi'; + echo "import_script=${PEERTUBE_DIR}/dist/server/tools/upload.js"; + echo "if [ ! -f \$import_script ]; then"; + echo ' exit 0'; + echo 'fi'; + echo ''; + echo "peertubedomain=\"http://localhost:${PEERTUBE_PORT}\""; + echo "peertubeuser=\$(sed -n 1p < \"\$search_dir/login\")"; + echo "peertubepassword=\$(sed -n 2p < \"\$search_dir/login\")"; + echo 'peertubensfw='; + echo "if grep 'nsfw' \"\$search_dir/login\"; then"; + echo " peertubensfw='--nsfw'"; + echo 'fi'; + echo ''; + echo 'failed_uploads=0'; + echo ''; + echo "for video_file in \$search_dir/*; do"; + echo " echo \"\$video_file\""; + echo " if [[ \"\$video_file\" == *'.ogv' || \"\$video_file\" == *'.mp4' || \"\$video_file\" == *'.webm' ]]; then"; + echo " cd ${PEERTUBE_DIR} || exit 32468356"; + echo " "; + echo " if ! grep \"\$video_file\" /root/.peertube_uploaded; then"; + echo " if ! grep \"\$video_file\" /root/.peertube_uploading; then"; + echo " echo \"\$video_file\" >> /root/.peertube_uploading"; + echo " if node \$import_script \$peertubensfw -u \"\$peertubedomain\" -U \"\$peertubeuser\" --password \"\$peertubepassword\" -f \"\$video_file\"; then"; + echo " echo \"\$video_file\" >> /root/.peertube_uploaded"; + echo " sed -i \"/\$video_file/d\" /root/.peertube_uploading"; + echo " exit 0"; + echo ' else'; + echo " sed -i \"/\$video_file/d\" /root/.peertube_uploading"; + echo " failed_uploads=\$((failed_uploads+1))"; + echo " if [ \$failed_uploads -gt 1 ]; then"; + echo ' exit 0'; + echo ' fi'; + echo ' fi'; + echo ' fi'; + echo ' fi'; + echo ' fi'; + echo 'done'; } > /usr/bin/peertubesync + + chmod +x /usr/bin/peertubesync + cron_add_mins 1 /usr/bin/peertubesync +} + function peertube_create_database { if [ -f "$IMAGE_PASSWORD_FILE" ]; then PEERTUBE_ADMIN_PASSWORD="$(printf "%s" "$(cat "$IMAGE_PASSWORD_FILE")")" @@ -326,6 +381,8 @@ function reconfigure_peertube { } function upgrade_peertube { + peertube_import_from_syncthing + CURR_PEERTUBE_COMMIT=$(get_completion_param "peertube commit") if [[ "$CURR_PEERTUBE_COMMIT" == "$PEERTUBE_COMMIT" ]]; then return @@ -479,6 +536,14 @@ function remove_peertube { remove_onion_service peertube ${PEERTUBE_ONION_PORT} remove_completion_param "install_peertube" sed -i '/peertube/d' "$COMPLETION_FILE" + sed -i '/peertubesync/d' /etc/crontab + + if [ -f /usr/bin/peertubesync ]; then + rm /usr/bin/peertubesync + fi + if [ -f /root/peertube_uploaded ]; then + rm /root/peertube_uploaded + fi function_check drop_database_postgresql drop_database_postgresql peertube peertube