Commit Graph

349 Commits

Author SHA1 Message Date
Claudio Ortolina 4e24bfe966 Populate genres via Oban with generous retries
This is due to OpenAI erroring or timing out incredibly frequently.
2025-09-22 08:22:36 +03:00
Claudio Ortolina a3f2c75f69 Remove dns_cluster 2025-09-20 12:56:05 +03:00
Claudio Ortolina 6853299865 Show application version in console banner 2025-09-20 10:44:18 +03:00
Claudio Ortolina dd09fb907b Track both content and cache size 2025-09-20 09:49:06 +03:00
Claudio Ortolina 68a2159d7d Track total assets cache size in Live Dashboard 2025-09-20 08:24:15 +03:00
Claudio Ortolina a1b5842148 Prune asset cache every 12 hours 2025-09-20 08:17:16 +03:00
Claudio Ortolina 772de1751e Track asset cache inserted_at 2025-09-20 08:05:30 +03:00
Claudio Ortolina 90b3fa1fdc Refactor Records.Cover to Assets.Image 2025-09-20 07:42:38 +03:00
Claudio Ortolina c5d856fdd8 Add Transform.new/1 2025-09-19 23:58:09 +03:00
Claudio Ortolina 932289ed3b Extract artist_image component 2025-09-19 13:52:59 +03:00
Claudio Ortolina f57424d610 Store and edit artist images as assets 2025-09-18 21:26:26 +03:00
Claudio Ortolina 83151a125b Remove unused artist functionality 2025-09-18 21:26:26 +03:00
Claudio Ortolina 455c3a8b53 Serve artist images via assets 2025-09-18 21:26:20 +03:00
Claudio Ortolina e0ecafadd5 Join top artists with respective artist infos to get image hashes 2025-09-18 21:26:16 +03:00
Claudio Ortolina aa72692eaf Cache transformations 2025-09-17 16:54:47 +03:00
Claudio Ortolina 0996b78c7b Use Transforms to serve covers at the right size 2025-09-17 10:26:38 +03:00
Claudio Ortolina dc9c8fca8e Add Asset.Transform module
Allows building URLs with embedded transformation options
2025-09-17 09:33:13 +03:00
Claudio Ortolina 2cb9c9288c Add bin task to vacuum the repo 2025-09-16 13:48:29 +03:00
Claudio Ortolina dae334b1b7 Scrobbled tracks CRUD
- Failing tests
- Warnings
2025-09-16 12:45:36 +03:00
Claudio Ortolina 46721dae20 Rename sqlite extensions folder from darwin-aarch64 to darwin-arm64 2025-09-13 12:10:39 +03:00
Claudio Ortolina d865a61ef9 Make sure escaping works consistently everywhere (including with ?)
Remove duplication
2025-09-13 10:25:21 +03:00
Claudio Ortolina 1e211ce32a Simplify by removing search parser escape 2025-09-13 08:28:57 +03:00
Claudio Ortolina 62578de950 Pass one from Tidewave 2025-09-13 08:25:08 +03:00
Claudio Ortolina 21783f5dbf Resolve timezone from user browser 2025-09-11 22:14:15 +03:00
Claudio Ortolina c67fd27ea1 Fix timezone definition and handling across app 2025-09-11 16:17:20 +03:00
Claudio Ortolina ea9f8ca9a3 Remove record notes 2025-09-07 15:07:01 +03:00
Claudio Ortolina 824517dcba Add MusicLibrary.Notes contex functions 2025-09-07 12:22:16 +03:00
Claudio Ortolina 55ab648b1c Add MusicLibrary.Notes.Note 2025-09-07 09:24:19 +03:00
Claudio Ortolina f5ac213d65 Start supporting Linux on arm 2025-09-06 13:26:40 +03:00
Claudio Ortolina 45134d3f96 Add notes field to records 2025-09-05 14:53:06 +03:00
Claudio Ortolina 408899747e Add module to format numbers 2025-09-02 08:26:59 +03:00
Claudio Ortolina a4670412df Add total scrobble count to stats 2025-09-02 08:17:42 +03:00
Claudio Ortolina 16740cec5e Remove obsolete backfill function 2025-09-01 23:08:16 +03:00
Claudio Ortolina dc77d337c0 Migrate from embedded covers to assets 2025-09-01 16:20:41 +03:00
Claudio Ortolina cbf567a502 Support assets upserts 2025-09-01 15:06:00 +03:00
Claudio Ortolina bd12454884 Serve covers from assets 2025-09-01 14:44:17 +03:00
Claudio Ortolina 49c3a5cba2 Serve images from assets table 2025-09-01 13:46:32 +03:00
Claudio Ortolina cb7f3c23b0 Add backfill function 2025-09-01 13:39:00 +03:00
Claudio Ortolina db843bf061 Add convenience to store images 2025-09-01 11:59:16 +03:00
Claudio Ortolina a605610c9d Add base infra to store assets 2025-09-01 11:59:16 +03:00
Claudio Ortolina d9391a803e Remove 'rock' from genre count 2025-08-31 09:51:02 +03:00
Claudio Ortolina 064ece03f3 Show how many years ago for "On this day" records 2025-08-29 13:09:27 +03:00
Claudio Ortolina f47cbc77f5 Add "On this day" section to stats 2025-08-29 12:20:46 +03:00
Claudio Ortolina eea0e63ea8 Account for single quotes in search strings
According to the SQlite docs:

Strings that include any other characters must be quoted. Characters
that are not currently allowed in barewords, are not quote characters
and do not currently serve any special purpose in FTS5 query expressions
may at some point in the future be allowed in barewords or used to
implement new query functionality. This means that queries that are
currently syntax errors because they include such a character outside of
a quoted string may be interpreted differently by some future version of
FTS5.
2025-08-28 09:44:00 +03:00
Claudio Ortolina df4ca83aeb Add ability to rotate dominant colors 2025-08-27 21:11:13 +03:00
Claudio Ortolina df46759a8d Extract top artists component and lazy load each tab 2025-08-17 23:30:42 +03:00
Claudio Ortolina 30eddd983a Make top albums lazy load each tab 2025-08-17 23:30:42 +03:00
Claudio Ortolina 233e3091b6 Support applying scrobble rules only on a given set of tracks 2025-08-13 14:00:24 +03:00
Claudio Ortolina 27e9f565e4 Display online stores favicon URLs via Google API 2025-07-15 15:58:46 +01:00
Claudio Ortolina 4add3859fd Make online store templates ordering case-insensitive 2025-07-15 13:51:09 +01:00