455 Commits

Author SHA1 Message Date
Xidorn Quan
a46d8e1442
Update play_date on scrobble only when newer - #2262 (#2263)
* fix(persistence): Update play_date on scrobble only when newer - #2262

Signed-off-by: Xidorn Quan <me@upsuper.org>

* expand iff

---------

Signed-off-by: Xidorn Quan <me@upsuper.org>
2026-01-02 20:24:48 +00:00
Deluan
915423e241
Make playlist tracks match case-insensitive. Fix #1720 2026-01-02 20:24:14 +00:00
Deluan
6013e30f7b
Make ffmpeg path configurable, also finds it automatically in current folder. Fixes #1932 2026-01-02 20:22:41 +00:00
selfhoster1312
ee9212357e
Create accounts automatically when authenticating from HTTP header (#2087)
* Create accounts automatically when authenticating from HTTP header

* Disable password check when header auth is enabled

* Formatting

* Password change is valid when no password (old or new) is provided

* Test suite runs with header auth disabled (mock config)
Prevents nil pointer access (panic) while testing password validating logic

* Use a constant prefix for autogenerated passwords (header auth case)

* Add tests

* Add context to log messages

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:22:01 +00:00
Deluan
4f99addd02
Add Share to Context menus, also share artist 2026-01-02 20:22:00 +00:00
Deluan
c4940c09f2
Keep order of shared mediafiles 2026-01-02 20:22:00 +00:00
Deluan
28f435f8a9
Enable sharing only selected songs with the Subsonic API 2026-01-02 20:22:00 +00:00
Deluan
bfa35c11b8
Fix empty entry collection in Shares 2026-01-02 20:21:59 +00:00
Deluan
041f91ad53
Add getShares and createShare Subsonic endpoints 2026-01-02 20:21:59 +00:00
Deluan
b2aac87d1d
More work on Shares 2026-01-02 20:21:58 +00:00
Deluan
04abdf4509
Initial work on Shares 2026-01-02 20:21:58 +00:00
Zane van Iperen
8fd8ab5eac
Change genre.Put() to upsert. Fix #1918 and #1564 (#1920)
* persistence/genre: change Put() to upsert

Absolutely disgusting hack to work around [1]. Try to insert the genre,
but if it conflicts, ignore it and update the genre with the existing
ID.

[1]: https://github.com/navidrome/navidrome/issues/1918.

* scanner: remove cached genre repository

Not needed anytmore. And remember:

  "Many Small Queries Are Efficient In SQLite" [1].

[1]: https://www.sqlite.org/np1queryprob.html

* Revert "scanner: remove cached genre repository"

This reverts commit c5d900aa43e1c86b69f923b408e11ab8df8d815c.

* Use squirrel to build SQL, to reduce risk of SQL injection

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:21:19 +00:00
Kendall Garner
2cab4a4352
Add Internet Radio support (#2063)
* add internet radio support

* Add dynamic sidebar icon to Radios

* Fix typos

* Make URL suffix consistent

* Fix typo

* address feedback

* Don't need to preload when playing Internet Radios

* Reorder migration, or else it won't be applied

* Make Radio list view responsive

Also added filter by name, removed RadioActions and RadioContextMenu, and added a default radio icon, in case of favicon is not available.

* Simplify StreamField usage

* fix button, hide progress on mobile

* use js styles over index.css

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:21:17 +00:00
Deluan
6052243ff1
Optimize playlist cover generation 2026-01-02 20:21:17 +00:00
Deluan
21bc2a97d3
Don't refresh smart playlists when generating covers 2026-01-02 20:20:20 +00:00
Deluan
514c92997e
Implement new Artist refresh 2026-01-02 20:20:18 +00:00
Deluan
e44a9574b9
Remove CoverArtID, fix tests 2026-01-02 20:20:17 +00:00
Deluan
9236e18631
Remove current artwork implementation 2026-01-02 20:20:17 +00:00
Deluan
4fc0610558
Move album refresh to scanner 2026-01-02 20:20:17 +00:00
Deluan
e8d8fdd8eb
Remove old refresh code 2026-01-02 20:20:17 +00:00
Deluan
9cf05a6b60
Moved logic of collapsing songs into albums to model package
(it should really be called domain.... maybe will rename it later)
2026-01-02 20:20:17 +00:00
Deluan
e0bfb22007
Rename log.LevelCritical to log.LevelFatal 2026-01-02 20:20:16 +00:00
Deluan
2afc93bb9b
Add missing context to logger calls 2026-01-02 20:16:00 +00:00
Deluan
e833042f99
Fix adding songs to plain playlists 2026-01-02 20:15:59 +00:00
Deluan
260813a4b8
Don't allow adding songs to smart playlists 2026-01-02 20:15:58 +00:00
Deluan
f729efebbc
Add nilerr linter 2026-01-02 20:15:58 +00:00
Deluan
d66b04750b
Add errorlint linter 2026-01-02 20:15:58 +00:00
Deluan
03128f2b97
Fix error comparisons 2026-01-02 20:15:58 +00:00
Deluan
b980a77f5c
Add test for WithTx 2026-01-02 20:14:54 +00:00
Deluan
54e05638d5
Upgrade to Beego 2's orm 2026-01-02 20:14:54 +00:00
Deluan
90bc1981d8
Upgrade Ginkgo to V2 2026-01-02 20:14:21 +00:00
Deluan
e632893e62
Fix logging smart playlist's song count 2026-01-02 20:11:39 +00:00
Deluan
4fb2b39d61
Remove non-album artist_ids from the DB 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
f73c80ffb7
Make song/album/artist endpoints read-only 2026-01-02 20:09:03 +00:00
Deluan
3c1c97354f
Fix playlist filter 2026-01-02 20:09:03 +00:00
Deluan
3ea764141f
Use new rest lib (Update receives all columns that need to be updated) 2026-01-02 20:09:03 +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
0b3ba1aba9
Optimize basic media_file query, avoiding adding "group by" or joining with genres if not required 2026-01-02 20:09:01 +00:00
Deluan
517c900602
Filter playlists by names and comments 2026-01-02 20:09:01 +00:00
Deluan
92175a3b2f
Remove temp folders after tests 2026-01-02 20:09:01 +00:00
Deluan
95cbf54403
Fix error on empty playlists. Simplify code for some operations 2026-01-02 20:09:01 +00:00
Deluan
507223ea40
Load playlist track genres 2026-01-02 20:09:01 +00:00
Deluan
4425ec1338
Remove duplication for loading tracks 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
1475597c16
Fix Genre field and Contains/NotContains/StartsWith/EndsWith in Criteria (Smart Playlists) 2026-01-02 20:09:00 +00:00
Deluan
8edfcd2c8d
Increase updatePlaylist chunk to 100 tracks 2026-01-02 20:09:00 +00:00