Claudio Ortolina
2e22ace7cf
Move RecordsOnThisDayEmail to MusicLibraryWeb namespace
2026-03-28 10:25:03 +00:00
Claudio Ortolina
9643e2141c
Add update/1 and subscribe/0 to ListeningStats
2026-03-27 23:03:23 +00:00
Claudio Ortolina
96836ae715
Improve tests: better assertions, meaningful tests
...
Track resulting principles in project conventions
2026-03-27 15:46:31 +00:00
Claudio Ortolina
1301f888f3
Remove "it" from the test descriptions
2026-03-27 08:38:41 +00:00
Claudio Ortolina
88b575ee95
Remove duplicated test
2026-03-26 11:55:05 +00:00
Claudio Ortolina
170a52b3e4
Fix test descriptions for consistency
2026-03-26 11:54:47 +00:00
Claudio Ortolina
69983d9dac
Fix incorrect tests
2026-03-26 11:53:49 +00:00
Claudio Ortolina
0ccaf46ebd
Standardize fetch_* to refresh_* in Artists context
...
Closes #132
2026-03-25 11:52:43 +00:00
Claudio Ortolina
0f9a2d28cb
Add test coverage for ScrobbleActivity
...
Closes #127
2026-03-23 07:45:49 +00:00
Claudio Ortolina
b18a544156
Add test coverage for BarcodeScan context
...
Closes #126
2026-03-22 07:56:44 +00:00
Claudio Ortolina
59ce580b99
Can filter records by release year
2026-03-21 09:21:21 +00:00
Claudio Ortolina
5a27fc46ac
Add Top 20 Release Years widget
2026-03-21 09:02:25 +00:00
Claudio Ortolina
ccc929e939
Deduplicate tracks in ListeningStats queries
...
When multiple records share MusicBrainz release IDs, the left joins in
ListeningStats fan out — producing duplicate rows per scrobbled track.
Fix by grouping release subqueries on release_id with MIN(record_id)
before joining, so each release maps to exactly one record.
2026-03-20 12:48:40 +00:00
Claudio Ortolina
715a1e1f69
Consolidate handling of artist joinphrases
2026-03-19 15:09:34 +00:00
Claudio Ortolina
1001610472
First pass at having a chat count in the entity pages
2026-03-19 12:28:58 +00:00
Claudio Ortolina
63c95ff1e2
Move all chat related code under chats
2026-03-17 14:30:24 +00:00
Claudio Ortolina
8fd8dde73d
Persist chat history
2026-03-17 13:50:01 +00:00
Claudio Ortolina
f1e3b22f91
Make online store templates searchable
2026-03-16 11:56:39 +00:00
Claudio Ortolina
5752d1fe27
Add tests for scrobble rules search/sort
2026-03-16 08:06:48 +00:00
Claudio Ortolina
4977f4631c
Show grouped records in records on this day email
2026-03-12 17:23:22 +00:00
Claudio Ortolina
dbc6d029b4
Move collected artist IDs query to Collection context
...
Closes #112
2026-03-12 16:58:31 +00:00
Claudio Ortolina
d057f29ba1
Split ScrobbleActivity into focused modules
...
Move track CRUD/listing to ListeningStats and diagnostics
to Maintenance, leaving ScrobbleActivity for scrobbling only.
Closes #111
2026-03-12 16:51:33 +00:00
Claudio Ortolina
ee4d2555ee
Move scrobble queries from Records to ListeningStats
...
Closes #110
2026-03-12 16:32:10 +00:00
Claudio Ortolina
24efa3986c
Route artist search queries through Artists context
...
Closes #113
2026-03-12 16:21:04 +00:00
Claudio Ortolina
1a62360b21
Group records in records on this day widget
2026-03-12 09:09:25 +00:00
Claudio Ortolina
43dc81d051
Assert that generated PDF file always has one page
2026-03-10 15:09:33 +00:00
Claudio Ortolina
95302e069b
Improve column detection heuristics
2026-03-10 14:56:25 +00:00
Claudio Ortolina
c352ad4809
Can print an individual medium tracklist
2026-03-09 14:52:26 +00:00
Claudio Ortolina
4c6baa6e13
Improve printout PDF layout
...
Support multiple columns in case the tracklist is long, or there's
multiple media.
2026-03-09 14:44:28 +00:00
Claudio Ortolina
4569c6727e
Add function to download a record's tracklist for printing
2026-03-09 13:39:12 +00:00
Claudio Ortolina
54f19cd9a2
Fix ArtistInfo.country/1 crash when area is missing
2026-03-06 09:51:56 +00:00
Claudio Ortolina
f9b381570f
Extract artist infos fixtures
2026-03-06 08:58:59 +00:00
Claudio Ortolina
3819afca4d
Extract fixture
2026-03-06 08:53:25 +00:00
Claudio Ortolina
d4376e5fa0
Extract DB queries from MaintenanceLive into context
2026-03-05 18:01:50 +00:00
Claudio Ortolina
fb7ccad6f9
Add meaningful tests for ArtistChat and RecordChat
...
Closes #96
2026-03-05 14:43:50 +00:00
Claudio Ortolina
478832249b
Send record of the day email
2026-03-05 10:37:04 +00:00
Claudio Ortolina
c831b20317
Move error tracker notifier files to correct namespace
2026-03-04 19:39:36 +00:00
Claudio Ortolina
ad9bcd8481
Inline error tracker notification code
...
As we don't need the Discord functionality which brings quite a lot of
extra libraries/code
2026-03-04 17:19:14 +00:00
Claudio Ortolina
7ec3e68e58
Relax assertions on colors
...
As dominant colors are not stable on different environments
2026-03-03 16:13:23 +00:00
Claudio Ortolina
6d451481b7
Remove obsolete color extraction strategies
2026-03-03 16:01:25 +00:00
Claudio Ortolina
de14ec3e25
Consolidate completely stateless tests into doctests
...
Removing dupes
2026-03-03 11:30:52 +00:00
Claudio Ortolina
854e293902
Add large battery of tests, primarily workers
2026-03-01 17:03:36 +00:00
Claudio Ortolina
84323e5732
Capture logs to avoid useless test log noise
2026-03-01 08:56:42 +00:00
Claudio Ortolina
b35f4aed1d
EXP: enrich artist info data via Last.fm and produce better embeddings
2026-03-01 08:22:35 +00:00
Claudio Ortolina
871f4b3554
Extract ListeningStats out of ScrobbleActivity
2026-02-27 12:16:38 +00:00
Claudio Ortolina
16e0bf03a9
Remove Flagmojis dependency
2026-02-24 08:58:49 +00:00
Claudio Ortolina
8eaaa3cfec
Use custom country module to resolve flags more accurately
...
Ported from https://github.com/wojtekmaj/country-code-to-flag-emoji
(MIT)
2026-02-24 08:57:30 +00:00
Claudio Ortolina
1dfb2d2a6f
Use Wikipedia data for record similarity and raise similarity threshold
2026-02-19 15:51:12 +00:00
Copilot
2faddbf0c6
Add audit tooling for scrobbled tracks data quality ( #89 )
2026-02-17 11:24:45 +00:00
Claudio Ortolina
583789850c
Normalize top artist and top album counts
...
- Make sure joins don't discard tracks
- Make sure we group by names as MB ids can be empty
2026-02-15 20:35:23 +00:00