125 lines
4.3 KiB
Bash
Executable File
125 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Usage: ./generate_numbered_images.sh <image_name> <output_path> <max_number> <text_color>
|
|
# Example: ./generate_numbered_images.sh espn-plus-light.png /path/to/output 10 white
|
|
# This will generate images for numbers 1 through 10 with white text
|
|
|
|
if [ $# -ne 4 ]; then
|
|
echo "Usage: $0 <image_name> <output_path> <max_number> <text_color>"
|
|
echo "Example: $0 espn-plus-light.png ./output 10 white"
|
|
echo "This will generate images numbered 1 through <max_number> with specified text color"
|
|
echo "Common colors: white, black, red, blue, yellow, etc."
|
|
exit 1
|
|
fi
|
|
|
|
IMAGE_NAME="$1"
|
|
OUTPUT_PATH="$2"
|
|
MAX_NUMBER="$3"
|
|
TEXT_COLOR="$4"
|
|
|
|
# URL encode the image name for the API - map to correct directory structure and set font size
|
|
case "$IMAGE_NAME" in
|
|
espn-plus-light.png)
|
|
ENCODED_IMAGE_NAME="espn%2Fespn-plus-light.png"
|
|
FONT_SIZE="225"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fsf-sports-night%2FSFSportsNightNS.ttf"
|
|
;;
|
|
espn-plus-dark.png)
|
|
ENCODED_IMAGE_NAME="espn%2Fespn-plus-dark.png"
|
|
FONT_SIZE="225"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fsf-sports-night%2FSFSportsNightNS.ttf"
|
|
;;
|
|
sportsnet-plus-light.png)
|
|
ENCODED_IMAGE_NAME="sportsnet%2Fsportsnet-plus-light.png"
|
|
FONT_SIZE="160"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fgoogle-fonts%2FRoboto-Black.ttf"
|
|
;;
|
|
sportsnet-plus-dark.png)
|
|
ENCODED_IMAGE_NAME="sportsnet%2Fsportsnet-plus-dark.png"
|
|
FONT_SIZE="160"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fgoogle-fonts%2FRoboto-Black.ttf"
|
|
;;
|
|
tsn-plus-light.png)
|
|
ENCODED_IMAGE_NAME="tsn%2Ftsn-plus-light.png"
|
|
FONT_SIZE="225"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fsf-sports-night%2FSFSportsNightNS.ttf"
|
|
;;
|
|
tsn-plus-dark.png)
|
|
ENCODED_IMAGE_NAME="tsn%2Ftsn-plus-dark.png"
|
|
FONT_SIZE="225"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fsf-sports-night%2FSFSportsNightNS.ttf"
|
|
;;
|
|
olympics.png)
|
|
ENCODED_IMAGE_NAME="olympics%2Folympics.png"
|
|
FONT_SIZE="750"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fgoogle-fonts%2FRoboto-Black.ttf"
|
|
POSITION="right"
|
|
CUSTOM_TEXT_COLOR=""
|
|
;;
|
|
olympics_2026.png)
|
|
ENCODED_IMAGE_NAME="olympics%2Folympics_2026.png"
|
|
FONT_SIZE="500"
|
|
FONT_PATH="%2Fusr%2Fshare%2Ffonts%2Ftruetype%2Fnoto%2FNotoSans-Bold.ttf"
|
|
POSITION="below"
|
|
CUSTOM_TEXT_COLOR="%23a1b0b8"
|
|
;;
|
|
*)
|
|
echo "Error: Unknown image name: $IMAGE_NAME"
|
|
echo "Supported images: espn-plus-light.png, espn-plus-dark.png, sportsnet-plus-light.png, sportsnet-plus-dark.png, tsn-plus-light.png, tsn-plus-dark.png, olympics.png, olympics_2026.png"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# Determine text color to use
|
|
if [ -n "$CUSTOM_TEXT_COLOR" ]; then
|
|
FINAL_TEXT_COLOR="$CUSTOM_TEXT_COLOR"
|
|
else
|
|
FINAL_TEXT_COLOR="$TEXT_COLOR"
|
|
fi
|
|
|
|
# Determine position to use
|
|
if [ -z "$POSITION" ]; then
|
|
POSITION="right"
|
|
fi
|
|
|
|
# Base URL template
|
|
BASE_URL="http://nymeria.swvn.local:5123/api/image?url=https%3A%2F%2Fgit.seth.services%2Fseth-public%2Fscripts%2Fraw%2Fbranch%2Fmain%2F${ENCODED_IMAGE_NAME}&text=NUMBER&position=${POSITION}&font_size=${FONT_SIZE}&padding=auto&text_color=${FINAL_TEXT_COLOR}&bg_color=transparent&font_path=${FONT_PATH}"
|
|
|
|
# Create output directory if it doesn't exist
|
|
mkdir -p "$OUTPUT_PATH"
|
|
|
|
echo "Starting parallel downloads..."
|
|
|
|
# Start all downloads in parallel
|
|
pids=()
|
|
for number in $(seq 1 "$MAX_NUMBER"); do
|
|
echo "Starting download for number: $number"
|
|
|
|
# Replace NUMBER placeholder with actual number
|
|
URL=$(echo "$BASE_URL" | sed "s/NUMBER/$number/g")
|
|
|
|
# Debug: Print the URL
|
|
echo "URL: $URL"
|
|
|
|
# Generate output filename
|
|
OUTPUT_FILE="${OUTPUT_PATH}/${IMAGE_NAME%.png}_${number}.png"
|
|
|
|
# Download the image in background
|
|
(
|
|
if curl -s "$URL" -o "$OUTPUT_FILE" 2>/dev/null; then
|
|
echo "✓ Saved: $OUTPUT_FILE"
|
|
else
|
|
echo "✗ Failed to generate image for number: $number"
|
|
fi
|
|
) &
|
|
|
|
pids+=($!)
|
|
done
|
|
|
|
# Wait for all background processes to complete
|
|
echo "Waiting for all downloads to complete..."
|
|
for pid in "${pids[@]}"; do
|
|
wait "$pid"
|
|
done
|
|
|
|
echo "Done! Generated images saved to: $OUTPUT_PATH" |