Deluan
b65e76293a
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
2021-06-15 18:59:26 -04:00
Deluan
8383527aab
Only refetch changed resources when receive a "refreshResource" event
2021-06-15 16:12:13 -04:00
Deluan Quintão
03efc48137
Refactor routing, changes API URLs ( #1171 )
...
* Make authentication part of the server, so it can be reused outside the Native API
This commit has broken tests after a rebase
* Serve frontend assets from `server`, and not from Native API
* Change Native API URL
* Fix auth tests
* Refactor server authentication
* Simplify authProvider, now subsonic token+salt comes from the server
* Don't send JWT token to UI when authenticated via Request Header
* Enable ReverseProxyWhitelist to be read from environment
2021-06-13 12:46:36 -04:00
Deluan
e31802d2d3
Only send "refresh" event if SetRating was successful
2021-06-10 15:03:30 -04:00
Deluan
cefc939909
Trigger UI refresh on media annotation events: star, setRating and scrobble
2021-06-10 12:20:52 -04:00
Deluan
110e17b004
Make MockRepo names more consistent
2021-06-08 16:30:19 -04:00
Deluan
675cbe11b3
Fix updatePlaylist not updating fields comment and public.
...
Fix #1140
2021-05-29 17:16:56 -04:00
Deluan
91a91f7e06
GetCoverArt returns placeholder if id is missing
...
This mimics Subsonic behaviour, even if it contradicts the API documentation, which states `id` is required
Fixes #1139
2021-05-29 11:37:00 -04:00
Deluan
22ce5b6282
Removed unnecessary code
2021-05-11 18:55:58 -04:00
Deluan
7d96167abc
Upgrade to go-chi 5
2021-05-11 17:21:18 -04:00
Deluan
3e8d3e78c2
Fix Bookmarks Subsonic support ( #1099 )
...
JSON responses were incorrect
2021-05-07 09:47:13 -04:00
Deluan
e3fe8399c8
Fix DevAutoCreateAdminPassword
2021-05-01 18:40:02 -04:00
Deluan
156a53c2ac
Add support for artist 5-star rating in Subsonic API
2021-04-06 23:06:31 -04:00
Yash Jipkate
e575825c33
Add / to _ mapping for paths based on tags. ( #888 )
...
Closes #592
2021-03-25 21:48:28 -04:00
Deluan
720e2357b7
Add option to sort Recently Added by file's mtime instead of time of import.
2021-03-12 18:18:35 -05:00
Deluan Quintão
2d528bbc87
Remove dependency of go-bindata ( #818 )
...
* Use new embed functionality for serving UI assets
* Use new embed functionality for serving resources. Remove dependency on go-bindata
* Remove Go 1.15
2021-03-12 11:06:51 -05:00
Deluan
107803e037
Update list of Not Implemented / Gone Subsonic API endpoints
2021-02-09 21:25:14 -05:00
Deluan
157faad028
Rename ExternalInfo to ExternalMetadata
2021-02-09 15:33:33 -05:00
Deluan
5fdd8b32d7
Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool
2021-02-09 15:33:33 -05:00
Deluan
6ee45a9ccc
Move project to Navidrome GitHub organization
2021-02-06 21:46:35 -05:00
Deluan
9668263235
Logging when triggering manual scan
2021-02-03 00:27:59 -05:00
Deluan
1f3bc4d202
Use tools.go commands without installing
2021-02-01 16:16:30 -05:00
Deluan
9520c30c32
Fix "failed" Subsonic response. Fix #716
2021-01-07 08:24:13 -05:00
Deluan
25ae1c6cdd
Return album art as a Reader
2020-12-02 09:13:36 -05:00
Deluan
975579ab26
Add option for player to report real paths in Subsonic API. Closes #625
2020-11-28 10:25:23 -05:00
Deluan
f29bb211d1
Better termination handling in Scanner's progress
2020-11-25 19:05:36 -05:00
Deluan
a1dcb9a4e3
Show folders scanned instead of files scanned
2020-11-16 00:36:12 -05:00
Deluan
b64bb706f7
Use Gravatar in GetAvatar Subsonic API
2020-11-13 14:57:49 -05:00
Deluan
08e63c867b
Add config option to globally enable/disable downloads
2020-11-10 16:14:43 -05:00
Deluan
36596d4fdb
Don't send the transcoded file if it is a HEAD request
2020-11-03 16:06:02 -05:00
Deluan
ee5a0698c0
Simplify scanner utilization
2020-11-01 18:37:17 -05:00
Deluan
71b77cba2b
Bump Subsonic API to 1.16.1
2020-11-01 17:04:53 -05:00
Deluan
8e584ee020
Update count on getScanStatus
2020-11-01 16:54:33 -05:00
Deluan
cfad35544b
Add artistImageUrl available in getArtists endpoint
...
Also cache artist info in the DB for 1 hour
2020-11-01 14:37:29 -05:00
Deluan
32bac11b61
Make CreatePlaylist response compatible with API >1.14.0
2020-10-28 12:46:06 -04:00
Deluan
78630d427d
Limit startScan to admins only
2020-10-27 20:22:05 -04:00
Deluan
d9f7a154cf
Implements library scanning endpoints. Also:
...
- Bumped Subsonic API version to 1.15:
- Better User/Users Subsonic endpoint implementations, not final though
2020-10-27 18:20:50 -04:00
Deluan
4777cf0aba
Simplify error responses
2020-10-27 15:33:28 -04:00
Deluan
0f418a93cd
Completely removed engine package, fewer abstraction layers \o/
2020-10-27 15:27:37 -04:00
Deluan
d0bf37a8a9
Move mock datastore to tests package
2020-10-27 15:23:49 -04:00
Deluan
313a088f86
Make mocks strongly typed
2020-10-27 15:23:49 -04:00
Deluan
6152fadd92
Removed list_generator completely
2020-10-27 15:23:48 -04:00
Deluan
3037ea01e2
Removed more layers of indirection from the engine package
2020-10-27 15:23:48 -04:00
Deluan
1cfa7b2272
Change MediaFolder.ID type to int32
2020-10-25 23:22:52 -04:00
Deluan
d24709b521
Add getScanStatus Subsonic response
2020-10-25 23:22:52 -04:00
Deluan
04fd72e1fa
Change avatar placeholder to new logo
2020-10-23 21:37:53 -04:00
Deluan
1cd2f015c2
Get Similar Artists in parallel
...
Also don't fail `GetArtistInfo` when Last.FM is not configured
2020-10-21 21:44:03 -04:00
Deluan
b88f9013dc
Fix getAlbumList.byYear. See https://github.com/daneren2005/Subsonic/issues/967
2020-10-21 17:32:10 -04:00
Deluan
078a7c24e6
Add userRating to Subsonic API's Artist
2020-10-21 15:51:12 -04:00
Deluan
2f11c2dc8f
Bump Subsonic API compatibility to 1.13
2020-10-20 22:54:37 -04:00
Deluan
049ac70b2b
Add "real" TopSongs
2020-10-20 22:53:52 -04:00
Deluan
64ccb4d188
Add SimilarSongs functionality
2020-10-20 16:07:31 -04:00
Deluan
e9e09a7480
Add dedicated SimilarArtists call
2020-10-20 16:07:31 -04:00
Deluan
29d8950e5b
Better ArtistInfo field names
2020-10-20 16:07:31 -04:00
Deluan
07d96f8308
Add missing fields to ArtistInfo
2020-10-20 16:07:31 -04:00
Deluan
07535e1518
Add ExternalInformation core service (not a great name, I know)
2020-10-20 16:07:31 -04:00
Deluan
596a4897a3
Do not force username to always be lowercase in the DB
2020-09-01 18:00:19 -04:00
Deluan
8fa5544af7
Add option to download playlist
2020-08-21 13:28:20 -04:00
Deluan
e2e79d6471
Fix getTopSongs endpoint mapping
2020-08-20 11:27:38 -04:00
Deluan
6fe1f84c68
Add download for songs
2020-08-14 12:11:35 -04:00
Deluan
d72468003f
User album or artist name as zip name in download endpoint
2020-08-14 12:10:37 -04:00
Deluan
100f6a0645
Removed engine.Users
2020-08-14 12:10:37 -04:00
Deluan
bc2073fbd5
Removed unused function
2020-08-14 12:10:37 -04:00
Deluan
278d0ea8f3
Fix album fields in simulated browsing by folder
2020-08-14 12:10:37 -04:00
Deluan
419884db7c
Removed engine.Scrobbler
2020-08-14 12:10:37 -04:00
Deluan
eacfc41665
Removed engine.Search
2020-08-14 12:10:37 -04:00
Deluan
c271aa24d1
Make all Subsonic helper functions private
2020-08-14 12:10:37 -04:00
Deluan
22f34b3347
Refactor getGenres. Remove engine.Browser
2020-08-14 12:10:37 -04:00
Deluan
eba8395146
Refactor getSong
2020-08-14 12:10:37 -04:00
Deluan
f16dc5f8f8
Refactor getMusicDirectory
2020-08-14 12:10:37 -04:00
Deluan
15c8f4c0ef
Refactor getAlbum
2020-08-14 12:10:37 -04:00
Deluan
e344f616b3
Refactor getArtist
2020-08-14 12:10:37 -04:00
Deluan
ef81caf3ed
Refactor getMusicFolders and getIndexes
2020-08-14 12:10:37 -04:00
Deluan
a5e1986072
Fix getTopSongs endpoint
2020-08-13 18:56:13 -04:00
Deluan
4ec451aecb
Add content-disposition header to set a download name
2020-08-05 18:40:46 -04:00
Deluan
8e4b2e1c06
Add GetTopSongs placeholder, to make AVSub work
2020-08-05 13:48:50 -04:00
Deluan
a541afbfba
Revert "Return absolute paths in Subsonic API responses"
...
This reverts commit 338cbacb
2020-08-05 12:37:43 -04:00
Deluan
df05760769
Move engine package under subsonic, as it should only be used by the Subsonic API.master
...
The idea is to move reusable code from `engine` to `core`, in future refactorings
2020-08-04 21:29:35 -04:00
Deluan
2c370cae28
Support downloading full album and artist discography through Subsonic API
2020-08-04 12:39:13 -04:00
Deluan
f745b8d223
Use transaction's DataStore
2020-08-04 11:53:19 -04:00
Deluan
696a0feb31
Remove ratings from engine package
2020-08-02 17:58:07 -04:00
Deluan
ed726c2126
Better implementation of Bookmarks, using its own table
2020-08-01 12:17:15 -04:00
Deluan
23d69d26e0
Add Bookmarks to Subsonic API
2020-07-31 17:45:49 -04:00
Deluan
924ada0dab
Add bookmark API repsonse
2020-07-31 17:45:49 -04:00
Deluan
2d3ed85311
Add bookmark in persistence layer
2020-07-31 17:45:49 -04:00
Deluan
3d4f4b4e2b
Fix lint errors
2020-07-31 17:45:49 -04:00
Deluan
0cf574198e
Use Last.FM "white star" URL for artist info
2020-07-31 17:45:49 -04:00
Deluan
3000238a3c
Implements the get/save play queue Subsonic endpoints and bumps API version to 1.12.0
2020-07-31 17:45:49 -04:00
Deluan
16c38eb344
Add PlayQueue Subsonic response
2020-07-31 17:45:49 -04:00
Deluan
2b59d4b87a
Rename 'Cover' to the more generic term 'Artwork'
2020-07-31 11:38:56 -04:00
Deluan
4e4fcb2304
Small refactorings, better var/function names
2020-07-27 10:51:50 -04:00
Deluan
67da83c84d
Use a RWMutex instead of an AtomicBool, to reduce contention
2020-07-26 00:45:33 -04:00
Deluan
9e35534dad
Fix lint errors
...
New environment, forgot to setup it properly...
2020-07-10 13:11:02 -04:00
Deluan
5620c58a30
Started the big refactor to extract common logic from engine package (Subsonic only) to core package (more generic)
2020-07-10 12:53:11 -04:00
Deluan
a6af46dbad
Always use lowercase username, as it is used for referential integrity. Fixes #352
2020-06-14 20:20:10 -04:00
Deluan
51fb1d1349
Increase cover art max-age to maximum
2020-06-04 14:45:00 -04:00
Deluan
888151728f
Increase album art placeholder's resolution
2020-06-03 09:40:37 -04:00
Deluan
9028d301f0
Change log level for playlist log messages
2020-05-26 22:03:25 -04:00
Deluan
fbd6c965b0
Always return public attribute in playlist response
2020-05-25 21:00:05 -04:00
delucks
ae847103a2
Correct response body for getSongsByGenre
2020-05-22 18:08:35 -04:00