複数ソース API を1スキーマに正規化する
バラバラな外部 API(形が全部違う)を1つの DB に集約するときの型(game-db)。
- 正規化して upsert:Steam/Epic/GOG/itch.io/IGDB/RAWG/PCGamingWiki と各々レスポンス形が違う。
sources/<store>.pyでストアごとにフェッチ → 共通の dict 形へ正規化 →upsert_games(store, games)で 1つの SQLite(games.db)へ。ストア列を持たせ、同名でもストアごとに記録。 - 横断重複検出:タイトルを正規化(小文字化・記号除去など)して突き合わせ、複数ストアで重複購入を
検出(
find_duplicates)。「正規化キー」を作るのが肝。 - 別名解決:
aliases.jsonで日本語・略称 → 正式タイトルへ("モンハン"→"monster hunter","mgsv"→"metal gear solid v")。人間の検索語とデータの正式名のズレを辞書で吸収。 - 下流への受け渡し:
exportでgames.jsonを出し、gbf-navi の PCゲームページが読む (プロジェクト間のデータ・ハンドオフ)。
出典:game-db(db.py, sources/, aliases.json)