Commit Graph

208 Commits

Author SHA1 Message Date
Claudio Ortolina 4fc86c959b Only show similar artists from collection 2025-04-09 20:39:47 +01:00
Claudio Ortolina ddd81ff7dd Display 50 rows of charts 2025-04-06 19:31:12 +01:00
Claudio Ortolina 6777d716fa Link to artist page in count by artist chart 2025-04-06 17:49:22 +01:00
Claudio Ortolina 1ab3c5e4df Remove useless docs 2025-04-06 09:10:12 +01:00
Claudio Ortolina 83fa2e99a5 Amend counts to only operate on collection records 2025-04-06 08:45:47 +01:00
Claudio Ortolina 19e6e17542 Hardcode top 30 results, fix padding 2025-04-05 12:47:31 +01:00
Claudio Ortolina 8d602aa50b Charts: count by artists and count by genre
Generated via Cursor and Claude 3.5 - initial version
2025-04-05 12:41:17 +01:00
Claudio Ortolina bd9f88ab02 Don't pipe in one function only 2025-03-09 15:49:07 +00:00
Claudio Ortolina 8a80062c80 Surface scan+import errors 2025-03-07 11:48:18 +00:00
Claudio Ortolina fee2799d50 Show barcodes that are not found inside the results UI
Includes a refactor to extract/cleanup barcode scan logic from the
component to a separate context with a better API.
2025-03-07 11:22:23 +00:00
Claudio Ortolina 8aa283cb84 Refactor MusicBrainz.APIImpl to use Req 2025-02-28 11:19:37 +00:00
Claudio Ortolina c67d11da0c Show similar artists in artist page
Styling to be defined - only links for now.
2025-02-23 16:56:52 +00:00
Claudio Ortolina 570ce4b145 Can count records by genre 2025-02-22 10:34:56 +00:00
Claudio Ortolina 889ba61e4c Extract LastFm module 2025-02-21 16:02:18 +00:00
Claudio Ortolina 7df136c890 Sort aliases 2025-02-20 15:27:01 +00:00
Claudio Ortolina 184c110599 Don't use parentheses on 0-arity function definitions 2025-02-20 15:27:01 +00:00
Claudio Ortolina 26297a8bb1 Avoid unnecessary module attributes 2025-02-20 15:08:39 +00:00
Claudio Ortolina ab2d1726bf Use Application.app_dir/2 instead of :code.priv_dir 2025-02-20 15:04:29 +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 17a1e87be5 Fix 'variable name before the pattern' consistency issue 2025-02-18 12:41:10 +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 4e77894783 Slow down batch refresh of metadata 2025-02-12 22:31:09 +00:00
Claudio Ortolina 219d39de00 Use correct method to batch refresh musicbrainz data 2025-02-12 21:55:28 +00:00
Claudio Ortolina 1ae77b512e Make released?/2 handle nil releases 2025-02-11 20:14:30 +00:00
Claudio Ortolina f8147a6f52 Do not require a record release date 2025-02-11 20:05:54 +00:00
Claudio Ortolina 86db563bd4 Rename MusicbrainzData -> ReleaseGroup 2025-02-10 16:41:21 +00:00
Claudio Ortolina 027b3af547 Rename ReleaseGroup to ReleaseGroupSearchResult 2025-02-10 16:38:04 +00:00
Claudio Ortolina f99a55fca7 Simplify included release groups logic
This makes the code slightly less efficient as it constructs
intermediate structures BEFORE filtering, but it makes it for simpler
code to maintain down the line.

Performance is not visible affected as the largest lists involved count
around 200 items.
2025-02-10 09:59:25 +00:00
Claudio Ortolina 224bcdba38 Extract MusicbrainzData module 2025-02-10 09:49:34 +00:00
Claudio Ortolina 791807c137 Fix issue with formatting of "" release dates 2025-02-10 09:33:26 +00:00
Claudio Ortolina d39129e7ff Reorder module functions roughly by topic/usage 2025-02-09 17:02:54 +00:00
Claudio Ortolina b42a774936 Remove unused functionality and make functions private 2025-02-09 17:01:00 +00:00
Claudio Ortolina be1de52984 Refactor Records.Record for simplification
- Remove unnecessary intermediate variables
- Remove unnecessary pipes
2025-02-09 08:33:00 +00:00
Claudio Ortolina 9b25556245 Refactor Record.child_release_groups/1 to use stored ids 2025-02-06 21:03:38 +00:00
Claudio Ortolina b80a98a881 Included published releases count in record details pages 2025-02-06 11:37:55 +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 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