Claudio Ortolina
16bd569990
Update records on this day email sender and prefix
2026-03-23 11:24:57 +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
7d55dfd9ae
Have the AI always provide at least one link when answering questions
2026-03-19 14:30:04 +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
3f95aee7a7
Cap message content
2026-03-17 13:51:38 +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
3fb6c93d9d
Add sorting optoins to scrobble rules page
2026-03-16 08:03:47 +00:00
Claudio Ortolina
43b054b34a
Search scrobble rules, improved layout
2026-03-16 07:58:21 +00:00
Claudio Ortolina
d815928f91
Fix SearchParser catch-all wiping valid filters
...
The `_, %{}` catch-all in `normalize/1` matched any map, so an
invalid filter (e.g. `format:vin`) would reset the accumulator
even when valid filters were already collected. Add a `map_size`
guard so it only returns `%{query: ""}` for a truly empty
accumulator. Also update the moduledoc.
2026-03-15 18:56:30 +00:00
Claudio Ortolina
4fb148e9db
Simplify signatures of scrobbling functions
2026-03-14 22:22:41 +00:00
Claudio Ortolina
be563d8fca
Streamline record set items reordering query
2026-03-13 16:26:01 +00:00
Claudio Ortolina
9e1dbfd530
Re-enable Credo ModuleDoc check
...
Closes #108
2026-03-13 10:52:01 +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
24863b16c4
Remove unused Logger requires
2026-03-12 14:57:48 +00:00
Claudio Ortolina
1a62360b21
Group records in records on this day widget
2026-03-12 09:09:25 +00:00
Claudio Ortolina
159d5ad695
Include more maintenance tasks
...
- Asset tasks
- Records on this day email
2026-03-11 09:31:59 +00:00
Claudio Ortolina
97e9cdf6c4
Spell out Purchased on label in records email
2026-03-11 08:40:42 +00:00
Claudio Ortolina
20b497bbb8
Don't track route not found errors
2026-03-10 20:05:27 +00:00
Claudio Ortolina
59ac2a503f
Space out lines a bit more
2026-03-10 15:13:28 +00:00
Claudio Ortolina
95302e069b
Improve column detection heuristics
2026-03-10 14:56:25 +00:00
Claudio Ortolina
47ff505fa9
Refactor pdf rendering to use page-level columns
2026-03-10 14:22:11 +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
b30f0fa1ee
Add metrics around image resize/convert/dominant color extration
2026-03-08 13:56:31 +00:00
Claudio Ortolina
2e3732e38b
Apply all necessary exclusions to sobelow findings
2026-03-07 18:37:24 +00:00
Claudio Ortolina
6a89d31d4c
Don't extract dominant colors if provided in params
...
This as the side effect of massively speeding up the test suite: on M1,
it goes from 24 seconds to 14.
2026-03-07 09:05:44 +00:00
Claudio Ortolina
d3ae3a7381
Fix ScrobbleRule timestamps to use utc_datetime
2026-03-06 09:58:40 +00:00
Claudio Ortolina
54f19cd9a2
Fix ArtistInfo.country/1 crash when area is missing
2026-03-06 09:51:56 +00:00
Claudio Ortolina
6c2036ff7d
Make excluded genres configurable
2026-03-06 09:45:42 +00:00
Claudio Ortolina
7cf9b4e7f8
First pass at uniformed types, specs and docs
...
- spec public functions (skipping controllers, views, live views and
components)
- use types instead of explanations in docs
- remove redundant docs
- fix typos
2026-03-06 08:33:11 +00:00
Claudio Ortolina
a3ccc06d14
Extract shared SQL builder for scrobble rules
2026-03-05 20:52:25 +00:00
Claudio Ortolina
d738032f8a
Add string length validations to user-input schemas
2026-03-05 20:42:44 +00:00
Claudio Ortolina
e8f393c5a0
Guard against nil medium in scrobble_medium
...
Closes #76
2026-03-05 19:54:32 +00:00
Claudio Ortolina
d4376e5fa0
Extract DB queries from MaintenanceLive into context
2026-03-05 18:01:50 +00:00
Claudio Ortolina
f109057be5
Persist telemetry data in local sqlite database
2026-03-05 13:39:38 +00:00
Claudio Ortolina
73a943bc63
Server records on this day email assets from a public endpoint
2026-03-05 10:50:35 +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
ed1dd2b440
Mount error tracker notifier
2026-03-04 15:55:32 +00:00