Skip to content

Conversation

@7bitlyrus
Copy link
Member

Pull request template

Use this template for all contributions made for the repository.

Please indicate all that apply with a checkmark. To make a check, convert brackets below to [x].

  • Feature implementation
  • Bug fix
  • Code change/improvement
  • String change (i.e. grammar/spelling error or an addition)

Describe what your pull request does

Upgrade games and social cogs to use DekuDeals as a data source

@7bitlyrus
Copy link
Member Author

7bitlyrus commented Jan 8, 2026

Proposed migration steps:

  1. Merge PR
  2. Pull changes with git
  3. Shutdown bot
  4. Rebuild Docker container for new requirements
  5. Update config.py to add DekuDeals API key
  6. Drop the games collection from the database
  7. Start the bot again
  8. Run /treesync to update commands
  9. Run /update gamesdb to pull down new data
  10. Run @mention migratefavgames to migrate users collection favgames field to use new IDs
  11. Update games.py to set AUTO_SYNC to True
  12. Update social.py to remove migratefavgames command
  13. Delete giantbomb_names.json
  14. Commit changes and pull changes from steps 10-12
  15. Restart bot

Edit 2026-01-09 to add item 4

@7bitlyrus 7bitlyrus marked this pull request as ready for review January 8, 2026 20:18
@7bitlyrus 7bitlyrus requested a review from MattBSG January 8, 2026 20:18
@7bitlyrus 7bitlyrus removed their assignment Jan 8, 2026
@7bitlyrus
Copy link
Member Author

Also: the migration is not perfect, but it should be pretty decent for most mainstream games (that weren't NSO things):

Here's an example of a poor-case migration with some stuff from NSO, mostly:

Super Mario Bros. 3 is now Super Mario Bros. 35
Stardew Valley is now Stardew Valley
Tetris 99 is now Tetris 99
Super Mario World is now Super Mario RPG
Super Mario 64 is now Super Mario RPG

@7bitlyrus
Copy link
Member Author

I have replaced fuzzywuzzy with rapidfuzz, a more performant drop-in replacement for fuzzywuzzy. I have auto replaced our old average of 4 methods search logic with WRatio from RapidFuzzy/fuzzywuzzy, which does a similar average of methods. The immense performance improvement from these changes has allowed me to re-add autocomplete for game searching, which mitigates any search quality flaws with using WRatio.

@7bitlyrus
Copy link
Member Author

7bitlyrus commented Jan 9, 2026

Here is a new example of migration substitutions. Noting that most imperfect matches are due to non-Switch games available on NSO, which DekuDeals does not list like GiantBomb did. Other differences in matches appear to be due to how GiantBomb grouped re-released into one game, or Pokemon variant games to the same game.

Mario Kart 8 Deluxe -> Mario Kart 8 Deluxe
The Legend of Zelda: A Link to the Past -> Wall Of Insanity 2 ⚠️
The Legend of Zelda: Breath of the Wild -> The Legend of Zelda: Breath of the Wild
Super Metroid -> Piczle Lines Super Puzzle Turbo Bundle ⚠️
Animal Crossing: New Horizons -> Animal Crossing: New Horizons
The Legend of Zelda: Tears of the Kingdom -> The Legend of Zelda: Tears of the Kingdom
Super Mario Bros. 3 -> Super Mario Bros. 35 ⚠️
Super Mario World -> Cooking Arena World Tour Edition ⚠️
Super Mario Odyssey -> Super Mario Odyssey
Nintendo Switch Sports -> Nintendo Switch Sports
Super Mario 3D World + Bowser's Fury -> Super Mario 3D World + BowserΓÇÖs Fury
Super Mario Bros. Wonder -> Super Mario Bros. Wonder
Boomerang Fu -> Boomerang Fu
South Park: The Stick of Truth -> South Park: The Stick of Truth
Stardew Valley -> Stardew Valley
Tetris 99 -> Tetris 99
Super Mario 64 -> Piczle Lines Super Puzzle Turbo Bundle ⚠️
Super Mario Galaxy -> Super Mario Galaxy
Metroid Dread -> Metroid Dread
Metroid Fusion -> Funko Fusion - Upgrade Bundle ⚠️
Pok├⌐mon Trading Card Game -> Whiskers Warehouse - Logic Puzzle Game ⚠️
Mario Party Superstars -> Mario Party Superstars
Deltarune: Chapter 1 -> DELTARUNE Chapter 1&2 ⚠️
ACA NeoGeo: The King of Fighters '98 -> ACA NEOGEO THE KING OF FIGHTERS '98
Burnout Paradise -> Burnout ⚠️
ACA NeoGeo: Metal Slug 3 -> ACA NEOGEO METAL SLUG 3
Fortnite -> Fortnite
realMyst -> realMyst: Masterpiece Edition ⚠️
Final Fantasy XII: The Zodiac Age -> FINAL FANTASY XII THE ZODIAC AGE
Firewatch -> Firewatch
Pokémon Legends: Arceus -> Pokémon Legends: Arceus
Banjo-Kazooie (Nintendo 64 ΓÇô Nintendo Switch Online) -> Switch Ren'ai! ⚠️
KORG Gadget -> KORG Gadget
Shin Megami Tensei V: Vengeance -> Shin Megami Tensei V: Vengeance
Clubhouse Games: 51 Worldwide Classics -> Clubhouse Games: 51 Worldwide Classics
Pikmin 4 -> Pikmin 4
Paper Mario: The Thousand-Year Door -> Paper Mario: The Thousand-Year Door
Super Mario Party Jamboree -> Super Mario Party Jamboree
Mother 3 -> Cooking Tycoons - 3 in 1 Bundle Burger Masters ⚠️
Super Mario 3D All-Stars -> Super Mario 3D All-Stars
Pok├⌐mon Scarlet/Violet -> Pok├⌐mon Scarlet ⚠️
Metro Redux -> Metro Redux
Diablo III -> Diablo III: Eternal Collection ⚠️
Dying Light -> Dying Light: Definitive Edition & Call of Juarez: Gunslinger ⚠️
Quake -> QUAKE
Crash Team Racing: Nitro Fueled -> Crash Team Racing Nitro-Fueled
Sonic Mania -> Sonic Mania
Splatoon 3 -> Splatoon 3
Metroid Prime Remastered -> Metroid Prime Remastered
Mario + Rabbids: Sparks of Hope -> Mario + Rabbids Sparks of Hope
Persona 4 Golden -> Persona 4 Golden
We Love Katamari Reroll + Royal Reverie -> We Love Katamari REROLL+ Royal Reverie
moon -> moon

Copy link
Member

@MattBSG MattBSG left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes tested and appear well made. Looks good :)

@MattBSG MattBSG merged commit 93b070d into master Jan 9, 2026
1 check passed
@MattBSG MattBSG deleted the dekudeals branch January 9, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants