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