70 lines
1.2 KiB
Bash
Executable File
70 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
#set -x
|
|
|
|
usage() {
|
|
echo "usage: $0 --output-dir|-o <output-directory> [--format|-f jpg|tif] <IIIF-manifest-URL>"
|
|
exit 1
|
|
}
|
|
|
|
output_dir=
|
|
url=
|
|
format=jpg
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case $1 in
|
|
--output-dir|-o)
|
|
output_dir="$2"
|
|
shift
|
|
;;
|
|
--format|-f)
|
|
format="$2"
|
|
shift
|
|
;;
|
|
*)
|
|
url="$1"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -z "$output_dir" ] || [ -z "$url" ]; then
|
|
usage
|
|
fi
|
|
|
|
if [ -d "$output_dir" ]; then
|
|
echo -n "The directory '$output_dir' already exists. Do you want to delete/recreate it (d) or skip and go on (s)? "
|
|
read response
|
|
case $response in
|
|
[dD])
|
|
rm -rf "$output_dir"
|
|
mkdir -p "$output_dir"
|
|
;;
|
|
[sS])
|
|
;;
|
|
*)
|
|
2>&1 echo "error: invalid option"
|
|
exit 1
|
|
;;
|
|
esac
|
|
else
|
|
mkdir -p "$output_dir"
|
|
fi
|
|
|
|
image_urls=$(curl -s "$url" | jq -r ".sequences[].canvases[].images[].resource.\"@id\"")
|
|
counter=1
|
|
for image_url in $image_urls; do
|
|
image_name=$(basename "$image_url")
|
|
filename=$(printf "$output_dir/%04d.$format" $counter)
|
|
if [ "$format" = "tif" ]; then
|
|
base="${image_url%.jpg}"
|
|
iamge_url="${image_url}.tif"
|
|
fi
|
|
curl -sSL "$image_url" -o "$filename"
|
|
counter=$((counter + 1))
|
|
echo "$(basename "$filename") saved"
|
|
done
|
|
|
|
cleanup
|