Commit Graph
15 Commits
Author SHA1 Message Date
SansanandClaude Opus 5.5 bb8de5548d Add alternative names and cover art for soundtracks
CI / docker (push) Failing after 22s
CI / integration (push) Successful in 26s
CI / test (push) Successful in 26s
CI / publish (push) Skipped
Alternative names (#32):
- PUT /api/v1/soundtracks/{uuid}/alternative-names replaces a soundtrack's
  alternative names (trimmed, deduplicated, without the soundtrack's own name).
- alternative_names is in the soundtrack and statistics responses.
- /find matches them too and shows which name matched.

Covers (#12), stored in COVERS_PATH and off when it is not set:
- GET, PUT (upload) and DELETE /api/v1/soundtracks/{uuid}/cover, and
  PUT .../cover/source to pick a SteamGridDB game or AniList anime by ID.
  Uploaded and picked covers are never replaced automatically.
- With STEAMGRIDDB_API_KEY, a background job searches SteamGridDB, then
  AniList, by name, alternative names and the name without bracketed parts,
  at startup, after a sync and after names change. Search results are ranked
  by matching words, so "Civilization IV" gets "Sid Meier's Civilization IV".
- cover_modified (Unix seconds) is in the soundtrack and statistics responses,
  so clients can cache covers.

The new columns are added to migration 000006, which is not released yet.

Closes #12, closes #32

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:57:18 +02:00
Sansan 6da96f79e7 Add a command to write the OpenAPI spec without a server
CI / test (push) Successful in 28s
CI / integration (push) Successful in 39s
CI / publish (push) Skipped
CI / docker (push) Successful in 51s
`just openapi [dir]` (go run ./cmd/openapi) writes openapi.json (3.1) and openapi-3.0.json without a database or configuration. A test checks it matches the spec the server serves.
2026-10-06 17:01:12 +02:00
Sansan 59dfff38bc Clean up build tooling and Dockerfile
- Dockerfile cross-compiles Go for the target platform (amd64/arm64
  without emulation), uses templ pinned in go.mod, runs as uid 1000 on
  alpine and lets FRONTEND_IMAGE pin the frontend version
- justfile: tools via go tool, `test` (unit) and `test-integration`
  (uses the active docker context), no hardcoded paths, no tailwind or
  frontend recipes
- Removed app.yaml, init.sh, tailwind.config.js and the tracked .idea
  folder
2026-10-06 15:21:46 +02:00
Sansan 2406fe9eb6 Ignore database dumps
Build / build (push) Failing after 34s
2026-10-05 18:49:15 +02:00
Sansan 73d85adc42 Updated dockerfile to make sure that it works after all changes 2025-01-28 15:33:25 +01:00
Sansan 5b640375c3 Reorganized the code, moved more things to the new part 2025-01-13 16:08:54 +01:00
Sansan 8e2d22b899 Updated .gitignore and added justfile 2025-01-09 14:34:43 +01:00
Sansan 8fa93d580d Added concurrent sync, added search page. Other small changes 2024-10-04 20:19:40 +02:00
Sansan 58ff8a64cc Fixed some bugs
* Fixed bug with sync
* Made default list of game randomized
* Added get all games ordered
* Added air for live reload
2022-04-23 11:40:54 +02:00
Sansan 02501e9af8 Merge remote-tracking branch 'origin/master' 2022-01-15 23:23:32 +01:00
Sansan 0e5c792aec Updated .gitignore 2021-12-05 11:43:34 +01:00
Sansan ced61b5aae Updated .gitignore 2021-10-28 21:28:53 +02:00
Sansan c21b66e0d9 Hopefully fixed the caching problem with random 2020-12-02 19:50:44 +01:00
Sansan ebaa93b1ea Small fix in Dockerfile 2020-11-27 19:34:22 +01:00
Sansan 316c3cde93 1.0 of Go version 2020-11-27 19:22:48 +01:00