Commit Graph

145 Commits

Author SHA1 Message Date
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 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 3c8b39237c Fix return type of artist_get_info fixture 2025-01-24 10:35:39 +00:00
Claudio Ortolina 96349b918d Add missing Artists.get_artist_info/1 test 2025-01-23 15:27:55 +00:00
Claudio Ortolina e4be44f6bb Add missing Artists.get_all_artist_ids/0 test 2025-01-23 15:24:03 +00:00
Claudio Ortolina ed6ef2c7ef Rename record_fixture* to record* 2025-01-06 14:20:36 +00:00
Claudio Ortolina cf377f6a0c Remove unnecessary alias 2025-01-06 14:13:45 +00:00
Claudio Ortolina 5d40080741 Add note about SQLite RANDOM function 2025-01-02 09:38:50 +00:00
Claudio Ortolina 65899b8077 Add tests for /api/collection/random endpoint 2025-01-01 20:57:01 +00:00
Claudio Ortolina 6cf7e2c9de Add ordering tests to Collection context 2024-12-30 17:16:14 +00:00
Claudio Ortolina 6427710029 Enable sorting options in collection view 2024-12-29 15:47:37 +00:00
Claudio Ortolina 53b89dc329 Extract Artists context 2024-12-18 11:12:06 +00:00
Claudio Ortolina 3fbd6ba1bf Use release and release group fixtures with names everywhere 2024-12-14 23:52:09 +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 11ebd0b6de Add test to verify correct loading of SQLite extension 2024-12-07 19:45:06 +01:00
Claudio Ortolina e1dc2bfc7f Make MusicBrainz user agent configurable 2024-12-04 10:44:31 +00:00
Claudio Ortolina 18df3683fc Render a minimal artist page 2024-12-02 17:35:47 +00:00
Claudio Ortolina b63b3a633a Can fetch records by a specific artist 2024-12-02 10:55:12 +00:00
Claudio Ortolina cf51cab7ce Add basic test for Records.Cover module 2024-11-29 22:08:40 +00:00
Claudio Ortolina b2e1f1f8d1 Index records by type to improve query perf 2024-11-23 23:16:24 +00:00
Claudio Ortolina 2e2000fe01 Introduce separate search index
Uses a fts5 virtual table, kept up to date via triggers on the records
table.
2024-11-22 19:37:13 +00:00
Claudio Ortolina 09f3563134 Can refresh cover for a record in the collection 2024-11-19 11:28:50 +00:00
Claudio Ortolina cc1d2e3b0f Increase stored cover size to 600px
Doesn't affect existing covers
2024-11-19 11:28:50 +00:00
Claudio Ortolina 0f97341d5f Add test for refreshing musicbrainz_data 2024-11-19 10:54:17 +00:00
Claudio Ortolina 87cd668a33 Populate release_ids and included_release_groups when record is created 2024-11-18 15:34:16 +00:00
Claudio Ortolina 97c7be7b0c Store release ids when importing a record 2024-11-12 15:01:17 +00:00
Claudio Ortolina 95ce71d9c5 Add test for refreshing a record cover 2024-11-12 10:04:18 +00:00
Claudio Ortolina ae3c754570 Add test for importing a record from a release 2024-11-12 09:54:47 +00:00
Claudio Ortolina c8df700939 Add tests for search and import release groups 2024-11-12 09:48:19 +00:00
Claudio Ortolina 0e0e7e09be Add tests for get_record!/1 and get_cover/1 2024-11-11 19:02:10 +00:00
Claudio Ortolina f4ae1f0fc9 Add tests for Records.search_records_count/2 2024-11-11 14:19:57 +00:00
Claudio Ortolina aba8e6e490 Fix unused variable warning 2024-11-11 12:35:32 +00:00
Claudio Ortolina 0cbece6ed4 Add Records search tests
Important note: to help, we use a deterministic implementation of artist
UUID generation based on the artist name.
2024-11-11 10:28:17 +00:00
Claudio Ortolina f704d3834b Add collection context tests 2024-11-10 21:12:09 +00:00
Claudio Ortolina 62b4578a44 Add wishlist context tests 2024-11-10 19:11:57 +00:00
Claudio Ortolina e30ba5ef3f Implement basic parser 2024-10-10 10:02:26 +01:00
Claudio Ortolina 97b04ba8a2 Remove scaffolded test
Doesn't provide any value - should be replaced with proper integration
tests.
2024-10-01 22:39:03 +01:00
Claudio Ortolina bcb70c9e1b Store artists when importing a record 2024-09-24 09:40:52 +01:00
Claudio Ortolina b6ae022a6a Move obsidian-related imports under Obsidian 2024-09-24 09:21:13 +01:00
Claudio Ortolina afc1802399 Serve local cover images 2024-09-16 09:50:07 +01:00
Claudio Ortolina 170f195aae Fix edge cases with parser
- Remove front_matter dependency, and use a hand-rolled simpler parser
  which is suitable for the data to parse (which is well-formed).
- Fix a couple of edge cases with years and titles with commas
2024-09-15 20:28:37 +01:00
Claudio Ortolina 2c42f3ea32 Can parse an obsidian entry to retrieve correct metadata 2024-09-15 20:28:37 +01:00
Claudio Ortolina e08fbe3740 Generate schema and live_view scaffold for records
1. Records are not yet tied to artists
2. The generated edit route, along with related functionality, may be
   deleted as I don't think it's gonna be needed. Leaving it included in
   the commit for reference.
2024-09-12 14:51:58 +01:00