Fotobox1/upload-daemon.sh

59 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
DIRNAME=$(dirname "$0")
REALPATH=$(realpath "$DIRNAME")
INTERVAL="10"
FAILURE_PAUSE="10"
IMAGE_PATH="$REALPATH/images/0-CURRENT"
BASE_URL="https://fotobox.online/upload"
#BASE_URL="http://fotobox.online:8888/upload"
#BASE_URL="http://10.50.0.30:8888/upload"
FOTOBOX_ID="B8:27:EB:AA:C9:8F"
FOTOBOX_KEY="eDAOMohrcJY3"
while true; do
date=$(date +'%Y-%m-%d %H:%M:%S')
cd "$IMAGE_PATH"
mkdir "todo" 2> /dev/null
mkdir "upload" 2> /dev/null
mkdir "lowres" 2> /dev/null
cd "$IMAGE_PATH/todo"
todos="$(find . -maxdepth 1 -type f -name '*.jpg')"
if [ "$todos" != "" ]; then
echo "$date: converting:"
for todo in $todos; do
echo -n " - '$todo' ... "
( convert "$todo" -resize 1000x -quality 0.7 "../lowres/$todo" && cp "../lowres/$todo" "../upload/$todo" && rm -f "$todo" && echo "OK" ) || echo "ERROR"
done
echo ""
fi
cd "$IMAGE_PATH/upload"
uploads="$(find . -maxdepth 1 -type f -name '*.jpg')"
if [ "$uploads" != "" ]; then
echo "$date: uploading:"
for upload in $uploads; do
echo -n " - '$upload' ... "
timestamp_fotobox=$(date +'%Y-%m-%dT%H:%M:%S.%N%z')
timestamp_shot=$(basename "$upload" | sed 's|.jpg||g')
url="$BASE_URL/$FOTOBOX_ID/$FOTOBOX_KEY/$timestamp_fotobox/$timestamp_shot/"
result=$(curl -s --form "image=@$upload" "$url" 2>&1)
echo "$result"
if [ "$result" == "OK" ]; then
rm -f "$upload"
else
sleep $FAILURE_PAUSE
fi
done
echo ""
fi
# SLEEP
sleep $INTERVAL
done