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
Deluan
8d2f921919
Speed up Subsonic GetPlaylist (by optimizing loadTracks)
2026-01-02 20:09:00 +00:00
Deluan
54996563ed
Make SmartPlaylists read-only
2026-01-02 20:08:59 +00:00
Deluan
a2264b3d39
Update stats of Smart Playlist when it is created
...
Also fix loadTracks
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
9aed87531c
Include never played songs in the "not in the last" operator
2026-01-02 20:08:59 +00:00
Deluan
7a8f703eaf
Fix smart playlist refreshing only after the tracks were loaded
2026-01-02 20:08:59 +00:00
Deluan
9033efc971
Cache smart playlist refreshes for 5 seconds
2026-01-02 20:08:59 +00:00