Commit Graph

82 Commits

Author SHA1 Message Date
Claudio Ortolina 715a1e1f69 Consolidate handling of artist joinphrases 2026-03-19 15:09:34 +00:00
Claudio Ortolina 9e1dbfd530 Re-enable Credo ModuleDoc check
Closes #108
2026-03-13 10:52:01 +00:00
Claudio Ortolina 7cf9b4e7f8 First pass at uniformed types, specs and docs
- spec public functions (skipping controllers, views, live views and
components)
- use types instead of explanations in docs
- remove redundant docs
- fix typos
2026-03-06 08:33:11 +00:00
Claudio Ortolina eb8a00ab54 Replace String.to_integer with safe Integer.parse
Use Integer.parse/1 instead of String.to_integer/1 on user-supplied
and external API input to prevent ArgumentError crashes on non-numeric
values. Adds fallback defaults or nil returns at each call site.
2026-03-05 14:27:37 +00:00
Claudio Ortolina de14ec3e25 Consolidate completely stateless tests into doctests
Removing dupes
2026-03-03 11:30:52 +00:00
Claudio Ortolina c066585cbf Display ALL catalog numbers 2026-03-02 19:05:09 +00:00
Claudio Ortolina d770640cd5 Expose release packaging information 2026-03-02 19:00:28 +00:00
Claudio Ortolina a992c1f0dd Introduce a Req.RateLimiter module to fix API rate limit issues 2026-03-02 15:04:45 +00:00
Claudio Ortolina 919a42d355 Parameterize API cooldowns 2026-03-01 17:17:32 +00:00
Claudio Ortolina bc7741d176 Fix parsing of DVD medium format 2026-02-19 10:24:00 +00:00
Claudio Ortolina 3079ebdd02 Remove obsolete Obsidian import logic 2026-02-18 22:08:47 +00:00
Claudio Ortolina bcae291cff Support getting artist bios from Wikipedia (experimental) 2026-02-09 15:20:06 +00:00
Claudio Ortolina 14c198c2cc Select all tracks for a release/medium 2025-11-19 16:32:38 +00:00
Claudio Ortolina 23c36e2521 Extract ExternalLink module 2025-10-02 11:51:44 +03:00
Claudio Ortolina 09a72734b1 Display cover art for releases 2025-09-24 21:51:38 +03:00
Claudio Ortolina c20e901d21 Show total results inside add record modal 2025-08-27 09:49:18 +03:00
Claudio Ortolina 676c2e4290 Enable quokka with :module_directives rule 2025-05-28 19:41:57 +01:00
Claudio Ortolina 6e19ab410d Account for VHS and Unknown formats 2025-05-25 10:32:11 +01:00
Claudio Ortolina b6c554af34 Display rich release summary in form and details 2025-05-25 08:45:38 +01:00
Claudio Ortolina d666765d18 Include catalog number in selected release label 2025-05-24 19:01:43 +01:00
Claudio Ortolina 3fb0028df6 When fetching releases, include labels 2025-05-24 15:21:24 +01:00
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