Commit Graph

216 Commits

Author SHA1 Message Date
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