Public Access
feat(picker): add series and studio rows from IGDB credits
New V37 tables game_credit and game_credit_check store IGDB collections and developer/publisher companies per game. A scheduled job backfills existing games (250 per 30 s); sync, import, manual add, merge and detail page refresh them. SERIES row: next part of a collection the user played. STUDIO row: backlog games from developers of top played games.
This commit is contained in:
1 parent
8dd398321c
commit
117ff61730
33 files changed
+1141
-32
No files matched your search
@@ -21,12 +21,19 @@ To Be Played is split into three repositories:
|
||||
can be taken over; its own finish then changes nothing.
|
||||
- **Backlog**: status (`BACKLOG`, `PLAYING`, `FINISHED`, `COMPLETED` = 100 %, `DROPPED`), rating 1–5, notes, priority,
|
||||
filters and sorting. "Pile of Shame" summary with a random suggestion of what to play.
|
||||
- **Picker**: four rows of up to 3 backlog games each, for a time budget (IGDB normal time to beat), in this order:
|
||||
`NEXT_UP` (the first games of the user's own backlog order), `SIMILAR` ("because you played": for each of the 3 most
|
||||
played games the first backlog game sharing its moods, no game twice), `LONGEST` (oldest `firstSeenAt`) and `RANDOM`
|
||||
(the mood row: random, HIGH priority first, then MEDIUM, then the rest). The mood filters only the `RANDOM` row; budget
|
||||
and exclude filters apply to every row. A row with no game is left out. A game can show in more than one row.
|
||||
Every game carries a `reason` (`source`, plus the anchor game for `SIMILAR` or `firstSeenAt` for `LONGEST`).
|
||||
- **Picker**: six rows of up to 3 backlog games each, for a time budget (IGDB normal time to beat), in this order:
|
||||
`NEXT_UP` (the first games of the user's own backlog order), `SERIES` (next in series: for each of the 6 most played
|
||||
IGDB series the user played, one backlog part, the parts released after the latest played part first), `SIMILAR`
|
||||
("because you played": for each of the 3 most played games the first backlog game sharing its moods, no game twice),
|
||||
`STUDIO` (for each of the 6 developers of the user's most played games, one backlog game with a credit of that
|
||||
company, developer credits first; publishers are never anchors, so a big publisher adds at most one card),
|
||||
`LONGEST` (oldest `firstSeenAt`) and `RANDOM` (the mood row: random, HIGH priority first, then MEDIUM, then the
|
||||
rest). The mood filters only the `RANDOM` row; budget and exclude filters apply to every row. A row with no game is
|
||||
left out. A game can show in more than one row. IGDB series (collections) and companies are stored per game
|
||||
(`game_credit`, `game_credit_check`) and refreshed with the other IGDB data; a scheduled backfill
|
||||
(`app.library.credit-backfill-*`) fetches them for existing games, 250 games per 30 s, so the two rows fill up over
|
||||
time after a deploy. Every game carries a `reason` (`source`, plus the anchor game for `SIMILAR`, `seriesName` for
|
||||
`SERIES`, `studioName` for `STUDIO` or `firstSeenAt` for `LONGEST`).
|
||||
Games already shown can be excluded for a reroll. Moods `STORY`, `COOP`,
|
||||
`CHILL`, `ACTION`, `SCARY` come from IGDB genres, themes and game modes; `SPEEDRUN` from speedrun.com.
|
||||
- **Follow users (#27)**: a logged-in user follows people with a public profile by display name (`/api/follows`, at most
|
||||
|
||||
Reference in new issue
Block a user