diff --git a/bundles/nextcloud-picsort/files/nextcloud-picsort b/bundles/nextcloud-picsort/files/nextcloud-picsort index a204553..a22466a 100644 --- a/bundles/nextcloud-picsort/files/nextcloud-picsort +++ b/bundles/nextcloud-picsort/files/nextcloud-picsort @@ -1,78 +1,4 @@ -#!/bin/bash +#!/usr/bin/env python3 -USER="$1" -REL_SOURCE_PATH="/$1/files/$2" -ABS_SOURCE_PATH="/var/lib/nextcloud/$1/files/$2" -REL_DEST_PATH="/$1/files/$3" -ABS_DEST_PATH="/var/lib/nextcloud/$1/files/$3" - -REL_UNSORTABLE_PATH="/$1/files/$4" -ABS_UNSORTABLE_PATH="/var/lib/nextcloud/$1/files/$4" - -echo "STARTING..." - -chown -R www-data:www-data "$ABS_SOURCE_PATH" -chmod -R 770 "$ABS_SOURCE_PATH" - -SCAN="FALSE" -IFS=$'\n' -for f in `find "$ABS_SOURCE_PATH" -iname *.PNG -o -iname *.JPG -o -iname *.JPEG -o -iname *.HEIC -o -iname *.CR2 -o -iname *.CR3 -o -iname *.MP4 -o -iname *.MOV`; do - SCAN="TRUE" - echo "PROCESSING: $f" - - EXIF=`exiftool "$f"` - if grep -q '^Create Date' <<< $EXIF - then - DATETIME=`grep -m 1 "^Create Date" <<< $EXIF | cut -d: -f2- | xargs` - elif grep -q '^File Modification Date' <<< $EXIF - then - DATETIME=`grep -m 1 '^File Modification Date' <<< $EXIF | cut -d: -f2- | xargs` - else - RELPATH=$(realpath --relative-to="$ABS_SOURCE_PATH" "$f") - DIRNAME=$(dirname "$ABS_UNSORTABLE_PATH/$RELPATH") - echo "UNSORTABLE: $f" - mkdir -p "$DIRNAME" - mv "$f" "$DIRNAME" - continue - fi - - DATE=`cut -d' ' -f1 <<< $DATETIME` - TIME=`cut -d' ' -f2 <<< $DATETIME | cut -d'+' -f1` - - YEAR=`cut -d':' -f1 <<< $DATE` - MONTH=`cut -d':' -f2 <<< $DATE` - DAY=`cut -d':' -f3 <<< $DATE` - HOUR=`cut -d':' -f1 <<< $TIME` - MINUTE=`cut -d':' -f2 <<< $TIME` - SECOND=`cut -d':' -f3 <<< $TIME` - - HASH=`sha256sum "$f" | xxd -r -p | base64 | head -c 3 | tr '/+' '_-'` - EXT=`echo "${f##*.}" | tr '[:upper:]' '[:lower:]'` - if [[ "$EXT" = "cr2" ]] || [[ "$EXT" = "cr3" ]] - then - RAW="raw/" - else - RAW="" - fi - FILE="$ABS_DEST_PATH/$YEAR-$MONTH/$RAW$YEAR$MONTH$DAY"-"$HOUR$MINUTE$SECOND"_"$HASH"."$EXT" - echo "DESTINATION: $FILE" - mkdir -p "$(dirname "$FILE")" - mv -v "$f" "$FILE" -done - -if [ "$SCAN" == "TRUE" ]; then - echo "SCANNING..." - # find "$ABS_SOURCE_PATH/"* -type d -empty -delete >> /var/echo/nc-picsort.echo # nextcloud app bug when deleting folders - chown -R www-data:www-data "$ABS_DEST_PATH" - chown -R www-data:www-data "$ABS_UNSORTABLE_PATH" - chmod -R 770 "$ABS_DEST_PATH" - chmod -R 770 "$ABS_UNSORTABLE_PATH" - sudo -u www-data php /opt/nextcloud/occ files:scan --path "$REL_SOURCE_PATH" - sudo -u www-data php /opt/nextcloud/occ files:scan --path "$REL_UNSORTABLE_PATH" - sudo -u www-data php /opt/nextcloud/occ files:scan --path "$REL_DEST_PATH" - #sudo -u www-data php /opt/nextcloud/occ preview:pre-generate -fi - -echo "FINISH." diff --git a/bundles/nextcloud-picsort/metadata.py b/bundles/nextcloud-picsort/metadata.py index ca1c909..ad31a18 100644 --- a/bundles/nextcloud-picsort/metadata.py +++ b/bundles/nextcloud-picsort/metadata.py @@ -17,8 +17,14 @@ def systemd_timers(metadata): return { 'systemd-timers': { f'nextcloud-picsort-{user}': { - 'command': f'/opt/nextcloud-picsort {q(user)} {q(paths["source"])} {q(paths["destination"])} {q(paths["unsortable"])}', + 'command': f'/opt/nextcloud-picsort', 'when': '*:0/30', + 'env': { + 'USER': user, + 'SOURCE_DIR': paths["source"], + 'DESTINATION_DIR': paths["destination"], + 'UNSORTABLE_DIR': paths["unsortable"], + }, } for user, paths in metadata.get('nextcloud-picsort').items() }