Commit Graph

143 Commits

Author SHA1 Message Date
Claudio Ortolina 1e0d5486e0 Rename image* to cover* 2024-10-02 16:33:42 +01:00
Claudio Ortolina fb978406cd Remove year from records 2024-10-02 14:32:27 +01:00
Claudio Ortolina 024d95da7c Use release instead of year 2024-10-02 14:22:22 +01:00
Claudio Ortolina a3eaaef9d2 Move release group assembling logic into MB module 2024-10-01 17:22:31 +01:00
Claudio Ortolina 82b1f12f99 Avoid loading image-related fields when not necessary
Image data and url are only necessary when loading the image, which is
done exclusively via the /images endpoint. Most other read queries can
safely exclude them, and rely only on the hash as a cache key.
2024-10-01 12:26:27 +01:00
Claudio Ortolina 9b7429dd9f Store image hashes in the db - part 2 2024-09-30 20:20:32 +01:00
Claudio Ortolina 180224d381 Store image hashes in the db - part 1 2024-09-30 20:09:32 +01:00
Claudio Ortolina 039ba95a60 Improve home page stats 2024-09-29 17:21:48 +01:00
Claudio Ortolina 64ea8fe3fa Extend import to support choosing format 2024-09-28 20:23:22 +01:00
Claudio Ortolina 82e5962c74 Add record format (defaulting to CD) 2024-09-28 19:16:15 +01:00
Claudio Ortolina 7dec0309b5 Setup fly.io deployment 2024-09-27 19:38:17 +01:00
Claudio Ortolina ae45ab44df Can search and paginate records 2024-09-27 09:46:45 +01:00
Claudio Ortolina 95164cd977 Make search match all artists attribute
Ignores the fact that artists is a JSON structure - just treats it as a
giant piece of text.
2024-09-26 16:32:01 +01:00
Claudio Ortolina f6d2bcf3fd Add function to search for record 2024-09-24 22:49:40 +01:00
Claudio Ortolina d3ea26ed8f Improve importing visual feedback 2024-09-24 18:33:39 +01:00
Claudio Ortolina 31d74fde34 Handle importing errors 2024-09-24 18:33:16 +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 d97f21a8ef Can search and import records
Requires refactor and cleanup, along with integration tests
2024-09-23 20:27:40 +01:00
Claudio Ortolina 878a7d7326 Clean up importer and music_brainz modules
- Add missing docs
- Move around existing information for better documentation
- Rename some functions for consistency
2024-09-23 09:42:51 +01:00
Claudio Ortolina 15bc1816cf Add function to search the MusicBrainz API 2024-09-22 21:01:38 +01:00
Claudio Ortolina 5e97f72f2a Sort records by artist, then title 2024-09-22 16:54:38 +01:00
Claudio Ortolina 99960832c8 Adds record pagination 2024-09-20 10:05:49 +01:00
Claudio Ortolina 5623a5239f Resize cover images to 400x400 2024-09-19 13:34:26 +01:00
Claudio Ortolina 74e7d27ba4 Run the image import sequentially
Changed this for debug as many images are huge and were tripping the
logic off - the whole importer logic needs to be
restructured for better parallelism.
2024-09-16 14:46:16 +01:00
Claudio Ortolina 04755eb5fe Removes boilerplate docs 2024-09-16 14:45:59 +01:00
Claudio Ortolina 6ac5a88c47 Raw importer for all cover images 2024-09-16 12:30:54 +01:00
Claudio Ortolina afc1802399 Serve local cover images 2024-09-16 09:50:07 +01:00
Claudio Ortolina 4d17790cbe Main list orders by the main artist 2024-09-15 20:59:30 +01:00
Claudio Ortolina 90e8022a77 Fix incorrect cast 2024-09-15 20:32:10 +01:00
Claudio Ortolina ce1ecf06a7 Import artists on top of existing records 2024-09-15 20:31:13 +01:00
Claudio Ortolina affa7a007e Simplify data model
Artists can be embedded inside records - given the projected size of the
dataset (a few 1000s in the worst case) relationships can be built in
memory without the need to be denormalized into separate tables.
2024-09-15 20:29:52 +01:00
Claudio Ortolina 988d311fef Add artist importer 2024-09-15 20:28:39 +01:00
Claudio Ortolina e3ff0228cd Load artists when showing a record 2024-09-15 20:28:39 +01:00
Claudio Ortolina 99d87a5596 Add http client dependency 2024-09-15 20:28:39 +01:00
Claudio Ortolina e1ab16a5fd Limit the amount of records in the list
Needs to be replaced with pagination
2024-09-15 20:28:38 +01:00
Claudio Ortolina 705fd665d2 Formatter pass 2024-09-15 20:28:37 +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 e4ae157275 Associate artists and records 2024-09-15 20:28:35 +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
Claudio Ortolina 34111a44ba Generate basic artist schema 2024-09-12 14:51:58 +01:00
Claudio Ortolina d547ee6f8d Generate project
Using `mix phx.new music_library --database sqlite3 --binary-id --no-mailer`
2024-09-12 14:05:08 +01:00