Commit Graph

137 Commits

Author SHA1 Message Date
Claudio Ortolina 084ec04079 Add prod tests for cover URLs 2024-12-22 22:20:29 +00:00
Claudio Ortolina 97f26e0cd2 Serve covers under API namespace as well 2024-12-22 22:15:24 +00:00
Claudio Ortolina c92e7cc76a Add HURL production test suite 2024-12-22 18:50:30 +00:00
Claudio Ortolina f1af38606a Protect API behind a bearer token 2024-12-22 18:32:04 +00:00
Claudio Ortolina cf3761ca79 Fold RequireLogin plug into Auth module 2024-12-22 16:12:31 +00:00
Claudio Ortolina 341d276db5 Include artists and cover in latest record JSON 2024-12-22 15:55:41 +00:00
Claudio Ortolina 53e8d88b6a Rename auth_password -> login_password 2024-12-21 14:57:44 +00:00
Claudio Ortolina 4f456322fc Bootstrap the /api namespace 2024-12-21 14:38:39 +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 53b89dc329 Extract Artists context 2024-12-18 11:12:06 +00:00
Claudio Ortolina 019d2fb7f2 Reduce size of test data in stats test
Test is equally effective and a few times faster.
2024-12-15 18:57:48 +03: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 3fbd6ba1bf Use release and release group fixtures with names everywhere 2024-12-14 23:52:09 +03:00
Claudio Ortolina 4ede4e3736 Add test for importing a record from scrobble activity 2024-12-14 23:41:39 +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 2fbe9db016 Refactor test to extract data dependencies 2024-12-14 17:16:55 +03:00
Claudio Ortolina f7045a9f14 Extend testing of artist page 2024-12-13 22:25:06 +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 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 11ebd0b6de Add test to verify correct loading of SQLite extension 2024-12-07 19:45:06 +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 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 bef38967a1 Stub artist show test 2024-12-03 20:16:35 +00:00
Claudio Ortolina 26e96994a4 Use full content for bio 2024-12-03 09:58:24 +00:00
Claudio Ortolina ab7a8eeb5a Add play count to LastFm.Artist 2024-12-03 09:40:17 +00:00
Claudio Ortolina ccefc6e697 Update to new interpolation syntax
Includes a fix to a brittle test that failed due to changes in the
number of linebreaks.
2024-12-03 00:08:32 +00:00
Claudio Ortolina 18df3683fc Render a minimal artist page 2024-12-02 17:35:47 +00:00
Claudio Ortolina 2d721774d6 Can fetch an artist info from Last.fm 2024-12-02 12:40:07 +00:00
Claudio Ortolina b63b3a633a Can fetch records by a specific artist 2024-12-02 10:55:12 +00:00
Claudio Ortolina 963b3c826f Extract Records.Artist 2024-12-02 10:55:12 +00:00
Claudio Ortolina 228b4bc440 Use musicbrainz_id as a key for embedded artists 2024-12-02 09:23:13 +00:00
Claudio Ortolina c71f740eec Update and format JSON fixture files 2024-12-01 12:17:49 +00:00
Claudio Ortolina cf51cab7ce Add basic test for Records.Cover module 2024-11-29 22:08:40 +00:00
Claudio Ortolina d9773bf45d Improve test description 2024-11-29 17:21:42 +00:00
Claudio Ortolina f0212eeb6f Consolidate cover resize logic
Moves resizing out of the MusicBrainz namespace to Records - which
improves division of responsibilities, and removes double resizing
during import.
2024-11-26 08:35:16 +00:00
Claudio Ortolina eef60a66a8 Shorten "No MusicBrainz ID" -> "No MB ID"
So that it's inline with other UI elements, and fits nicely in mobile UI
2024-11-26 08:03:34 +00:00
Claudio Ortolina 7258519cf2 Remove ' as it breaks a full text query
Query:  SELECT count(*) FROM "records_search_index" AS r0
WHERE (NOT (r0."purchased_at" IS NULL))
AND (records_search_index = '"Larks' Tongues in Aspic"*')

Needs escaping.
2024-11-23 23:19:08 +00:00
Claudio Ortolina b2e1f1f8d1 Index records by type to improve query perf 2024-11-23 23:16:24 +00:00
Claudio Ortolina 93b347ad8d Add badge for tracks whose albums cannot be imported
Includes a small optimization that removes "" release IDs from the list
of IDs checked against releases in the database.
2024-11-23 22:57:25 +00:00
Claudio Ortolina 2e2000fe01 Introduce separate search index
Uses a fts5 virtual table, kept up to date via triggers on the records
table.
2024-11-22 19:37:13 +00:00
Claudio Ortolina 0073b15125 Fix unused variable warnings 2024-11-21 09:38:42 +00:00
Claudio Ortolina 81e332d00d Fix sr text for wishlisting from scrobble activity
Includes an integration test for the scrobble activity feed.
2024-11-21 09:20:36 +00:00
Claudio Ortolina 5ec3b67c08 Add wishlist purchasing test 2024-11-20 18:37:16 +00:00
Claudio Ortolina 5b3aab51ed Change routes from "/records/*" to "/collection/*" 2024-11-20 15:43:25 +00:00