/
vaskaz
/
flexin_flow
Обзор
Документация
Войти
/
vaskaz
/
flexin_flow
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
test_wiki.py
61 строка
3 KB
vaskaz
newborn
10 июн 2026, 00:16
10 июн 2026, 00:16
dc9da65
Код
Авторство
О чём код?
"""Test Wikipedia API for game metadata.""" import urllib.request, urllib.error import json import sys def wiki_search(title): """Search Wikipedia for a game and return summary + image.""" # Try the exact title first url = f"https://en.wikipedia.org/api/rest_v1/page/summary/{urllib.parse.quote(title)}" try: req = urllib.request.Request(url, headers={"User-Agent": "RetroLibrary/1.0"}) with urllib.request.urlopen(req, timeout=10) as resp: data = json.loads(resp.read()) result = { "title": data.get("title", title), "description": data.get("extract", ""), "thumbnail": data.get("thumbnail", {}).get("source", "") if data.get("thumbnail") else "", } if data.get("type") == "disambiguation": # Try with platform suffix for suffix in [" (video game)", " (NES)", " (SNES)", " (video game for NES)"]: url2 = f"https://en.wikipedia.org/api/rest_v1/page/summary/{urllib.parse.quote(title + suffix)}" req2 = urllib.request.Request(url2, headers={"User-Agent": "RetroLibrary/1.0"}) try: with urllib.request.urlopen(req2, timeout=5) as resp2: data2 = json.loads(resp2.read()) if data2.get("type") != "disambiguation": result["title"] = data2.get("title", title) result["description"] = data2.get("extract", "") result["thumbnail"] = data2.get("thumbnail", {}).get("source", "") if data2.get("thumbnail") else "" break except urllib.error.HTTPError: continue return result except urllib.error.HTTPError as e: if e.code == 404: return {"title": title, "description": "", "thumbnail": ""} return {"title": title, "description": "", "thumbnail": "", "error": str(e)} except Exception as e: return {"title": title, "description": "", "thumbnail": "", "error": str(e)} import urllib.parse tests = [ "Super_Mario_Bros._3", "Chrono_Trigger", "The_Legend_of_Zelda", "Pokemon_Emerald", "Super_Metroid", ] for t in tests: result = wiki_search(t) has = "✓" if result.get("description") else "✗" thumb = "🖼" if result.get("thumbnail") else " " err = f" [{result.get('error')}]" if result.get("error") else "" print(f" {has}{thumb} {result['title']}{err}") if result.get("description"): print(f" {result['description'][:120]}...") print()