Commit Graph

443 Commits

Author SHA1 Message Date
Claudio Ortolina e4fe4e7f4b Cache images for 24 hours 2024-12-15 12:09:29 +03:00
Claudio Ortolina 6660d195e4 Decrease visible records per page
After months of usage, I rarely paginate the list, so it's not necessary
to load 100 at a time. 20 is enough.

By matching 20 records with a 20 pool size, we should keep the repo
queue time to a minimum.
2024-12-15 11:15:46 +03:00
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