Commit Graph

404 Commits

Author SHA1 Message Date
Claudio Ortolina 32454e8d5f Document missing artist MBIDs in Last.fm data 2026-01-23 08:32:55 +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 c1a7c9df44 Include record embedding text on collection show page 2026-01-19 15:24:29 +00:00
Claudio Ortolina f6e9415409 Add associations between notes and artists/records 2026-01-11 14:19:06 +00:00
Claudio Ortolina 8e15b6eb57 Optimize the repo every day at 4am 2025-12-15 10:23:54 +03:00
Claudio Ortolina 162a38b62e Add optimize maintenance function 2025-12-15 10:22:20 +03:00
Claudio Ortolina 0df348ae19 Add pagination for scrobble rules 2025-12-14 09:21:13 +03:00
Claudio Ortolina 7106329814 Don't log scrobble rule update message when there are no updates 2025-12-11 09:07:38 +03:00
Claudio Ortolina c5f46550f5 Revert "In scrobble activitiy, prioritize matchin on collected release first"
This reverts commit 0c7196639f.
2025-12-03 13:05:22 +00:00
Claudio Ortolina 0bec9bde99 Ignore commas in search
They're a reserved character in FTS5
2025-12-01 17:22:39 +00:00
Claudio Ortolina 5692be4e63 Update dependencies
credo 1.7.13 => 1.7.14 - requires updates to pass updated checks
2025-12-01 16:09:51 +00:00
Claudio Ortolina 0c7196639f In scrobble activitiy, prioritize matchin on collected release first
When the collection contains multiple records for the same release
group, we want the scrobble activity to first match against the one that
was actually scrobbled, as opposed to ANY other collected release.
2025-12-01 09:36:37 +00:00
Claudio Ortolina 80763b8192 Sort collection records by release 2025-11-25 22:24:23 +00:00
Claudio Ortolina e1b73c300f Update derived fields when updating musicbrainz data 2025-11-22 18:22:30 +00:00
Claudio Ortolina cc7d00c750 Display number of scrobbles when viewing a record 2025-11-19 13:51:22 +00:00
Claudio Ortolina a597ff4032 Make application work with empty database 2025-11-19 10:16:21 +00:00
Claudio Ortolina a66f32db0e Small formatting fix 2025-11-11 10:28:58 +00:00
Copilot de195aa970 Add track selection and group scrobbling to release sheet (#62)
* Initial plan
* Add track selection and scrobble functionality
Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>
* Add translations for track selection feature
Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>
* Format code
* Temporarily set selected tracks in scrobble anything view

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>
Co-authored-by: Claudio Ortolina <cloud8421@gmail.com>
2025-11-11 08:09:28 +00:00
Copilot e11894c095 Batch scrobble rule application by type to reduce N queries to 2 (#61)
* Implement optimized batch rule application

- Add apply_all_album_rules/1 to batch apply all album rules in single query
- Add apply_all_artist_rules/1 to batch apply all artist rules in single query
- Update apply_all_rules/0 to use new batch functions
- Add comprehensive tests for batch application
- Use CASE statement in SQL to apply multiple rules efficiently

Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>

* Add batch application support for track-filtered rules

- Extend apply_all_album_rules/2 to support filtering by tracks
- Extend apply_all_artist_rules/2 to support filtering by tracks
- Update apply_all_rules/1 to use batch functions for track-filtered application
- Remove duplicate function definitions
- Ensures both main use cases (all tracks and specific tracks) are optimized

Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>

* Add comprehensive documentation for optimization

- Document the problem and solution approach
- Explain SQL generation and performance impact
- Detail trade-offs and backward compatibility
- Include future considerations and scalability notes

Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>

* Apply credo suggestions and format

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: cloud8421 <537608+cloud8421@users.noreply.github.com>
Co-authored-by: Claudio Ortolina <cloud8421@gmail.com>
2025-11-10 20:04:34 +00:00
Claudio Ortolina 4a5ed2de1a Enable artists maintenance tasks 2025-11-07 17:14:45 +00:00
Claudio Ortolina ade6aebb87 Add Worker to prune dangling assets 2025-11-07 12:16:10 +00:00
Claudio Ortolina fcd558066e Can filter collection records by purchase year 2025-10-31 12:25:10 +00:00
Claudio Ortolina 33dfbd607c Add artist information to record embeddings 2025-10-28 08:57:02 +00:00
Claudio Ortolina af8ca54d3e Run Repo vacuum via Oban scheduled job
This way if there's any resource contention to obtain a db connection,
Oban can manage retries.
2025-10-25 10:21:21 +01:00
Claudio Ortolina 9229805311 Don't scrobble media with zero duration 2025-10-23 10:28:19 +01:00
Claudio Ortolina 7b697827fd Don't scrobble releases with zero duration 2025-10-23 10:27:08 +01:00
Claudio Ortolina 135ed72b73 Consolidate batch operations on all records
- Only use async
- Include generation of embeddings
2025-10-19 21:52:33 +01: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 7a1061a783 Update embeddings when populating genres 2025-10-12 22:45:12 +02:00
Claudio Ortolina 61ee5693ab Remove unsupported option documentation 2025-10-12 21:58:34 +02:00
Claudio Ortolina d38089d82d Show similarity in % points 2025-10-12 20:46:01 +02:00
Claudio Ortolina e17a445574 Add runtime tasks to regenerate embeddings 2025-10-12 13:47:28 +02:00
Claudio Ortolina ee199272b1 Use sqlite vector 2025-10-12 13:36:42 +02:00
Claudio Ortolina 9cae972bc5 Add similar records
Initial stab by Claude
2025-10-11 21:39:59 +02:00
Claudio Ortolina 07218d16ca Removes useless docs 2025-10-10 14:21:20 +02:00
Claudio Ortolina d7cc300265 Fix ordering of top albums and top artists 2025-10-08 20:30:19 +02:00
Claudio Ortolina 61aeef4de1 Fix top artists and top album counts
Before, each track count would be multiplied by the number of collected
records. Not a problem when there's just one, but if I have more than
one then it would get weird quickly.
2025-10-07 15:56:17 +03:00
Claudio Ortolina ac750d8a91 Refactor essential_fields via search index 2025-10-06 13:48:01 +03:00
Claudio Ortolina 57dfd3d33d Remove ErrorTracker
Doesn't work with recent LiveView releases, and seems to be maintained
very slowly despite incoming PRs to fix the issues.
2025-10-03 10:15:23 +03:00
Claudio Ortolina 23c36e2521 Extract ExternalLink module 2025-10-02 11:51:44 +03:00
Claudio Ortolina d1efc90925 Extract favicon_url to CoreComponents 2025-10-02 11:48:19 +03:00
Claudio Ortolina b6f47fd986 Move external links definition to context 2025-10-02 09:02:13 +03:00
Claudio Ortolina 21997d5e14 Refactor Favicon out 2025-10-02 09:00:11 +03:00
Claudio Ortolina 9b8d8c7fdf Show artist external links 2025-10-02 08:55:45 +03:00
Claudio Ortolina 4c33d3f0aa Enable Sentry 2025-10-01 13:48:30 +03:00
Claudio Ortolina 621fe385e3 Show record status markers in scrobbled tracks index 2025-09-29 11:04:35 +03:00
Claudio Ortolina 5f5b66d037 Add telemetry for scrobble rule application 2025-09-28 08:25:01 +03:00
Claudio Ortolina 36bc9266b3 Extract queries 2025-09-26 15:32:50 +03:00
Claudio Ortolina cc84c3a429 Remove unused functions 2025-09-26 15:26:44 +03:00