Commit Graph

2328 Commits

Author SHA1 Message Date
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