Deluan
a74b365feb
Only adds route to `/events` if Activity Panel is enabled
2020-12-09 15:33:37 -05:00
Deluan
25ae1c6cdd
Return album art as a Reader
2020-12-02 09:13:36 -05:00
Deluan
a8c5fa6d49
Fix file descriptor leak in SSE implementation.master
...
See https://github.com/deluan/navidrome/issues/446#issuecomment-736296465
2020-12-01 09:24:44 -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
b6c578e3a2
Change format of events sent by server, leveraging event type and id
2020-11-25 20:46:21 -05:00
Deluan
f29bb211d1
Better termination handling in Scanner's progress
2020-11-25 19:05:36 -05:00
Deluan
63171368ed
Disable Activity Panel by default.
...
You'll need to set `DevActivityPanel` (or `ND_DEVACTIVITYPANEL`) to `true` to re-enable it
2020-11-25 15:29:46 -05:00
Deluan
3e8bee4f65
Make eventStream connection/reconnection more reliable
...
Also more logs on the server
2020-11-20 20:27:30 -05:00
Deluan
666b058ce4
Request album covers when DevFastAccessCoverArt is true
2020-11-18 16:59:06 -05:00
Deluan
a1dcb9a4e3
Show folders scanned instead of files scanned
2020-11-16 00:36:12 -05:00
Deluan
44d13bd37c
Remove stray Printf
2020-11-14 13:38:31 -05:00
Deluan
1c7f859b5e
Add more broker log
2020-11-14 00:44:58 -05:00
Deluan
08f96639f4
Add Uptime to Activity Panel
2020-11-13 20:09:23 -05:00
Deluan
b64bb706f7
Use Gravatar in GetAvatar Subsonic API
2020-11-13 14:57:49 -05:00
Deluan
9d7995fd4d
Redesign UserMenu, now with support for Gravatar
2020-11-13 00:40:30 -05:00
Deluan
08e63c867b
Add config option to globally enable/disable downloads
2020-11-10 16:14:43 -05:00
Deluan
bf69c5589f
Fix log message
2020-11-10 14:46:12 -05:00
Deluan
8f2fe6f9fa
Add buffer to broker SendMessage
2020-11-09 19:24:27 -05:00
Deluan
08dbf44529
Better broker logging
2020-11-09 19:24:04 -05:00
Deluan
a2e76d6898
Add flag to enable activity menu
2020-11-09 16:12:50 -05:00
Deluan
56803d0151
Auto-reconnect to event stream after 20secs timeout
2020-11-09 16:12:50 -05:00
Deluan
2b1a5f579a
Adding a communication channel between server and clients using SSE
2020-11-09 16:12:50 -05:00
Deluan
9cbeddae8f
Avoid cross-site scripting
...
See: https://lgtm.com/rules/1510377426397/
2020-11-05 12:32:39 -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
c0ec0b28b9
Add better process lifecycle management
2020-10-24 22:43:59 -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
6dc21d0595
Check for Last.FM and Spotify configuration at startup
2020-10-21 17:10:06 -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
1ffc8d619e
Log `ffmpeg` detection as Info
2020-10-12 21:59:03 -04:00
Deluan
c60e56828b
Fix `ffmpeg` detection
2020-10-12 10:59:42 -04:00
Deluan
fea5d23fc7
Add `ffmpeg` detection at start-up
2020-10-06 17:24:16 -04:00
Deluan
92b7ef40af
Disable CSP for now
2020-10-06 11:24:59 -04:00
Deluan
cd171c40cb
Add `secure` middleware, with sensible values
2020-10-06 08:46:58 -04:00
Deluan
8dfc259857
Serve `robots.txt` from root ( http://server/robots.txt )
2020-10-02 10:15:19 -04:00
Deluan
cf8756b14b
Unexport private function
2020-10-01 09:56:09 -04:00
Deluan
596a4897a3
Do not force username to always be lowercase in the DB
2020-09-01 18:00:19 -04:00
Deluan
9df405a8ce
Add export as m3u button to playlist
2020-08-22 13:23:50 -04:00
Deluan
366054e8cc
Handle exporting playlists as m3u files
2020-08-22 12:15:26 -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
15a06fcd27
Removed support for Jamstash in dev mode. Not needed anymore :)
2020-08-15 23:11:31 -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
ddb30ceb11
Add a `v` prefix to the version in the description
2020-07-26 10:52:20 -04:00
Deluan
67da83c84d
Use a RWMutex instead of an AtomicBool, to reduce contention
2020-07-26 00:45:33 -04:00
Deluan
a0bed9beeb
Handle missing index.html template
2020-07-24 13:59:41 -04:00
Deluan
72efc18158
Allow translations to be overridden in the data folder
2020-07-23 18:11:10 -04:00
Deluan
482f46f3fd
Remove unneeded context in log calls
2020-07-19 15:28:50 -04:00
Deluan
f0160f5d2a
Rate limit login attempts using a Sliding Window counter rate-limiter
2020-07-19 14:45:05 -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
f0a5df7cd7
Move transcodings initialization to a migration
...
This will make it run only once, not every
time the transcoding table is empty
2020-07-06 23:48:43 -04:00
Deluan
1cc03fdd8c
Add initial support for Google Analytics
2020-07-03 13:51:31 -04:00
Deluan
dd91f983b5
Add new config option to show a custom welcome message in the login screen
2020-07-03 11:51:15 -04:00
Deluan
d2e4cade62
Change duration config types
2020-07-02 17:53:51 -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
c742ae0843
Remove unused feature toggles
2020-06-11 22:11:59 -04:00
Deluan
331fa1d952
Add ability to reorder playlist items
2020-06-04 19:05:41 -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
8a68cecdb9
Add ToggleStar to SongContextMenu (WIP)
2020-05-22 15:23:42 -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
12cf2f1104
Remove tracks from playlist
2020-05-16 18:35:34 -04:00
Deluan
e81a9dd1b5
Add tracks to playlist
2020-05-16 18:35:34 -04:00
Deluan
f881e2a54b
Add option to enable (experimental) playlists in UI
2020-05-16 18:35:34 -04:00
Deluan
aebee651ac
Add nested resource `playlist/{id}/tracks`
2020-05-16 18:35:34 -04:00
Deluan
a56e588c8e
Create relation table for playlist tracks
2020-05-16 18:35:34 -04:00
Deluan
4e613be960
Add playlists REST endpoint
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
bb01c8973f
Fix lint error
2020-05-04 20:46:16 -04:00
Deluan
8d99c3ab92
Add validation tests to translations files
2020-05-04 19:54:10 -04:00
Deluan
854a923fea
Don't sort ReadAll translations, as it will be sorted in the UI
2020-05-02 14:19:01 -04:00
Deluan
496b467c1d
Cater for differences when loading embedded Assets and in dev mode
2020-05-02 14:19:01 -04:00
Deluan
41cf99541d
Move translations to server
2020-05-02 14:19:01 -04:00
Deluan
1a9663d432
Move `static` to `resources`. Embed them at build time
2020-05-02 14:19:01 -04:00
Deluan
b7dcdedf41
More error handling
2020-05-02 14:19:01 -04:00
Deluan
c816ca4525
Add config option to enable/disable Transcoding configuration
2020-04-29 21:59:05 -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
03c3c192ed
Fixing static checks about passing nil context
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
694be54428
Replace math.Max with utils.MaxInt
2020-04-20 12:17:01 -04:00
Dimitri Herzog
716f4c5cf7
configuration for request throttling
2020-04-20 11:51:00 -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
d81bf8a518
Update github.com/go-chi/cors
2020-04-13 10:50:18 -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
089a92157f
Pass version to UI through AppConfig, instead of login payload.master
...
This makes the version info updated with a browser refresh (no need to logout and login again)
2020-04-08 11:00:30 -04:00
Deluan
db246900a6
Introduce a new configuration to select the login background image URL
2020-04-08 09:07:15 -04:00
Deluan
7e6c0e3894
Less noisy logs for scrobble
2020-04-06 19:42:35 -04:00
Deluan
b930c7253a
Fix tests in pipeline
2020-04-06 17:01:48 -04:00
Deluan
3f9ddb915e
Use a custom authorization header, to avoid conflicts with proxies using basic auth ( fixes #146 )
2020-04-06 16:03:20 -04:00
Deluan
c3edc7f449
Add test for ServeIndex
2020-04-06 15:37:15 -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
3b6d0b3d15
Add a catchall route to redirect everything to app/index.html
2020-04-03 19:45:35 -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
f403a8da34
feat: add version to index.html description meta tag
2020-03-22 01:04:10 -04:00
Deluan
e23a290812
fix: logging of scanner startup
2020-03-21 14:20:22 -04:00
Deluan
9f42e330b4
fix: change web requests log level to debug
2020-03-21 13:03:04 -04:00
Deluan
8b108905a3
feat: use Navidrome's icon in getAvatar
2020-03-18 22:46:47 -04:00
Deluan
811703ab60
fix: create default transcodings on existing installations
2020-03-17 16:49:37 -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
d2eea64528
fix: typo
2020-02-23 21:41:10 -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
2c146ea1fe
feat: add option to auto-create admin user on first start-up
...
Useful for development purposes
2020-02-08 14:50:33 -05:00
Deluan
10ead1f5f2
feat: better way to detect initial account creation
2020-02-08 14:32:55 -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
b5dadf55f4
feat: add an authenticated keepalive, to keep the UI session alive while playing songs
2020-02-06 18:41:34 -05:00
Deluan
220ffd5324
chore: removed unused code
2020-02-06 18:41:16 -05:00
Deluan
2dbd645292
feat: show server version in User Menu
2020-02-05 23:08:04 -05:00
Deluan
6978790e96
feat: allow regular users to login to the UI
2020-02-05 22:22:44 -05:00
Deluan
e5e35516d7
fix: initialize mimetypes for tests
2020-02-04 20:44:54 -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
0d64fb05c7
feat: disable scanner if ScanInterval is set to 0
2020-02-03 11:58:21 -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
71c1844bca
refactor: new persistence, more SQL, less ORM
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
0d2911daf9
refactor: add Context to the persistence layer
2020-01-27 09:41:33 -05:00
Deluan
58a7879ba8
feat: first time admin user creation through the ui
2020-01-25 17:10:16 -05:00
Deluan
8756f55650
Add git info to version
2020-01-25 11:06:04 -05:00
Deluan
5b84188f58
Add banner.txt as a static file
2020-01-24 23:45:31 -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
50d89760e2
Use bindata to embed UI assets
2020-01-22 18:38:54 -05:00
Deluan
7dc3f49c1c
Initial support for artist browsing from UI. Also add linking between resources
2020-01-22 13:02:19 -05:00
Deluan
ea30b4c2d9
Initial support for album browsing from UI
2020-01-22 12:32:31 -05:00
Deluan
9557f7ceed
Initial support for song browsing from UI
2020-01-22 10:47:43 -05:00
Deluan
182c0b5d5e
Add configuration for scan interval. Default 5 mins
2020-01-22 08:48:02 -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
c42e1bd2f5
Extract metadata from files in a directory in batch (one call to ffmpeg for all files)
2020-01-21 07:50:30 -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
28cd3ec3e4
Fix startup order, setting LogLevel
2020-01-20 17:35:04 -05:00
Deluan
9e5ffaaff4
Created InitialSetup method that handles all steps required for starting the server for the first time
2020-01-20 15:17:43 -05:00
Deluan
4e8cb5ffef
Only allow Admins to login to the UI (for now)
2020-01-20 13:52:55 -05:00
Deluan
99c28731d4
Authenticate Subsonic API calls using the DB
2020-01-20 13:42:43 -05:00
Deluan
e717d99780
Authenticate UI
2020-01-20 10:25:35 -05:00
Deluan
491bfb1f69
Create initial user if User table is empty. Also make model.QueryOptions compatible with rest.QueryOptions
2020-01-19 22:47:22 -05:00
Deluan
1c04a19910
Add UserList in UI
2020-01-19 20:40:18 -05:00
Deluan
3a03284c59
Add routing for basic web ui
2020-01-19 19:35:03 -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
Deluan
67eeb218c4
Big Refactor:
...
- Create model.DataStore, with provision for transactions
- Change all layers dependencies on repositories to use DataStore
- Implemented persistence.SQLStore
- Removed iTunes Bridge/Importer support
2020-01-19 16:28:09 -05:00
Deluan
123f543a94
New Folder Scanner - WIP
2020-01-17 20:54:28 -05:00
Deluan
ca2c897340
Add flag to disable startup banner
2020-01-15 17:51:52 -05:00
Deluan
25686c1742
Preparing for new scanner
2020-01-14 21:51:35 -05:00
Deluan
d68342bd97
Add a 410-Gone handler for endpoints that will not be implemented
2020-01-13 20:45:38 -05:00
Deluan
3d76144f82
Allow LogLevel to be configurable. Also add filename and line number when LogLevel>=debug
2020-01-13 19:57:36 -05:00
Deluan
c995766c45
Add startup banner
2020-01-13 18:24:54 -05:00
Deluan
04ef2edeca
Move App to server package
2020-01-13 17:06:47 -05:00