Add autocue.sh
This commit is contained in:
commit
2e5f6f3f81
1 changed files with 39 additions and 0 deletions
39
autocue.sh
Normal file
39
autocue.sh
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "--- AutoQueue started ---"
|
||||
|
||||
while true; do
|
||||
inotifywait -e close_write -m "${WATCH_DIR}" | while read -r path action file; do
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
echo "[$TIMESTAMP] Detected new file: $file" | tee -a "${LOG_FILE}"
|
||||
|
||||
ATTEMPTS=0
|
||||
MEDIA_ID=""
|
||||
|
||||
while [ -z "$MEDIA_ID" ] && [ $ATTEMPTS -lt 6 ]; do
|
||||
ATTEMPTS=$((ATTEMPTS + 1))
|
||||
sleep 5
|
||||
MEDIA_ID=$(curl -s -H "Authorization: Bearer ${AZURACAST_API_KEY}" "${AZURACAST_API_URL}/files" |
|
||||
jq -r --arg NAME "${SUBDIR}/$file" '.[] | select(.path | endswith($NAME)) | .id')
|
||||
|
||||
if [ -z "$MEDIA_ID" ]; then
|
||||
echo "[$TIMESTAMP] Attempt $ATTEMPTS: File $file not yet indexed" | tee -a "${LOG_FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$MEDIA_ID" ]; then
|
||||
echo "[$TIMESTAMP] Queuing $file (ID $MEDIA_ID) as next..." | tee -a "${LOG_FILE}"
|
||||
if curl -s -X POST -H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer ${AZURACAST_API_KEY}" \
|
||||
-d "{\"track_id\": \"$MEDIA_ID\", \"play_next\": true}" \
|
||||
"${AZURACAST_API_URL}/requests"; then
|
||||
echo "[$TIMESTAMP] Successfully queued $file" | tee -a "${LOG_FILE}"
|
||||
else
|
||||
echo "[$TIMESTAMP] Failed to queue $file" | tee -a "${LOG_FILE}"
|
||||
fi
|
||||
else
|
||||
echo "[$TIMESTAMP] Gave up after $ATTEMPTS attempts: $file not indexed" | tee -a "${LOG_FILE}"
|
||||
fi
|
||||
done
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue