Commit Graph

61 Commits

Author SHA1 Message Date
Claudio Ortolina cd3448cd64 Improve heuristics for extraction of Discogs ID 2025-05-21 22:20:16 +01:00
Claudio Ortolina 051c6195b5 Harden release label display 2025-05-18 20:57:17 +01:00
Claudio Ortolina cc3cf02490 Show artist MusicBrainz ID (with link and copy button) 2025-05-15 16:59:12 +01:00
Claudio Ortolina f21a289008 Load release when opening collection show page
Includes small fixes to make both logic and tests more robust
2025-05-11 11:04:28 +01:00
Claudio Ortolina 952d3388a1 Scrobble using finished_at time 2025-05-07 10:46:51 +01:00
Claudio Ortolina a94c349781 Add context function to scrobble a release 2025-05-07 09:07:45 +01:00
Claudio Ortolina 5b23e1d5a5 Add title to MusicBrainz.Release 2025-05-07 09:03:20 +01:00
Claudio Ortolina 79d2bdff7b Account for tracks with nil length 2025-05-05 16:18:49 +01:00
Claudio Ortolina e1938f698c Display medium title if available 2025-05-05 16:18:47 +01:00
Claudio Ortolina 72843ed835 Show total and per disc duration 2025-05-05 16:05:05 +01:00
Claudio Ortolina 1401cc19d3 Display artist names in compilations track sheet 2025-05-04 21:58:44 +01:00
Claudio Ortolina fba621db10 Include artists in get_release 2025-05-04 21:50:23 +01:00
Claudio Ortolina f4fe638a95 Display tracks for records with a selected release 2025-05-04 21:10:40 +01:00
Claudio Ortolina bc213caa45 Store selected release id when scanning a record 2025-05-01 19:36:47 +01:00
Claudio Ortolina 3e7341d4ca Support choosing a selected release 2025-05-01 17:42:40 +01:00
Claudio Ortolina e083950138 Rename record.release to record.release_date
Includes changes to dependent tables (i.e. the record search index) and
related functions.
2025-05-01 14:04:57 +01:00
Claudio Ortolina 6484f94f38 Account for lack of MusicBrainz artist relations 2025-04-28 20:15:35 +01:00
Claudio Ortolina ece877086f Store artist infos 2025-04-26 13:57:43 +01:00
Claudio Ortolina a5c261d9ad Can extract discogs id from a musicbrainz artist 2025-04-26 08:13:05 +01:00
Claudio Ortolina 61e9a48b65 Get artist from MusicBrainz 2025-04-25 20:41:25 +01:00
Claudio Ortolina 9f13d090ed Use more precise types 2025-04-07 19:27:17 +01:00
Claudio Ortolina a52a980938 Exclude digital releases when searching via barcode 2025-03-22 15:08:13 +00:00
Claudio Ortolina 2f5c83b026 Show album covers when importing/scanning 2025-03-01 17:36:21 +00:00
Claudio Ortolina a218942110 Remove mox in favour of built-in Req stubs 2025-02-28 16:41:16 +00:00
Claudio Ortolina 8aa283cb84 Refactor MusicBrainz.APIImpl to use Req 2025-02-28 11:19:37 +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 bb6e805e7b Show release metadata after scanning 2025-02-15 18:08:30 +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 949fdb7138 Formalize search_release_by_barcode/2 callback 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 bb72790be6 Include media in releases 2025-02-12 21:53:47 +00:00
Claudio Ortolina ba288b8802 Rename parse_subtype to parse_type 2025-02-10 19:02:58 +00:00
Claudio Ortolina 27bd32b2a9 Move subtype parsing to ReleaseGroup 2025-02-10 19:01:56 +00:00
Claudio Ortolina c19184337b Move url/1 to ReleaseGroup 2025-02-10 19:01:00 +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 4593b60da5 Always use @base_url 2025-02-08 13:20:49 +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 8bf3de9b55 Enforce keys for all structs 2025-01-24 10:35:58 +00:00
Claudio Ortolina 16e8282891 Fix typing for config modules 2025-01-03 18:52:43 +00:00
Claudio Ortolina 9dce1cacb9 Where possible, use built-in JSON instead of Jason
Note that it's not possible to replace any call where we encode and
pretty print, as JSON doesn't have such functionality.
2024-12-19 20:18:09 +00:00
Claudio Ortolina 91b81de0f8 Remove duplication around MusicBrainz URL generation 2024-12-11 23:54:21 +03:00
Claudio Ortolina 3409ba6d6b Fix typings on config modules 2024-12-11 23:53:29 +03:00
Claudio Ortolina 39b925676f Use NimbleOptions to validate MusicBrainz.Config 2024-12-04 15:01:52 +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 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 5cee7db630 Add comment around hardcoded limits in release group rels fetch 2024-11-24 21:24:12 +00:00