複数ソース 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")。人間の検索語とデータの正式名のズレを辞書で吸収。
  • 下流への受け渡しexportgames.json を出し、gbf-navi の PCゲームページが読む (プロジェクト間のデータ・ハンドオフ)。

出典:game-dbdb.py, sources/, aliases.json