feat(library): filter the picker by mood

Moods come from IGDB genres, themes and game modes and are stored per game in game_mood (V9), refreshed like the time to beat. Picking a mood also refreshes the moods of the backlog in the background, so users without a Steam sync get them too.
This commit is contained in:
lobo committed 2026-09-26 07:36:10 +02:00
1 parent 5e7455db05
commit 7663e09a8c
22 files changed
+693 -15

No files matched your search

@@ -0,0 +1,8 @@
-- Moods per library key (Steam appid, or minus the IGDB id), derived from IGDB's genres, themes and game modes and
-- shared by all users. An empty array means IGDB knows the game but no mood fits; the row is kept so the game is not
-- asked again before it is stale.
CREATE TABLE game_mood (
appid BIGINT PRIMARY KEY,
moods VARCHAR(16)[] NOT NULL,
checked_at TIMESTAMPTZ NOT NULL
);