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 |
Deluan
|
17df63b550
|
Fix `child.size` and `directory.playCount` compatibility with Subsonic API. Fixes #304
|
2020-05-19 23:51:23 -04:00 |
Deluan
|
a56e588c8e
|
Create relation table for playlist tracks
|
2020-05-16 18:35:34 -04:00 |
Deluan
|
f8362a4acb
|
Fix staticcheck's SA1029
|
2020-05-13 16:49:55 -04:00 |
Deluan
|
0d1e2a92f6
|
Make MediaFolder ID int32
|
2020-05-09 22:29:02 -04:00 |
Deluan
|
1ed6d130b1
|
Fix `getMusicFolders` and `getIndexes` API compliance. Fix #286
|
2020-05-09 21:02:38 -04:00 |
Deluan
|
1a9663d432
|
Move `static` to `resources`. Embed them at build time
|
2020-05-02 14:19:01 -04:00 |
jvoisin
|
26188e6d8a
|
Enable a couple of linters
|
2020-04-29 09:03:07 -04:00 |
Deluan
|
5cd453afeb
|
Fix all `errcheck` warnings
|
2020-04-26 15:07:36 -04:00 |
Deluan
|
d534cb96a9
|
Replace math.Max with utils.MaxInt
|
2020-04-21 08:41:04 -04:00 |
Dimitri Herzog
|
f1e1d3bc07
|
request throttling only for media group api
|
2020-04-21 08:39:14 -04:00 |
Deluan
|
defdc2ea6b
|
Bump Subsonic API to 1.10.2
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
1fd6571a87
|
Refactored getSongsByGenre
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
4c0250f9f8
|
Add fromYear/toYear params to getRandomSongs
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
0e1735e7a9
|
Add getSongsByGenre endpoint
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
a698e434fd
|
Refactor list_generator to use new filters
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
95f658336c
|
Implement byYear and byGenre AlbumLists
|
2020-04-17 21:44:34 -04:00 |
Deluan
|
adfaf39489
|
Mark more endpoints as "gone" (won't be implemented)
|
2020-04-12 23:12:28 -04:00 |
Deluan
|
e476a5f6f1
|
Make fields `songCount`, `duration`, `created` and `changed` mandatory in playlists responses (fixes #164)
|
2020-04-11 19:15:15 -04:00 |
Deluan
|
e232c5c561
|
Add `created` and `changed` fields to playlists responses
|
2020-04-11 18:58:43 -04:00 |
Deluan
|
7e6c0e3894
|
Less noisy logs for scrobble
|
2020-04-06 19:42:35 -04:00 |
Deluan
|
a17a98a75f
|
Log API requests and responses at Debug level
|
2020-04-05 23:57:04 -04:00 |
Deluan
|
d308e7ca46
|
Fix typo
|
2020-04-05 17:49:14 -04:00 |
Deluan
|
0ba5840a65
|
Don't set a playerId cookie it cannot register the player
|
2020-04-04 20:26:36 -04:00 |
Deluan
|
75cd21da1f
|
Add BaseURL configuration (fixes #103)
|
2020-04-03 19:05:38 -04:00 |
Deluan
|
8510273216
|
Send estimated content length if requested
|
2020-04-03 00:24:40 -04:00 |
Deluan
|
8b108905a3
|
feat: use Navidrome's icon in getAvatar
|
2020-03-18 22:46:47 -04:00 |
Deluan
|
c8b0d2bfae
|
feat: select correct transcoding for streaming
|
2020-03-17 15:20:35 -04:00 |
Deluan
|
39993810b3
|
feat: add `transcodedSuffix` to Subsonic API responses
|
2020-03-17 15:20:35 -04:00 |
Deluan
|
da36941252
|
feat: better getPlayer middleware setup
|
2020-03-17 15:20:35 -04:00 |
Deluan
|
8ec78900c5
|
feat: transcoding and player datastores and configuration
|
2020-03-17 15:20:35 -04:00 |
Deluan
|
fc06163b5a
|
refactor: remove superfluous (and untested) code
|
2020-03-02 09:37:47 -05:00 |
Deluan
|
f394de664a
|
refactor: new transcoding engine. third (fourth?) time is a charm!
|
2020-02-24 13:56:09 -05:00 |
Deluan
|
fc14e346b9
|
feat: store duration as float, to cater for milliseconds
|
2020-02-20 17:02:06 -05:00 |
Deluan
|
a412989f7e
|
refactor: more stable transcoder, based on http.FileSystem
|
2020-02-19 14:53:35 -05:00 |
Deluan
|
3b12c92ad5
|
feat: add cache to the getCoverArt endpoint, avoid it being reloaded every single time in the UI
|
2020-02-15 14:32:11 -05:00 |
Deluan
|
a37beac753
|
feat: add X-Content-Duration header to the stream response
|
2020-02-09 22:09:18 -05:00 |
Deluan
|
ce11a2f3be
|
feat: fake getArtistInfo/getArtistInfo2, just to enable artist browsing in MusicStash
|
2020-02-09 19:42:37 -05:00 |
Deluan
|
8673533cd4
|
refactor: move request param extractors to utils
|
2020-02-06 18:55:38 -05:00 |
Deluan
|
abb99a8501
|
feat: add authentication via JWT token
|
2020-02-06 18:41:34 -05:00 |
Deluan
|
6dfe56c1c4
|
feat: transcoding info in responses, to enable Jamstash to play transcoded FLAC. hardcoded for now
|
2020-02-04 09:01:22 -05:00 |
Deluan
|
8372dee000
|
feat: experimental downsampling support
|
2020-02-03 22:53:57 -05:00 |
Deluan
|
203754726b
|
refactor: better request logging
|
2020-02-01 20:07:15 -05:00 |
Deluan
|
d4365b9f64
|
refactor: read musicFolderId from request (but still don't use it)
|
2020-02-01 17:23:03 -05:00 |
Deluan
|
d389d40db1
|
feat: improve logs, remove config for disable authentication
|
2020-02-01 17:23:03 -05:00 |
Deluan
|
90a1e6d213
|
feat: add server name and version to all responses
This is inline with other Subsonic compatible servers, like funkwhale, madsonic, ampache...
|
2020-01-30 14:43:24 -05:00 |
Deluan
|
1278863416
|
feat: support clients that send the API params as a x-www-form-urlencoded POST
|
2020-01-27 15:10:46 -05:00 |
Deluan
|
49f59fe9f4
|
Embed static files used by Subsonic API
|
2020-01-24 21:35:19 -05:00 |
Deluan
|
bff6f3a4bd
|
Rename env vars prefix to ND_
|
2020-01-24 01:29:31 -05:00 |
Deluan
|
bee55c04c8
|
Rename project to Navidrome
|
2020-01-23 19:44:08 -05:00 |
Deluan
|
9557f7ceed
|
Initial support for song browsing from UI
|
2020-01-22 10:47:43 -05:00 |
Deluan
|
f0ee41a8af
|
Add context to all methods in engine layer
|
2020-01-22 08:39:57 -05:00 |
Deluan
|
d7116eebd4
|
Implement annotations per user
|
2020-01-21 23:03:37 -05:00 |
Deluan
|
7fe15134a6
|
Check permissions to playlist operations
|
2020-01-21 17:18:46 -05:00 |
Deluan
|
57fcdac428
|
Initial support for playlists. Missing permissions
|
2020-01-21 16:39:35 -05:00 |
Deluan
|
de0816da67
|
Reimplemented GetAlbumList&type=random and GetRandomSongs (now with filter by genres)
|
2020-01-21 08:49:43 -05:00 |
Deluan
|
8a1110044c
|
Better error handling when cover art cannot be loaded
|
2020-01-20 22:30:16 -05:00 |
Deluan
|
2cc983638c
|
Add authenticated user to context
|
2020-01-20 18:12:17 -05:00 |
Deluan
|
99c28731d4
|
Authenticate Subsonic API calls using the DB
|
2020-01-20 13:42:43 -05:00 |
Deluan
|
5bc1551b09
|
Clean up
|
2020-01-19 18:28:23 -05:00 |
Deluan
|
7610b42f4b
|
Moved package `api` to `subsonic` under `server`
|
2020-01-19 18:23:09 -05:00 |