a / scripts /regenerate-examples.sh
PNRxA
add support for episode ratings, closes #5
76b8a0b
Raw History Blame Contribute Delete
5.29 kB
#!/usr/bin/env bash
set -euo pipefail
BASE="${1:-http://localhost:3000}"
KEY="t0-free-rpdb"
OUT="$(dirname "$0")/../web/public/examples"
declare -A POSTERS=(
[namakura-gatana]=tt0438075
[nosferatu]=tt0013442
[metropolis]=tt0017136
[caligari]=tt0010323
[phantom]=tt0016220
[trip-to-moon]=tt0000417
[safety-last]=tt0014429
[the-general]=tt0017925
)
declare -A EPISODES=(
[bonanza]=tt0529483
)
# --- Standard examples (no settings changes needed) ---
echo "=== Posters ==="
for name in "${!POSTERS[@]}"; do
id="${POSTERS[$name]}"
echo -n "poster: $name ($id)... "
curl -sf "$BASE/$KEY/imdb/poster-default/$id.jpg" -o "$OUT/$name.jpg"
echo "OK"
done
echo "=== Logos ==="
for name in "${!POSTERS[@]}"; do
id="${POSTERS[$name]}"
echo -n "logo: $name ($id)... "
if curl -sf "$BASE/$KEY/imdb/logo-default/$id.png" -o "$OUT/logo-$name.png"; then
echo "OK"
else
rm -f "$OUT/logo-$name.png"
echo "SKIP (not available)"
fi
done
echo "=== Backdrops ==="
for name in "${!POSTERS[@]}"; do
id="${POSTERS[$name]}"
echo -n "backdrop: $name ($id)... "
if curl -sf "$BASE/$KEY/imdb/backdrop-default/$id.jpg" -o "$OUT/backdrop-$name.jpg"; then
echo "OK"
else
rm -f "$OUT/backdrop-$name.jpg"
echo "SKIP (not available)"
fi
done
echo "=== Episodes ==="
for name in "${!EPISODES[@]}"; do
id="${EPISODES[$name]}"
echo -n "episode: $name ($id)... "
if curl -sf "$BASE/$KEY/imdb/episode-default/$id.jpg" -o "$OUT/episode-$name.jpg"; then
echo "OK"
else
rm -f "$OUT/episode-$name.jpg"
echo "SKIP (not available)"
fi
echo -n "episode: $name horizontal ($id)... "
if curl -sf "$BASE/$KEY/imdb/episode-default/$id.jpg?badge_style=h" -o "$OUT/episode-$name-h.jpg"; then
echo "OK"
else
rm -f "$OUT/episode-$name-h.jpg"
echo "SKIP (not available)"
fi
echo -n "episode: $name blur ($id)... "
if curl -sf "$BASE/$KEY/imdb/episode-default/$id.jpg?blur=true" -o "$OUT/episode-$name-blur.jpg"; then
echo "OK"
else
rm -f "$OUT/episode-$name-blur.jpg"
echo "SKIP (not available)"
fi
done
# --- Preview images (use the preview endpoint with query params) ---
echo ""
echo "=== Preview Images ==="
echo "These use the preview endpoint (no real movies needed)."
echo -n "Enter full 64-character API key (or press Enter to skip): "
read -r API_KEY
if [[ -z "$API_KEY" ]]; then
echo "Skipping preview images."
exit 0
fi
# Log in with the API key to get a JWT token
LOGIN_RESPONSE=$(curl -sf -X POST "$BASE/api/auth/key-login" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg k "$API_KEY" '{"api_key": $k}')" 2>&1) || {
echo "ERROR: API key rejected. Check the key and that the server is running."
exit 1
}
JWT_TOKEN=$(echo "$LOGIN_RESPONSE" | jq -r '.token')
if [[ -z "$JWT_TOKEN" || "$JWT_TOKEN" == "null" ]]; then
echo "ERROR: Failed to obtain auth token."
exit 1
fi
AUTH=(-H "Authorization: Bearer $JWT_TOKEN")
PREVIEW="$BASE/api/key/me/preview"
echo "Authenticated."
echo ""
# Position variants
echo "--- Positions ---"
for pos in tl tc tr r bl bc br l; do
echo -n "pos-$pos... "
curl -sf "${AUTH[@]}" \
"$PREVIEW/poster?position=$pos" \
-o "$OUT/pos-$pos.jpg"
echo "OK"
done
# Badge style variants
echo "--- Badge Styles ---"
for style in h v; do
echo -n "style-$style... "
curl -sf "${AUTH[@]}" \
"$PREVIEW/poster?badge_style=$style" \
-o "$OUT/style-$style.jpg"
echo "OK"
done
# Label style variants
echo "--- Label Styles ---"
for label_val in i t o; do
case "$label_val" in
i) label_name="icon" ;;
t) label_name="text" ;;
o) label_name="official" ;;
esac
echo -n "label-$label_name... "
curl -sf "${AUTH[@]}" \
"$PREVIEW/poster?label_style=$label_val" \
-o "$OUT/label-$label_name.jpg"
echo "OK"
done
# Logo badge style variants
echo "--- Logo Styles ---"
for style in h v; do
echo -n "logo-$style... "
curl -sf "${AUTH[@]}" \
"$PREVIEW/logo?badge_style=$style" \
-o "$OUT/logo-$style.png"
echo "OK"
done
# Backdrop badge style variants
echo "--- Backdrop Styles ---"
for style in h v; do
echo -n "backdrop-$style... "
curl -sf "${AUTH[@]}" \
"$PREVIEW/backdrop?badge_style=$style" \
-o "$OUT/backdrop-$style.jpg"
echo "OK"
done
# Badge size variants for posters
echo "--- Poster Badge Sizes ---"
for size in xs s m l xl; do
echo -n "size-poster-$size... "
extra=""
[[ "$size" == "l" || "$size" == "xl" ]] && extra="&ratings_limit=2"
curl -sf "${AUTH[@]}" \
"$PREVIEW/poster?badge_size=$size$extra" \
-o "$OUT/size-poster-$size.jpg"
echo "OK"
done
# Badge size variants for logos
echo "--- Logo Badge Sizes ---"
for size in xs s m l xl; do
echo -n "size-logo-$size... "
extra=""
[[ "$size" == "l" || "$size" == "xl" ]] && extra="&ratings_limit=2"
curl -sf "${AUTH[@]}" \
"$PREVIEW/logo?badge_size=$size$extra" \
-o "$OUT/size-logo-$size.png"
echo "OK"
done
# Badge size variants for backdrops
echo "--- Backdrop Badge Sizes ---"
for size in xs s m l xl; do
echo -n "size-backdrop-$size... "
extra=""
[[ "$size" == "l" || "$size" == "xl" ]] && extra="&ratings_limit=2"
curl -sf "${AUTH[@]}" \
"$PREVIEW/backdrop?badge_size=$size$extra" \
-o "$OUT/size-backdrop-$size.jpg"
echo "OK"
done
echo ""
echo "Done!"