Commit Graph

2649 Commits

Author SHA1 Message Date
Claudio Ortolina 7ebc12c4ac Improve records list tests
- Remove scaffolded tests (precursor to removing functionality)
- Add tests for paginated list
2024-09-23 14:52:37 +01:00
Claudio Ortolina e666b247e1 Improve display of single album page 2024-09-23 14:09:21 +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 776dcef172 Use randomized data in test fixtures 2024-09-22 20:46:48 +01:00
Claudio Ortolina 5e97f72f2a Sort records by artist, then title 2024-09-22 16:54:38 +01:00
Claudio Ortolina 380fa3428b Upgrade erlang to 27.1 2024-09-22 16:54:24 +01:00
Claudio Ortolina bc85165988 Remove stock Phoenix header 2024-09-20 18:27:31 +01:00
Claudio Ortolina 480af30e80 Improve records#show information structure 2024-09-20 18:24: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 1200215321 Enable aggressive caching for the images endpoint 2024-09-16 14:59:54 +01:00
Claudio Ortolina cb8b42aad6 When serving the image, only load its data 2024-09-16 14:47:13 +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 ee6378be27 Increase db pool size in dev
Improves fetching of multiple images from the db at the same time.
2024-09-16 14:45:11 +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 f1160eddd4 Add Sqlite console zed task 2024-09-16 09:45:47 +01:00
Claudio Ortolina 8eb64c6a4c Add dummy pagination with component wiring 2024-09-16 09:08:50 +01:00
Claudio Ortolina feef14170b Add research notes about search 2024-09-16 09:08:21 +01:00
Claudio Ortolina 4a8b8dcf43 Streamline information structure on records listing 2024-09-16 08:19:18 +01:00
Claudio Ortolina 5a3ff4be4b Bad fix for genres being nil 2024-09-15 20:59:51 +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 27f57cc68c Display artists in list 2024-09-15 20:31:13 +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 a1f4ac0791 Add unique index to on MB id for artists 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 cded55b924 Add console zed task 2024-09-15 20:28:39 +01:00
Claudio Ortolina 6f300ef1f0 Load phoenix_live_view in formatter config
Fixes this error thrown by ElixirLS when trying to format code:

** (Mix.Error) Formatter plugin Phoenix.LiveView.HTMLFormatter cannot be found
2024-09-15 20:28:39 +01:00
Claudio Ortolina 6063e560ba Move album art to the left and constrain its size 2024-09-15 20:28:38 +01:00
Claudio Ortolina 7e394aaa46 Widen main container 2024-09-15 20:28:38 +01:00
Claudio Ortolina d83a14773d Display genres as comma-separated list 2024-09-15 20:28:38 +01:00
Claudio Ortolina b386245740 Display record thumbnail in list 2024-09-15 20:28:38 +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 51d18f37bf First pass at seeding database
The task takes the Obsidian record folder as an argument.

It's not idempotent, so it will create duplicates if run multiple times.
2024-09-15 20:28:37 +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 8255e50e1d Address gettext deprecations
Deprecation warning:

	warning: defining a Gettext backend by calling

	    use Gettext, otp_app: ...

	is deprecated. To define a backend, call:

	    use Gettext.Backend, otp_app: :my_app

	Then, instead of importing your backend, call this in your module:

	    use Gettext, backend: MyApp.Gettext
2024-09-12 14:13:06 +01:00
Claudio Ortolina 72fd62c492 Lock elixir and erlang versions 2024-09-12 14:06:52 +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