Commit Graph

86 Commits

Author SHA1 Message Date
Claudio Ortolina 7df136c890 Sort aliases 2025-02-20 15:27:01 +00:00
Claudio Ortolina ce75b42d06 Show record status when scanning
For now it only imports new records - it should also purchase wishlisted
ones.
2025-02-19 10:21:44 +00:00
Claudio Ortolina 50b025efca Refactor with to avoid internal assignments 2025-02-18 12:38:29 +00:00
Claudio Ortolina 025a5105ed Use map_join instead of map+join 2025-02-18 10:14:31 +00:00
Claudio Ortolina 94a2784020 Move function in MusicBrainz main module 2025-02-17 22:07:49 +00:00
Claudio Ortolina 37f72261c3 Extract MusicBrainz main module 2025-02-17 17:30:13 +00:00
Claudio Ortolina 6d0eeccbb7 Add TODOs for moving logic to MusicBrainz context 2025-02-17 08:47:59 +00:00
Claudio Ortolina d077f08afa Start making it more robust
- Use structured data for search/render
- Start testing component
- Start testing domain logic
2025-02-15 18:08:30 +00:00
Claudio Ortolina 3c7c9cc596 Scan barcodes and display releases 2025-02-15 18:08:30 +00:00
Claudio Ortolina c85e66f129 Bubble up errors when streaming releases 2025-02-12 22:43:40 +00:00
Claudio Ortolina 6ad28f1271 When importing a record, stream all its releases 2025-02-05 15:31:08 +00:00
Claudio Ortolina f29dd1f0ab Fetch 100 releases when importing a record
The release group contains only 25 releases, which breaks tracking
scrobble status. Albums like "Toto IV" or "Hounds of Love" end up
looking like they're not part of the collections because the individual
releases are not stored.

Still error prone, because this change doesn't paginate to more than 100
records, but that will be addressed in a future commit.
2025-02-05 10:12:27 +00:00
Claudio Ortolina abc48cfdf3 Move fallback cover handling into Cover module 2025-01-24 12:48:03 +00:00
Claudio Ortolina 6427710029 Enable sorting options in collection view 2024-12-29 15:47:37 +00:00
Claudio Ortolina 4be2330891 Fix prompt to avoid the result being returned in a code block
Not sure why this is needed, considering that the API call clearly
specifies the `json_object` response format.
2024-12-19 21:05:02 +00:00
Claudio Ortolina 53b89dc329 Extract Artists context 2024-12-18 11:12:06 +00:00
Claudio Ortolina 76605a1114 Add function to get similar artists 2024-12-17 20:44:31 +00:00
Claudio Ortolina 3c85f9e974 Extract OpenAI.Completion struct 2024-12-11 23:24:16 +03:00
Claudio Ortolina b68a7ac734 Can fetch genres from OpenAI 2024-12-10 16:45:29 +03:00
Claudio Ortolina f48372f7b3 Use MapSets for performance
Not noticeable with current database size, but lays a good foundation
for larger libraries.

For example, given a list of 300 artist IDs, checking if an ID is in the
list takes between 30 and 40 ms (for an ID towards the end of the list),
while the MapSet version takes consistently between 15 and 20 ms.
2024-12-10 14:21:57 +03:00
Claudio Ortolina 9e57103842 Where possible, link scrobbled artists to artist page 2024-12-10 14:13:50 +03:00
Claudio Ortolina 06fd591e5f Use unicode extension to normalize sorting accented records 2024-12-07 19:38:10 +01:00
Claudio Ortolina 8350ffd3a4 To get artist info, try mbid and then artist name 2024-12-04 21:07:56 +00:00
Claudio Ortolina e1dc2bfc7f Make MusicBrainz user agent configurable 2024-12-04 10:44:31 +00:00
Claudio Ortolina 7575e5978a Extract config for MusicBrainz 2024-12-04 10:33:41 +00:00
Claudio Ortolina 9f2335cfa0 Use correct LastFm api module 2024-12-03 20:14:48 +00:00
Claudio Ortolina 2094c1cf7b Use LastFm.Config where needed 2024-12-03 09:18:55 +00:00
Claudio Ortolina 18df3683fc Render a minimal artist page 2024-12-02 17:35:47 +00:00
Claudio Ortolina 2d721774d6 Can fetch an artist info from Last.fm 2024-12-02 12:40:07 +00:00
Claudio Ortolina b63b3a633a Can fetch records by a specific artist 2024-12-02 10:55:12 +00:00
Claudio Ortolina 6339196b17 Search by genre
Can also click on genres in detail views.
2024-11-26 13:35:15 +00:00
Claudio Ortolina f0212eeb6f Consolidate cover resize logic
Moves resizing out of the MusicBrainz namespace to Records - which
improves division of responsibilities, and removes double resizing
during import.
2024-11-26 08:35:16 +00:00
Claudio Ortolina 148f68fbf3 Add function to resize cover data in place 2024-11-25 11:26:34 +00:00
Claudio Ortolina 2e2000fe01 Introduce separate search index
Uses a fts5 virtual table, kept up to date via triggers on the records
table.
2024-11-22 19:37:13 +00:00
Claudio Ortolina 4581666282 Don't apply fallback cover when refreshing it
So that we don't accidentally override a user-uploaded cover with the
fallback one.
2024-11-21 17:57:49 +00:00
Claudio Ortolina 09f3563134 Can refresh cover for a record in the collection 2024-11-19 11:28:50 +00:00
Claudio Ortolina cc1d2e3b0f Increase stored cover size to 600px
Doesn't affect existing covers
2024-11-19 11:28:50 +00:00
Claudio Ortolina 659894aaee Materialize included release group ids 2024-11-17 11:52:47 +00:00
Claudio Ortolina 60b098785b Can refresh musicbrainz_data for collection records 2024-11-15 10:01:53 +00:00
Claudio Ortolina dbdb698ef3 Display count of child release groups 2024-11-14 15:16:19 +00:00
Claudio Ortolina bd8f4cc979 Define essential record fields 2024-11-10 16:27:15 +00:00
Claudio Ortolina 0e05c3cfa9 Refactor record building into Record 2024-11-10 16:18:24 +00:00
Claudio Ortolina 6fa3e72a3f Use a map instead of 4 arguments 2024-11-10 16:10:38 +00:00
Claudio Ortolina 05d1d648b1 Streamline batch module, removing obsolete functions 2024-11-10 14:27:25 +00:00
Claudio Ortolina bd0336c4a2 Start extracting a Collection context 2024-11-10 13:38:50 +00:00
Claudio Ortolina 47e738eeab Distinguish importing functions 2024-11-08 19:38:02 +00:00
Claudio Ortolina 0fd12ce44a Can wishlist a scrobbled record 2024-11-08 19:36:05 +00:00
Claudio Ortolina 4c57f47bca Move sorting to db query 2024-11-01 19:04:40 +00:00
Claudio Ortolina 9f2acc4e5d Make records ordering case insensitive
So that "iamthemorning" gets slotted in the right place
2024-10-31 12:49:04 +00:00
Claudio Ortolina bd84e7e2b3 Remove unused functions 2024-10-31 08:31:01 +00:00