Add PokeDB sprite downloading (100x100 WebP)
Download pokemon sprites from PokeDB CDN during import, cached locally
as {pokeapi_id}.webp. Replaces PokeAPI GitHub sprite URLs. ~4.6MB for
all 1119 unique sprites.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,7 @@ from pathlib import Path
|
||||
from .loader import load_pokedb_data, load_seed_config
|
||||
from .mappings import PokemonMapper, LocationMapper, build_version_map, map_encounter_method
|
||||
from .processing import filter_encounters_for_game, process_encounters, build_routes
|
||||
from .sprites import download_sprites
|
||||
|
||||
SEEDS_DIR_CANDIDATES = [
|
||||
Path("backend/src/app/seeds"), # from repo root
|
||||
@@ -131,8 +132,11 @@ def main(argv: list[str] | None = None) -> None:
|
||||
print(f" - {m}", file=sys.stderr)
|
||||
|
||||
# Spot-check pokemon mapping on actual encounter data
|
||||
form_ids_in_encounters = {e.get("pokemon_form_identifier", "") for e in pokedb.encounters}
|
||||
form_ids_in_encounters.discard("")
|
||||
form_ids_in_encounters: set[str] = set()
|
||||
for e in pokedb.encounters:
|
||||
fid = e.get("pokemon_form_identifier")
|
||||
if fid:
|
||||
form_ids_in_encounters.add(fid)
|
||||
mapped_forms = 0
|
||||
for fid in form_ids_in_encounters:
|
||||
if pokemon_mapper.lookup(fid) is not None:
|
||||
@@ -182,6 +186,12 @@ def main(argv: list[str] | None = None) -> None:
|
||||
print(f" Routes: {total_routes}")
|
||||
print(f" Encounter entries: {total_enc}")
|
||||
|
||||
# Download sprites for all encountered pokemon
|
||||
print("\nDownloading sprites...")
|
||||
sprites_dir = output_dir / "sprites"
|
||||
sprite_map = download_sprites(pokemon_mapper, form_ids_in_encounters, sprites_dir)
|
||||
print(f" Sprite map covers {len(sprite_map)} forms")
|
||||
|
||||
print("\nProcessing complete. Output not yet written (subtask gkcy).")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user