78 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| 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."
 |