|
@@ -191,16 +191,24 @@ async def load_pokedex(dex_file: str) -> dict:
|
|
|
return dex
|
|
|
|
|
|
|
|
|
+SHOWDOWN_REPLACEMENTS = [
|
|
|
+ ("mega-", "mega"), # charizard, mewtwo
|
|
|
+ ("paldea-", "paldea"), # tauros
|
|
|
+ ("mr. ", "mr"), # mr mime + mr rime
|
|
|
+ ("'d", "d"), # farfetch'd and sirfetch'd
|
|
|
+ ("nidoran-m", "nidoranm"), # nidoran is a special case
|
|
|
+ ("-f", "f"), # gender diff forms
|
|
|
+ (re.compile(r"-m$"), ""), # gender diff forms
|
|
|
+]
|
|
|
+
|
|
|
+
|
|
|
def get_showdown_urls(form: Form) -> list[tuple[str, str]]:
|
|
|
- name = form.name.lower().replace(
|
|
|
- "mega-", "mega" # charizard, mewtwo
|
|
|
- ).replace(
|
|
|
- "paldea-", "paldea" # tauros
|
|
|
- ).replace(
|
|
|
- "mr. ", "mr" # mr mime + mr rime
|
|
|
- ).replace(
|
|
|
- "'d", "d" # farfetch'd and sirfetch'd
|
|
|
- )
|
|
|
+ name = form.name.lower()
|
|
|
+ for pat, ins in SHOWDOWN_REPLACEMENTS:
|
|
|
+ if isinstance(pat, re.Pattern):
|
|
|
+ name = re.sub(pat, ins, name)
|
|
|
+ else:
|
|
|
+ name = name.replace(pat, ins)
|
|
|
return [
|
|
|
(f"https://play.pokemonshowdown.com/sprites/ani/{name}.gif", "gif"),
|
|
|
(f"https://play.pokemonshowdown.com/sprites/ani-back/{name}.gif", "gif"),
|