Claudio Ortolina
a19d42ae30
Add more fixtures for release groups and releases
2024-12-14 23:24:21 +03:00
Claudio Ortolina
632f5c4661
Include album names in mb fixtures
2024-12-14 23:19:14 +03:00
Claudio Ortolina
c705517415
Restore import functionality from stats
...
Accidentally removed in 135d1c2 .
2024-12-14 17:23:59 +03:00
Claudio Ortolina
04d60b09a4
Extract search component
2024-12-13 23:22:21 +03:00
Claudio Ortolina
a4f4407241
Center-ish counters in stats page
2024-12-13 22:41:42 +03:00
Claudio Ortolina
f7045a9f14
Extend testing of artist page
2024-12-13 22:25:06 +03:00
Claudio Ortolina
ed86ef7b5a
Enable new actions menu on wishlist detail page
2024-12-12 20:23:48 +03:00
Claudio Ortolina
c3f973b1e1
Move record actions into menu
2024-12-12 20:14:02 +03:00
Claudio Ortolina
91b81de0f8
Remove duplication around MusicBrainz URL generation
2024-12-11 23:54:21 +03:00
Claudio Ortolina
3409ba6d6b
Fix typings on config modules
2024-12-11 23:53:29 +03:00
Claudio Ortolina
21439a580f
TODO: make artist records a stream
2024-12-11 23:24:38 +03:00
Claudio Ortolina
3c85f9e974
Extract OpenAI.Completion struct
2024-12-11 23:24:16 +03:00
Claudio Ortolina
8d7fe4d660
Extract record list component
2024-12-11 22:47:23 +03:00
Claudio Ortolina
693b350db2
Add papertrail for copied code
2024-12-10 19:24:48 +03:00
Claudio Ortolina
31b6100687
Shrink buttons on mobile
2024-12-10 18:48:49 +03:00
Claudio Ortolina
44a8650c6c
Move API Key to configuration
2024-12-10 16:50:37 +03:00
Claudio Ortolina
b68a7ac734
Can fetch genres from OpenAI
2024-12-10 16:45:29 +03:00
Claudio Ortolina
4a706dc77a
No need to expose these functions
2024-12-10 15:24:43 +03:00
Claudio Ortolina
c2ccb7dde2
Add LastFm.Feed.all_artists/0 and LastFm.Feed.all_albums/0
2024-12-10 14:57:28 +03:00
Claudio Ortolina
a6e1e4e34a
Renamte LastFm.Feed.all/0 to LastFm.Feed.all_tracks/0
2024-12-10 14:57:06 +03:00
Claudio Ortolina
f48372f7b3
Use MapSets for performance
...
Not noticeable with current database size, but lays a good foundation
for larger libraries.
For example, given a list of 300 artist IDs, checking if an ID is in the
list takes between 30 and 40 ms (for an ID towards the end of the list),
while the MapSet version takes consistently between 15 and 20 ms.
2024-12-10 14:21:57 +03:00
Claudio Ortolina
9e57103842
Where possible, link scrobbled artists to artist page
2024-12-10 14:13:50 +03:00
Claudio Ortolina
7e31c95839
Smooth scroll to top when paginating records
2024-12-08 15:18:14 +01: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
06fd591e5f
Use unicode extension to normalize sorting accented records
2024-12-07 19:38:10 +01:00
Claudio Ortolina
0f926ed86a
Load Sqlite unicode extension
2024-12-07 18:32:22 +01:00
Claudio Ortolina
8350ffd3a4
To get artist info, try mbid and then artist name
2024-12-04 21:07:56 +00:00
Claudio Ortolina
39b925676f
Use NimbleOptions to validate MusicBrainz.Config
2024-12-04 15:01:52 +00:00
Claudio Ortolina
774c8d6006
Use NimbleOptions to validate LastFm.Config
2024-12-04 14:58:05 +00:00
Claudio Ortolina
24319b1bff
Annotate templates with TODOs for markup replacement
...
To open source the project down the line, it makes sense to have either
everything custom or using OSS components in order to keep licensing as
simple as possible.
2024-12-04 14:43:07 +00:00
Claudio Ortolina
e1dc2bfc7f
Make MusicBrainz user agent configurable
2024-12-04 10:44:31 +00:00
Claudio Ortolina
7575e5978a
Extract config for MusicBrainz
2024-12-04 10:33:41 +00:00
Claudio Ortolina
14518870a0
Make LastFm user agent configurable
2024-12-04 10:07:25 +00:00
Claudio Ortolina
0cae20a390
Add LastFm.Config test
...
It might seem redundant, but helps with refactoring down the line.
2024-12-04 09:58:42 +00:00
Claudio Ortolina
740e94fdf6
Use <.async_result> component
...
Removes need for custom conditional logic, and covers all needed states.
2024-12-03 23:34:25 +00:00
Claudio Ortolina
2321cc8cfb
Attempt at preventing layout shifts in record show pages
2024-12-03 22:54:53 +00:00
Claudio Ortolina
2c055acad6
Fix error in rendering an artist with empty bio
...
Includes a refactor for a helper to test for play count
2024-12-03 22:26:41 +00:00
Claudio Ortolina
9f2335cfa0
Use correct LastFm api module
2024-12-03 20:14:48 +00:00
Claudio Ortolina
61cda5a62c
Explicitly set auto-refresh config for LastFm refresh
2024-12-03 19:58:17 +00:00
Claudio Ortolina
907f480bc1
Improve formatting of bio read more link and license block
...
Prefer inline Tailwind classes for consistency with rest of the codebase
2024-12-03 19:37:37 +00:00
Claudio Ortolina
acee09aab0
Format bio sections
2024-12-03 16:25:16 +00:00
Claudio Ortolina
cf85c78852
Improve readability of artist bio
2024-12-03 10:37:37 +00:00
Claudio Ortolina
371ed511cc
Render bio with <details> element
2024-12-03 10:01:22 +00:00
Claudio Ortolina
26e96994a4
Use full content for bio
2024-12-03 09:58:24 +00:00
Claudio Ortolina
4dc1228a2d
Show "Biography not available" notice
2024-12-03 09:55:20 +00:00
Claudio Ortolina
6519a8b3e8
Space out bio a bit more
2024-12-03 09:51:43 +00:00
Claudio Ortolina
2c520be102
Tighten typography on artist h1 page
2024-12-03 09:51:03 +00:00
Claudio Ortolina
b301a5da7d
Display number of scrobbles per artist
2024-12-03 09:47:52 +00:00
Claudio Ortolina
669d2558d4
No need to expose LastFm.Config.new/1
2024-12-03 09:40:17 +00:00
Claudio Ortolina
916c381ed0
Add TODO
2024-12-03 09:40:17 +00:00