Claudio Ortolina
4f456322fc
Bootstrap the /api namespace
2024-12-21 14:38:39 +00:00
Claudio Ortolina
4be2330891
Fix prompt to avoid the result being returned in a code block
...
Not sure why this is needed, considering that the API call clearly
specifies the `json_object` response format.
2024-12-19 21:05:02 +00:00
Claudio Ortolina
9dce1cacb9
Where possible, use built-in JSON instead of Jason
...
Note that it's not possible to replace any call where we encode and
pretty print, as JSON doesn't have such functionality.
2024-12-19 20:18:09 +00:00
Claudio Ortolina
45df749200
No need to create a range when total_pages is 0
...
Fixes:
warning: Range.new/2 and first..last default to a step of -1 when last < first.
Use Range.new(first, last, -1) or first..last//-1, or pass 1 if that was your intention
2024-12-19 19:07:08 +00:00
Claudio Ortolina
832e835252
Add function to get embeddings for arbitrary string
2024-12-18 22:20:41 +00:00
Claudio Ortolina
d76c108896
Rename file to match module name
2024-12-18 21:58:07 +00:00
Claudio Ortolina
6bef3bed05
Add total for collection and wishlist albums in artist view
2024-12-18 11:33:48 +00:00
Claudio Ortolina
a3306c84c3
Increase album grid density in artist view
2024-12-18 11:27:07 +00:00
Claudio Ortolina
53b89dc329
Extract Artists context
2024-12-18 11:12:06 +00:00
Claudio Ortolina
76605a1114
Add function to get similar artists
2024-12-17 20:44:31 +00:00
Claudio Ortolina
c60108292a
Scroll to top when paginating on small viewports
2024-12-16 18:03:26 +00:00
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