Claudio Ortolina
e575f2af9e
Stub color extractor in tests
...
Makes the test suite much faster
2026-03-26 22:58:39 +00:00
Claudio Ortolina
0ccaf46ebd
Standardize fetch_* to refresh_* in Artists context
...
Closes #132
2026-03-25 11:52:43 +00:00
Claudio Ortolina
e4eccf4606
Move embedding regeneration to Records context
...
Closes #131
2026-03-25 11:48:46 +00:00
Claudio Ortolina
59ce580b99
Can filter records by release year
2026-03-21 09:21:21 +00:00
Claudio Ortolina
ee4d2555ee
Move scrobble queries from Records to ListeningStats
...
Closes #110
2026-03-12 16:32:10 +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
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
6d451481b7
Remove obsolete color extraction strategies
2026-03-03 16:01:25 +00:00
Claudio Ortolina
1d3361c425
BETA: accurate color extractor
2026-03-03 15:41:24 +00:00
Claudio Ortolina
6bf13486a3
Do not crash on & search
2026-02-27 07:56:44 +00:00
Claudio Ortolina
561cd02ec7
Fixes error in matching multiple colums during search
2026-02-25 07:54:59 +00:00
Claudio Ortolina
3e1da2cb19
Uniform repo usage for Oban jobs
2026-02-17 09:01:46 +00:00
Claudio Ortolina
9da995bce8
Extract helpers to handle async jobs
2026-02-09 11:07:33 +00:00
Claudio Ortolina
e418395b23
Edit record genres
2026-02-09 08:53:16 +00:00
Claudio Ortolina
57f138e597
Fix search filter precedence bug
...
Previous version would do:
purchase status + normal filter OR normalized filter
New version does:
purchase status AND (normal filter OR normalized filter)
2026-01-21 16:09:35 +00:00
Claudio Ortolina
1193eda4ca
Escape "." in searches
2026-01-19 21:04:03 +00:00
Claudio Ortolina
80763b8192
Sort collection records by release
2025-11-25 22:24:23 +00:00
Claudio Ortolina
cc7d00c750
Display number of scrobbles when viewing a record
2025-11-19 13:51:22 +00:00
Claudio Ortolina
fcd558066e
Can filter collection records by purchase year
2025-10-31 12:25:10 +00:00
Claudio Ortolina
901a6b1c93
Update dependencies
...
credo 1.7.12 => 1.7.13
usage_rules 0.1.24 => 0.1.25
2025-10-15 09:57:13 +01:00
Claudio Ortolina
9cae972bc5
Add similar records
...
Initial stab by Claude
2025-10-11 21:39:59 +02:00
Claudio Ortolina
ac750d8a91
Refactor essential_fields via search index
2025-10-06 13:48:01 +03:00
Claudio Ortolina
4e24bfe966
Populate genres via Oban with generous retries
...
This is due to OpenAI erroring or timing out incredibly frequently.
2025-09-22 08:22:36 +03:00
Claudio Ortolina
90b3fa1fdc
Refactor Records.Cover to Assets.Image
2025-09-20 07:42:38 +03:00
Claudio Ortolina
d865a61ef9
Make sure escaping works consistently everywhere (including with ?)
...
Remove duplication
2025-09-13 10:25:21 +03:00
Claudio Ortolina
1e211ce32a
Simplify by removing search parser escape
2025-09-13 08:28:57 +03:00
Claudio Ortolina
62578de950
Pass one from Tidewave
2025-09-13 08:25:08 +03:00
Claudio Ortolina
16740cec5e
Remove obsolete backfill function
2025-09-01 23:08:16 +03:00
Claudio Ortolina
dc77d337c0
Migrate from embedded covers to assets
2025-09-01 16:20:41 +03:00
Claudio Ortolina
cb7f3c23b0
Add backfill function
2025-09-01 13:39:00 +03:00
Claudio Ortolina
a9d27059c4
Update dependencies
...
circular_buffer 0.4.1 => 0.4.2
ecto 3.12.6 => 3.13.1
ecto_sql 3.12.1 => 3.13.1
ecto_sqlite3 0.19.0 => 0.20.0 (minor)
exqlite 0.31.0 => 0.32.0 (minor)
Includes handling of deprecation for literal/1 to identifier/1
2025-06-21 09:10:57 +03:00
Claudio Ortolina
2df5e7ee1d
Show wishlisted date for wishlisted records
2025-06-14 12:58:47 +03:00
Claudio Ortolina
2cc1d7ca8f
Pick color extraction strategy from dropdown
2025-06-08 20:06:54 +01:00
Claudio Ortolina
2bbb91769d
Generate better dominant colors async after record import
2025-06-08 07:50:07 +01:00
Claudio Ortolina
569f8b5340
Distinguish between color extraction strategies
...
By default, use fast color sampling. Run heavy edge weighted extraction
only on demand.
2025-06-08 07:43:07 +01:00
Claudio Ortolina
378992e632
Add functions to generate dominant colors
2025-06-07 20:13:19 +01:00
Claudio Ortolina
a63f2de60b
Use ->> instead of json_extract in queries
...
Improves readability of queries.
2025-06-06 21:05:44 +01:00
Claudio Ortolina
669b144c55
Find last listened track based on title and artist as well
2025-06-03 18:05:23 +01:00
Claudio Ortolina
c23260d03d
Show last listen at for each collected record
2025-06-03 15:57:12 +01:00
Claudio Ortolina
1f64c71efa
Apply quokka blocks rule
2025-05-28 19:51:54 +01:00
Claudio Ortolina
423d1e7764
Can sort wishlisted records by insertion
2025-05-26 23:12:34 +01:00
Claudio Ortolina
ad29b8f96d
Normalized search index
...
So that one can search for 'bjorn' and find 'Bjørn'
2025-05-25 09:26:01 +01:00
Claudio Ortolina
ee808fb041
Add ability to refresh musicbrainz data async
2025-05-24 18:04:20 +01:00
Claudio Ortolina
93e1fad88e
Make purchase order deterministic
...
Avoids ordering issues when records have the same purchased_at datetime
(which is what happens when they're scanned in batches).
2025-05-04 09:20:45 +01:00
Claudio Ortolina
bc213caa45
Store selected release id when scanning a record
2025-05-01 19:36:47 +01:00
Claudio Ortolina
e083950138
Rename record.release to record.release_date
...
Includes changes to dependent tables (i.e. the record search index) and
related functions.
2025-05-01 14:04:57 +01:00
Claudio Ortolina
818a416b1c
Prune artist info after deleting the artist's last record
2025-04-29 18:44:37 +01:00
Claudio Ortolina
fa49e73385
When creating a record, queue a job to fetch artist info
2025-04-29 16:56:22 +01:00
Claudio Ortolina
f6d1d3431a
Improve meta and error handling for background cover refreshing
2025-04-14 17:41:33 +01:00
Claudio Ortolina
a3b6510c40
Refresh covers asynchronously
2025-04-14 10:58:47 +01:00