108 lines
2.1 KiB
Plaintext
108 lines
2.1 KiB
Plaintext
|
#!/bin/bash -
|
||
|
#===============================================================================
|
||
|
#
|
||
|
# FILE: collect_show_data
|
||
|
#
|
||
|
# USAGE: ./collect_show_data fromshow [toshow]
|
||
|
#
|
||
|
# DESCRIPTION: Capture metadata for a range of shows for adding to the ia.db
|
||
|
# database. Do it by show number rather than by date (see
|
||
|
# 'collect_metadata')
|
||
|
#
|
||
|
# OPTIONS: ---
|
||
|
# REQUIREMENTS: ---
|
||
|
# BUGS: ---
|
||
|
# NOTES: ---
|
||
|
# AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
|
||
|
# VERSION: 0.0.5
|
||
|
# CREATED: 2018-01-27 14:13:19
|
||
|
# REVISION: 2023-01-18 12:30:17
|
||
|
#
|
||
|
#===============================================================================
|
||
|
|
||
|
set -o nounset # Treat unset variables as an error
|
||
|
|
||
|
VERSION="0.0.5"
|
||
|
|
||
|
SCRIPT=${0##*/}
|
||
|
#DIR=${0%/*}
|
||
|
|
||
|
showmax=10
|
||
|
|
||
|
#
|
||
|
# We need a 'from' and 'to' argument as show numbers
|
||
|
#
|
||
|
if [[ $# -ne 1 && $# -ne 2 ]]; then
|
||
|
echo -e "Usage: $SCRIPT fromshow [toshow]\\n(Version $VERSION)"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Validate the arguments
|
||
|
#
|
||
|
for arg; do
|
||
|
if [[ ! $arg =~ ^[0-9]{1,4}$ ]]; then
|
||
|
echo "Invalid show number: $arg"
|
||
|
echo "Use a plain number"
|
||
|
exit 1
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
#
|
||
|
# Save the arguments
|
||
|
#
|
||
|
from="$1"
|
||
|
if [[ $# -eq 1 ]]; then
|
||
|
to="$1"
|
||
|
else
|
||
|
to="$2"
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Check the arguments are in the right order
|
||
|
#
|
||
|
if [[ $from -gt $to ]]; then
|
||
|
echo "First argument must be less than or equal to second"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Make an array with the range in it. Ensure numbers have leading zeroes
|
||
|
#
|
||
|
mapfile ids < <(eval "printf '%04d\n' {$from..$to}")
|
||
|
|
||
|
#
|
||
|
# Check the request wasn't too big
|
||
|
#
|
||
|
if [[ ${#ids[@]} -gt $showmax ]]; then
|
||
|
echo "Too many shows requested; limit $showmax"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Output file - with leading zeroes in numbers
|
||
|
#
|
||
|
printf -v metadata 'ia_metadata_hpr%04d-hpr%04d.json' "$from" "$to"
|
||
|
|
||
|
echo "From $from, to $to -> $metadata"
|
||
|
|
||
|
#
|
||
|
# Make the request
|
||
|
#
|
||
|
ia metadata "${ids[@]/#/hpr}" > "$metadata" 2> /dev/null
|
||
|
RES=$?
|
||
|
|
||
|
if [[ $RES -ne 0 ]]; then
|
||
|
echo "Data collection has failed"
|
||
|
if [[ ! -s $metadata ]]; then
|
||
|
rm -f "$metadata"
|
||
|
fi
|
||
|
else
|
||
|
echo "Metadata is in $metadata"
|
||
|
fi
|
||
|
|
||
|
exit
|
||
|
|
||
|
# vim: syntax=sh:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21
|
||
|
|