Commit Graph

164 Commits

Author SHA1 Message Date
Claudio Ortolina cd4ad66098 Define MusicLibrary.Repo.vacuum/0 2025-01-30 09:29:17 +00:00
Claudio Ortolina 0d0350a514 Reuse Artist schema inside SearchIndex 2025-01-29 15:41:46 +00:00
Claudio Ortolina 9c3acd0fcf Remove duplication of types and formats definitions 2025-01-29 15:39:29 +00:00
Claudio Ortolina 9e1f00c9a8 Refactor type/format labels to enable translations 2025-01-29 11:04:19 +00:00
Claudio Ortolina 96bd453900 When not possible to determine otherwise, assums a record has been released 2025-01-29 10:21:41 +00:00
Claudio Ortolina 06f1997d59 Show if a wishlisted album is unreleased 2025-01-29 10:13:39 +00:00
Claudio Ortolina a0c06606fb Validate before constructing a complete record 2025-01-24 14:29:38 +00:00
Claudio Ortolina 38f7bf70bf Extract artist_changeset/2 to Artist module 2025-01-24 14:28:52 +00:00
Claudio Ortolina abc48cfdf3 Move fallback cover handling into Cover module 2025-01-24 12:48:03 +00:00
Claudio Ortolina 01ed11c0ab Use labels for selects in record edit form 2025-01-24 12:22:29 +00:00
Claudio Ortolina eeaaf8b542 Move ErrorTracker to its own repo and file
Note that the SQlite adapter supports version 2 onwards.
2025-01-23 10:40:36 +00:00
Claudio Ortolina 9428828064 Consolidate datetime as date formatting 2025-01-05 15:48:56 +00:00
Claudio Ortolina bb4da4143e Add "backup" format 2025-01-03 19:16:43 +00:00
Claudio Ortolina d194a54760 Adds API to return a random record from the collection 2025-01-01 19:28:49 +00:00
Claudio Ortolina 8bd7197d18 Show purchase date in collection view 2025-01-01 16:45:43 +00:00
Claudio Ortolina 6a9d54f735 Link to wishlisted albums in scrobble activity 2025-01-01 16:15:02 +00:00
Claudio Ortolina 5973206da3 Link to collected albums in scrobble activity 2025-01-01 16:11:14 +00:00
Claudio Ortolina 97533416f7 Support arbitrary resizing in cover controller 2024-12-31 11:58:30 +00:00
Claudio Ortolina 6a51251d55 Consolidate hashing into Cover module 2024-12-31 11:57:33 +00:00
Claudio Ortolina 6427710029 Enable sorting options in collection view 2024-12-29 15:47:37 +00:00
Claudio Ortolina db57195a0a Map Last.fm error codes to error atoms 2024-12-27 19:54:10 +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 1c47473c11 Move SQLite extension loading to config/runtime.exs
Addresses deprecation mentioned at https://hexdocs.pm/ecto/Ecto.Repo.html#c:init/2
2024-12-07 20:29:33 +01:00
Claudio Ortolina 06fd591e5f Use unicode extension to normalize sorting accented records 2024-12-07 19:38:10 +01:00
Claudio Ortolina 0f926ed86a Load Sqlite unicode extension 2024-12-07 18:32:22 +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 b49434b789 Extract LastFm.Config module 2024-12-03 08:56:23 +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 963b3c826f Extract Records.Artist 2024-12-02 10:55:12 +00:00
Claudio Ortolina eda0245c2c Format code 2024-12-02 09:38:20 +00:00
Claudio Ortolina 3733ef74ba Add batch function to remove artist IDs 2024-12-02 09:37:00 +00:00
Claudio Ortolina 228b4bc440 Use musicbrainz_id as a key for embedded artists 2024-12-02 09:23:13 +00:00
Claudio Ortolina cf51cab7ce Add basic test for Records.Cover module 2024-11-29 22:08:40 +00:00
Claudio Ortolina 010c769b55 Stream 50 rows at a time for batch operations 2024-11-29 10:00:18 +00:00
Claudio Ortolina cb0e06d603 Add batch operation to resize covers with incorrect sizes 2024-11-28 17:15: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