160 Commits

Author SHA1 Message Date
Zane van Iperen
82c56e1115
Capture "musicbrainz_releasetrackid" tag (#1827)
* db/migration: typo fix

* model: add MbzReleaseTrackID field

* scanner: capture the musicbrainz_releasetrackid tag
2026-01-02 20:15:58 +00:00
Deluan
14f53707b4
Add asasalint linter 2026-01-02 20:15:58 +00:00
Deluan
e6ba5a2229
Only compute version once 2026-01-02 20:14:54 +00:00
Deluan
4d6f803fe2
Fix tracks never "loved" to be selected in Smart Playlists. Refer to https://github.com/navidrome/navidrome/issues/1417#issuecomment-1163423575 2026-01-02 20:14:54 +00:00
Deluan
90bc1981d8
Upgrade Ginkgo to V2 2026-01-02 20:14:21 +00:00
Deluan
69d549d0d0
Add "random" sort option for Smart Playlists 2026-01-02 20:11:58 +00:00
Deluan
08f56cc7c8
Fix potential SQL injection in Smart Playlists 2026-01-02 20:11:58 +00:00
Deluan
e632893e62
Fix logging smart playlist's song count 2026-01-02 20:11:39 +00:00
Deluan
fa51e97a0f
Fix values from annotation table cannot be compared to 0
Solves this issue: https://github.com/navidrome/navidrome/issues/1417#issuecomment-974052454
2026-01-02 20:11:39 +00:00
BIKI DAS
65948a1ccf
Combined multiple appends into a single one (#1464) 2026-01-02 20:09:31 +00:00
Deluan
9d40694ae6
Fix playlist cannot be empty via Subsonic API 2026-01-02 20:09:31 +00:00
Deluan
2b15f4a4ba
Optimize AlbumRepository.GetAll and add a GetAllWithoutGenres method specifically for Subsonic API, where multiple-genres are not required 2026-01-02 20:09:30 +00:00
Deluan
294e200399
Fix dateLoved in criteria. Now log invalid field names in criteria 2026-01-02 20:09:02 +00:00
Deluan
23fa956d6b
Add owner_id to playlist 2026-01-02 20:09:02 +00:00
Deluan
4545cb89c3
Optimize queries by path, should speed up the scanner a bit 2026-01-02 20:09:02 +00:00
Deluan
507223ea40
Load playlist track genres 2026-01-02 20:09:01 +00:00
Deluan
83380f2de2
Fix/Optimized Playlist tracks deletion 2026-01-02 20:09:01 +00:00
Deluan
9ca4fb538b
Optimize playlist updates 2026-01-02 20:09:00 +00:00
Deluan
2c587d1fe6
Add dateLoved Criteria field 2026-01-02 20:09:00 +00:00
Deluan
1475597c16
Fix Genre field and Contains/NotContains/StartsWith/EndsWith in Criteria (Smart Playlists) 2026-01-02 20:09:00 +00:00
Deluan
dc70dc99c8
Better way to match top songs from external sources (Last.fm) 2026-01-02 20:09:00 +00:00
Deluan
0e77a73d3f
Rename hasCoverArt field in criteria 2026-01-02 20:08:59 +00:00
Deluan
557a78f192
Removed unused code 2026-01-02 20:08:59 +00:00
Deluan
674aab0ce5
Don't import invalid .nsp files 2026-01-02 20:08:59 +00:00
Deluan
1ccae7b21c
Use new Criteria and remove SmartPlaylist struct 2026-01-02 20:08:59 +00:00
Deluan
c7f3e20ffb
New Criteria API 2026-01-02 20:08:59 +00:00
Deluan
56fb82a29a
First version of SmartPlaylists being generated on demand 2026-01-02 20:08:58 +00:00
Deluan
874926481b
Add methods to Playlist model
Also, don't load genres for Playlists tracks (not necessary for now)
2026-01-02 20:08:58 +00:00
Deluan
2939c96bd8
Reduce number of queries for some playlists operations.
Also allow admins to update/delete playlists from other users in the Subsonic API. Closes #1366
2026-01-02 20:08:58 +00:00
Deluan
898e01013c
Load SmartPlaylists rules from DB 2026-01-02 20:08:58 +00:00
Deluan
d8adf68ef5
Initial drafts for Smart Playlists 2026-01-02 20:08:58 +00:00
Deluan
6740708313
Add songs to playlists with drag and drop 2026-01-02 20:08:31 +00:00
Miguel A. Arroyo
e9a7d0c5a2
feat: Adds Audio Channel Metadata - #1036 2026-01-02 20:08:00 +00:00
Deluan
44ea2c9c34
Remove unused AnnotatedModel interface 2026-01-02 20:06:11 +00:00
Deluan
18f6d55acb
Use structs lib to map models to DB. Fix #1266 2026-01-02 20:06:11 +00:00
Deluan
8d7cd365cf
Optimize GetAll genres query 2026-01-02 20:06:09 +00:00
Deluan
bc266f8fad
Add Genre filters to UI 2026-01-02 20:06:08 +00:00
Deluan
f7db423e9f
Add multiple genres to Artists 2026-01-02 20:06:08 +00:00
Deluan
15b3994d13
Remove unnecessary repositories methods 2026-01-02 20:06:08 +00:00
Deluan
5de062da03
Add multiple genres to Albums 2026-01-02 20:06:08 +00:00
Deluan
1e9e8edc49
Add multiple genres to MediaFile 2026-01-02 20:06:08 +00:00
Deluan
52510a55c4
Add genre tables, read multiple-genres from tags 2026-01-02 20:06:08 +00:00
Deluan
6d46689622
Implement Scrobble buffering/retrying 2026-01-02 20:05:07 +00:00
Deluan
6a254c8b67
Pass userId explicitly to UserPropsRepository methods 2026-01-02 20:05:06 +00:00
Deluan
006b8d0d4a
Add option to disable external scrobbling per player 2026-01-02 20:05:05 +00:00
Deluan
a52a88d1d7
Move user properties (like session keys) to their own table 2026-01-02 20:05:05 +00:00
Deluan
f468522c72
Implement Last.FM Desktop Auth flow endpoints 2026-01-02 20:05:04 +00:00
Deluan
1ac077cf22
Fix GetNowPlaying endpoint showing only the last play 2026-01-02 20:04:23 +00:00
Deluan Quintão
5590fa3550
Encrypt passwords in DB (#1187)
* Encode/Encrypt passwords in DB

* Only decrypts passwords if it is necessary

* Add tests for encryption functions
2026-01-02 20:04:16 +00:00
Deluan
8e32b56ea0
Only send events to clients who need it
- User events (star, rating, plays) only sent to same user
- Don't send to the client (browser window) that originated the event
2026-01-02 20:02:35 +00:00