Deluan
d4c1d2ece4
Handle expired shares
2023-01-24 18:36:46 -05:00
Deluan
d0dceae094
Add getShares and createShare Subsonic endpoints
2023-01-24 18:36:46 -05:00
Deluan
94cc2b2ac5
Fix tests and lint errors, plus a bit of refactor
2023-01-24 18:36:46 -05:00
Deluan
12bb6c3847
Don't expose empty dates in share info
2023-01-24 18:36:46 -05:00
Deluan
364fdfbd8d
Use defaultDownsamplingFormat in share options
2023-01-24 18:36:45 -05:00
Deluan
84aa094e56
More work on Shares
2023-01-24 18:36:45 -05:00
Deluan
ab04e33da6
Initial work on Shares
2023-01-24 18:36:45 -05:00
Deluan
136d5f9a83
Add config option to show album participations under artists in Subsonic clients
2023-01-18 14:20:06 -05:00
Deluan
701e301d48
Increase timeout for obtaining login background image list
2023-01-17 22:57:14 -05:00
Kendall Garner
93adda66d9
Get album info (when available) from Last.fm, add getAlbumInfo endpoint ( #2061 )
...
* lastfm album.getInfo, getAlbuminfo(2) endpoints
* ... for description and reduce not found log level
* address first comments
* return all images
* Update migration timestamp
* Handle a few edge cases
* Add CoverArtPriority option to retrieve albumart from external sources
* Make agents methods more descriptive
* Use Last.fm name consistently
Co-authored-by: Deluan <deluan@navidrome.org>
2023-01-17 20:22:54 -05:00
Kendall Garner
1324a16fc5
ReplayGain support + audio normalization (web player) ( #1988 )
...
* ReplayGain support
- extract ReplayGain tags from files, expose via native api
- use metadata to normalize audio in web player
* make pre-push happy
* remove unnecessary prints
* remove another unnecessary print
* add tooltips, see metadata
* address comments, use settings instead
* remove console.log
* use better language for gain modes
2023-01-17 15:57:19 -05:00
Deluan
e40da183bb
Move artwork id encoding to public package
2023-01-16 15:24:25 -05:00
Deluan
c748d669d6
Sort radio stations by name
2023-01-15 16:12:22 -05:00
Deluan
a8478ca74c
Fix Subsonic XML Internet Radio response
2023-01-15 15:38:38 -05:00
Kendall Garner
8877b1695a
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>
2023-01-15 15:11:37 -05:00
Deluan
dfbf86c577
Allow any HTTP methods for public images endpoint. Fix artist covers in Subtracks
2023-01-14 10:17:21 -05:00
Deluan
16c869ec86
Optimize playlist cover generation
2023-01-13 22:18:34 -05:00
Deluan
c46a2a5f5f
New dev options to control getCoverArt throttling
2023-01-13 22:18:34 -05:00
Deluan
69e0a266f4
Remove size from public image ID JWT
2023-01-13 22:18:34 -05:00
Deluan
77a99a735b
Always access artist images through Navidrome (proxy calls to external URLs)
2023-01-13 22:18:34 -05:00
Deluan
918fee3ea3
Artwork reader for Artist
2023-01-13 22:18:34 -05:00
Deluan
bf461473ef
Add local agent, only for images
2023-01-13 22:18:34 -05:00
Deluan
387acc5f63
Add public endpoint to expose images
2023-01-13 22:18:34 -05:00
Deluan
7fbcb2904a
Add function number.RandomInt64
2023-01-13 21:40:24 -05:00
Deluan
fdbece5c92
Use custom sanitize package, fix #2070
2023-01-12 13:39:05 -05:00
Deluan
df0f140f9f
Don't refresh smart playlists when generating covers
2023-01-01 20:28:03 -05:00
Deluan
950cc28e67
Add coverArt to Subsonic playlist response
2023-01-01 19:35:19 -05:00
Deluan
6260927074
Serve artist placeholder directly, instead of using LastFM's CDN
2022-12-30 20:14:03 -05:00
Deluan
61e5523457
Handle "naked" CoverArtIDs (IDs of album, mediafiles and playlists)
2022-12-28 15:31:56 -05:00
Deluan
332900774d
Rename DevFastAccessCoverArt to EnableMediaFileCoverArt
2022-12-28 15:31:56 -05:00
Deluan
722a00cacf
Fix artwork caching
2022-12-28 15:31:56 -05:00
Deluan
c1c4645501
Move artwork handling to its own package
2022-12-28 15:31:56 -05:00
Deluan
045b023b35
Fix DevFastAccessCoverArt flag
2022-12-28 15:31:56 -05:00
Deluan
a087f57d2d
Handle request (context) cancellation
2022-12-28 15:31:56 -05:00
Deluan
9fcd1c9354
Make internal method unexported
2022-12-28 15:31:56 -05:00
Deluan
92b42b35b3
Fallback extracting tags using ffmpeg
2022-12-28 15:31:56 -05:00
Deluan
abd3274250
Handle empty cover art ID in subsonic API
2022-12-28 15:31:56 -05:00
Deluan
c430401ea9
Remove current artwork implementation
2022-12-28 15:31:56 -05:00
Deluan
28e7371d93
Moved logic of collapsing songs into albums to model package
...
(it should really be called domain.... maybe will rename it later)
2022-12-28 15:31:56 -05:00
Deluan
e03ccb3166
Replace MinInt/MaxInt with generic versions
2022-12-28 15:31:56 -05:00
Deluan
5943e8f953
Rename log.LevelCritical to log.LevelFatal
2022-12-21 14:53:36 -05:00
Deluan
28389fb05e
Add command line M3U exporter. Closes #1914
2022-12-21 14:39:40 -05:00
Kendall Garner
54395e7e6a
Enable transcoding of downlods ( #1667 )
...
* feat(download): Enable transcoding of downlods - #573
Signed-off-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
* feat(download): Make automatic transcoding of downloads optional
Signed-off-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
* Fix spelling
* address changes
* prettier
* fix config
* use previous name
Signed-off-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2022-12-18 12:12:37 -05:00
Deluan
6489dd4478
Fix overriding previous logger in context
2022-12-14 11:50:16 -05:00
Deluan
6c4a0be6ff
Add endpoints in Subsonic API logs
2022-12-14 10:52:46 -05:00
Deluan
982b604500
Add username to authenticated log messages
2022-12-14 09:35:30 -05:00
Deluan
f206d81afd
Some cleanup, fixes typos and grammar errors
2022-12-06 20:09:03 -05:00
Deluan
c5f7cf97f4
Some cleanup, adding missing context handling
2022-12-06 19:57:47 -05:00
Deluan
0cc1db54d4
Bump github.com/bradleyjkemp/cupaloy to v2.8.0
2022-12-05 22:45:02 -05:00
Deluan
03640ca93d
Fix background images when BaseURL is specified
2022-11-29 14:48:05 -05:00
Deluan
950b5dc1ce
Remove math/rand and only use crypto/rand
2022-11-27 21:53:13 -05:00
Deluan
195f39182d
Host default login background images in Navidrome's own website
2022-11-27 21:37:33 -05:00
Deluan
1b5f855bff
Compress more http content-types.
...
Also, some minor refactoring
2022-11-26 13:13:05 -05:00
Deluan
19af11efbe
Simplify Subsonic API handler implementation
2022-11-21 12:57:56 -05:00
Deluan
cd41d9a419
Shutdown gracefully, close DB connection
2022-11-21 12:28:09 -05:00
Deluan
1467036efd
Add DefaultUIVolume option. Closes #1679
2022-11-11 16:31:28 -05:00
Deluan
9c433b5d68
Add missing context to logger calls
2022-11-04 11:30:12 -04:00
Deluan
76517cab12
Fix potential nil pointer dereference
2022-11-04 10:39:25 -04:00
Deluan
8f02daf337
Reduce spurious error/warn messages, if loglevel != debug
2022-11-03 12:38:05 -04:00
Deluan
80b7311453
Add TrackNumber to "fake" generated filenames. Fixes #1912
2022-11-02 12:11:01 -04:00
Deluan
ca2cb26d8e
Add played field to Subsonic API responses. Fix #1971
...
This is not an "official" field in the specification, but I guess it does not hurt to expose this ;)
2022-11-02 11:20:51 -04:00
Deluan
aab4925dfc
Restore DefaultLanguage case-sensitiveness by reverting commit bfeb8ef6b3.
...
Language code should be case-sensitive. Fix #1946 . Supersedes #1947 .
2022-10-19 09:14:02 -04:00
Deluan
77dbafff0f
Add errorlint linter
2022-09-30 19:33:39 -04:00
Deluan
db67c1277e
Fix error comparisons
2022-09-30 18:54:25 -04:00
Deluan
7b0a8f47de
Add exportloopref linter
2022-09-30 18:23:47 -04:00
Deluan
bfeb8ef6b3
DefaultLanguage is now case-insensitive
2022-09-28 11:30:22 -04:00
Andy Klimczak
2f7a3c5eda
feat: Add listenbrainz base url configuration ( #1774 )
...
* feat: Add listenbrainz base url configuration
- ListenBrainz.BaseURL config value
* Don't need to store baseUrl
* Use `url.JoinPath` to concatenate url paths
* Replace url.JoinPath (Go 1.19 only) with custom function
Co-authored-by: Deluan <deluan@navidrome.org>
2022-09-27 21:06:28 -04:00
Deluan
cb3ba23fce
New config DefaultLanguage. Closes #1561
2022-09-27 19:31:09 -04:00
Manuel
72cde6dfde
fix:(middlewares.go) - Set Cookie SameSite mode to Strict - 1776 ( #1777 )
...
* None is deprecated and will fallback to Lax in the future.
* Using Strict is future proof and provides additional CSR protection
Signed-off-by: Manuel Kroeber <manuel.kroeber@gmail.com>
Signed-off-by: Manuel Kroeber <manuel.kroeber@gmail.com>
2022-09-27 17:58:47 -04:00
Kendall Garner
751e42c705
Fix creating server ( #1894 )
2022-09-27 16:53:40 -04:00
Deluan
2a3cd08f20
Fix GO-S2114 security issue
...
See https://deepsource.io/directory/analyzers/go/issues/GO-S2114
2022-09-26 22:33:42 -04:00
Deluan
4cf43ed735
Only compute version once
2022-09-14 21:09:39 -04:00
Deluan
16afd3a490
Remove //+build tags, as the code does not compile on older versions of Go anymore
2022-07-29 08:41:28 -04:00
Deluan
ebf7354df4
Add more info in search log message
2022-07-27 14:59:01 -04:00
Deluan
c0066ebd85
Add log warn when request is cancelled/interrupted
2022-07-27 14:27:18 -04:00
Deluan
cd5bce7b16
Speed up /search subsonic endpoints by parallelizing the queries
2022-07-27 13:56:04 -04:00
Deluan
d613b19306
Simplify Singleton usage by leveraging Go 1.18's generics
2022-07-27 12:15:05 -04:00
Deluan
31882abf6f
Upgrade Ginkgo to V2
2022-07-26 16:53:17 -04:00
Deluan
9c3b14c5c4
Return 501 for "not implemented". Fixes #1785
2022-07-26 13:18:08 -04:00
Deluan
8cd405d15e
Add IP to Subsonic API's invalid login log messages. Closes #1814
2022-07-25 23:54:49 -04:00
Deluan
7665478a52
Upgrade golangci-lint and fix new lint error
2022-07-24 19:30:23 -04:00
Deluan
028723f721
Fix loading overridden translations from ${DataFolder}/resources/i18n
2022-02-10 14:56:39 -05:00
Deluan
910091f1f1
Fix playCount casing
2021-12-14 09:33:34 -05:00
Deluan
20cdd38fc4
Better logging for agents configuration
2021-11-25 15:48:32 -05:00
Deluan
30d3f1eda0
Add userRating to Subsonic Album/Artist responses. Closes #1486
2021-11-23 21:50:57 -05:00
Brice Johnson
6d947f6f7e
Allowing 3rd party UIs to access x-total-count http header ( #1470 )
...
* Adding 'x-content-duratin' and 'x-total-count' to CORS exposed headers
* Moving cors setup to middlewares.go
* adding x-nd-authorization to exposed headers
2021-11-19 10:07:54 -05:00
Steve Richter
3bd6f82c80
Rename ListenBrainz config flag and enable by default ( #1443 )
2021-11-17 21:11:53 -05:00
Deluan
804fb716db
Show in the logs how long it took to startup
2021-11-04 13:49:05 -04:00
Deluan
9712a5b1c6
Fix error codes for required parameters in getAlbumList
2021-11-02 21:38:08 -04:00
Deluan
9422373be0
Optimize AlbumRepository.GetAll and add a GetAllWithoutGenres method specifically for Subsonic API, where multiple-genres are not required
2021-11-02 21:19:49 -04:00
Deluan
12818fb590
Make song/album/artist endpoints read-only
2021-11-02 14:44:50 -04:00
Deluan
133fed344f
Add owner_id to playlist
2021-10-31 15:08:06 -04:00
Steve Richter
a56d5bc850
Listenbrainz scrobbling ( #1424 )
...
* Refactor session_keys to its own package
* Adjust play_tracker
- Don't send external NowPlaying/Scrobble for tracks with unknown artist
- Continue to the next agent on error
* Implement ListenBrainz Agent and Auth Router
* Implement frontend for ListenBrainz linking
* Update listenBrainzRequest
- Don't marshal Player to json
- Rename Track to Title
* Return ErrRetryLater on ListenBrainz server errors
* Add tests for listenBrainzAgent
* Add tests for ListenBrainz Client
* Adjust ListenBrainzTokenDialog to handle errors better
* Refactor listenbrainz.formatListen and listenBrainzRequest structs
* Refactor agent auth_routers
* Refactor session_keys to agents package
* Add test for listenBrainzResponse
* Add tests for ListenBrainz auth_router
* Update ListenBrainzTokenDialog and auth_router
* Adjust player scrobble toggle
2021-10-30 12:17:42 -04:00
Deluan
fa3471f527
Simplify resources code, enabling any resource to be overridden (not just translations)
2021-10-28 10:25:25 -04:00
Deluan
9072412812
Fix translations on Windows
2021-10-28 09:41:37 -04:00
Deluan
f645c4769c
Fix double escaped lyrics and comments
2021-10-26 19:33:21 -04:00
Deluan
5dce499d6d
Fix/Optimized Playlist tracks deletion
2021-10-26 14:05:28 -04:00
Deluan
af00503b77
Optimize playlist updates
2021-10-26 10:45:14 -04:00
Deluan
2e2a647e67
Make SmartPlaylists read-only
2021-10-23 20:25:28 -04:00
Deluan
1a96e9fe65
Import smart playlists (extension .nsp)
2021-10-23 20:25:28 -04:00
Deluan
c72add516a
Add methods to Playlist model
...
Also, don't load genres for Playlists tracks (not necessary for now)
2021-10-23 20:25:28 -04:00
Deluan
d200933b68
Reduce number of queries for some playlists operations.
...
Also allow admins to update/delete playlists from other users in the Subsonic API. Closes #1366
2021-10-23 20:25:28 -04:00
Dheeraj Lalwani
5621551dd0
Adds Lyrics Support to Subsonic API ( #1379 )
...
* Add function 'isSynced' that identifies if lyrics are synced or not and add tests for the same
* implement 'getLyrics' which returns lyrics if they exist
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* remove timestamps frorom the the lyrics if they are synced, fix filters & clean up code
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* add snapshot tests for the 'Lyrics' response & add some clean up
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* add tests for 'GetLyrics' function
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
* update the snapshot test & the test for 'GetLyrics' function
Signed-off-by: Dheeraj Lalwani <lalwanidheeraj1234@gmail.com>
2021-10-19 16:33:06 -04:00
Deluan
b6e30cd01f
Return playlists sorted in getPlaylists Subsonic endpoint
2021-10-05 14:47:57 -04:00
Deluan
6c3e45de41
Add songs to playlists with drag and drop
2021-10-02 13:14:33 -04:00
Deluan Quintão
91e36a2c18
Check goimports in the pipeline ( #1381 )
...
* Check goimports in the pipeline
* Check goimports in the pipeline
* Check goimports in the pipeline
* go mod tidy
* wip
* wip
* Fix goimports and go:build tags
* Run golangci-lint before goimports
2021-10-01 15:32:24 -04:00
Deluan
c6868ff8a0
Don't show Artist Page for "Various Artists"
2021-09-27 11:52:23 -04:00
Dnouv
482c2dec0c
Artist Detail Page (first cut) ( #1287 )
...
* Configure fetching from API and route
* pretty
* Remove errors
* Remove errors
* Remove errors
* Complete page for Desktop view
* Fix error
* Add xs Artist page
* Remove unused import
* Add styles for theme
* Change route path
* Remove artId useEffect array
* Remove array
* Fix cover load err
* Add redirect on err
* Remove route
* What's in a name? consistency :)
* Fix err
* Fix UI changes
* Fetch album from resource
* Renaming done
* Review changes
* Some touch-up
* Small refactor, to make naming and structure more consistent with AlbumShow
* Make artist's album list similar to original implementation
* Reuse AlbumGridView, to avoid duplication
* Add feature flag to enable new Artist Page, default false
* Better biography styling. Small refactorings,
* Don't encode quotes and other symbols
* Moved AlbumShow to correct folder
Co-authored-by: Deluan <deluan@navidrome.org>
2021-09-26 15:32:40 -04:00
caiocotts
210dc6b12e
Add x-total-count to Subsonic API getAlbumList ( #1360 )
...
* Add x-total-count to Subsonic API getAlbumList
* Rename variable
Co-authored-by: Deluan <deluan@navidrome.org>
2021-09-21 20:40:39 -04:00
Deluan Quintão
79363d6c07
Move Playlists to the sidebar menu ( #1339 )
...
* Show playlists in sidebar menu
* Fix menu
* Refresh playlist submenu when adding new playlist
* Group shared playlists below user's playlists
* Fix text overflow in menu options
* Add button in playlist menu to go to Playlists list
* Add config option `DevSidebarPlaylists` to enable this feature (default false)
2021-09-11 13:11:15 -04:00
Deluan
c831dc4cdf
Use structs lib to map models to DB. Fix #1266
2021-08-01 12:04:45 -04:00
Deluan
8afa2cd833
Remove dependency of deprecated ioutil package
2021-07-20 20:12:28 -04:00
Deluan
774ad65155
Use fs.FS in MergeFS implementation
2021-07-20 19:54:44 -04:00
Deluan
7540881695
Small refactorings
2021-07-20 19:18:29 -04:00
Deluan
bc6b175414
Make getGenre Subsonic endpoint returns genres sorted by counts
2021-07-20 17:45:08 -04:00
Deluan
b6e9ec4db4
Optimize GetAll genres query
2021-07-20 17:45:08 -04:00
Deluan
20b7e5c49b
Add Genre filters to UI
2021-07-20 17:45:08 -04:00
Deluan
1d8607ef6a
Remove unnecessary repositories methods
2021-07-20 17:45:08 -04:00
Deluan
5e54925520
Add multiple genres to Albums
2021-07-20 17:45:08 -04:00
Deluan
39da741a80
Add multiple genres to MediaFile
2021-07-20 17:45:08 -04:00
Deluan
7cd3a8ba67
Add genre tables, read multiple-genres from tags
2021-07-20 17:45:08 -04:00
Deluan
8d56ec898e
Use AlbumArtist tag even for compilations, when it is specified.
...
If the tracks' AlbumArtists are different, then use "Various Artists"
2021-07-15 11:53:08 -04:00
Deluan
cfb113bd33
Disable Last.FM features based on LastFM.Enabled config option
2021-07-02 10:04:41 -04:00
Deluan
ed286c7103
Don't rely on goroutines to send keepalive events
2021-07-01 13:31:46 -04:00
Deluan
0c2ca2a5e4
Assign event ids in the main loop, to avoid out-of-order events
2021-07-01 10:58:41 -04:00
Deluan
5bd33455a1
Fix deadlock situation when events are sent too fast to the broker
2021-07-01 10:42:00 -04:00
Deluan
a73f885afb
Add option to disable album cover animation in the player. Closes #1185
2021-06-28 17:11:05 -04:00
Deluan
94533e585c
Add tests to /scrobble endpoint
2021-06-26 13:52:29 -04:00
Deluan
26bcf0b877
Enable Last.fm scrobbling by default (still requires user's authorization)
2021-06-25 23:09:09 -04:00
Deluan
056f0b944f
Refactor: Consolidate scrobbling logic in play_tracker
2021-06-23 11:01:58 -04:00
Deluan
a7509c9ff7
Send NowPlaying and Scrobbles to Last.fm
2021-06-23 11:01:58 -04:00
Deluan
d5461d0ae9
Refactor Agents to be singleton
...
Initial work for Last.fm scrobbler
2021-06-23 11:01:58 -04:00
Deluan
743e469795
Use singleton in other places as well
2021-06-21 18:59:26 -04:00
Deluan
1f997357a9
Expose Last.fm's ApiKey to UI
2021-06-21 18:14:01 -04:00
Deluan
502a719e96
Implement Last.FM Desktop Auth flow endpoints
2021-06-21 18:14:01 -04:00
Steve Richter
8ee5c1f245
Initial Last.fm UI implementation
2021-06-21 18:14:01 -04:00
Deluan
ffa76bba6a
Add flag to disable Scrobble config in the UI
2021-06-21 18:14:01 -04:00
Deluan
877f01bd38
Show notification if server is updated
2021-06-21 13:48:39 -04:00
Deluan
47bcf719f2
Fix cookie warning
2021-06-20 13:27:50 -04:00
Deluan
197d430d15
Fix lint error
2021-06-20 12:07:34 -04:00
Deluan
80b2c2f3cf
Try to register all playing music in GetNowPlaying
2021-06-20 11:25:15 -04:00
Deluan
97434c1789
Fix GetNowPlaying endpoint showing only the last play
2021-06-20 10:39:19 -04:00
Deluan
f8ee6db72a
New implementation of NowPlaying
2021-06-20 10:39:16 -04:00
Deluan
c09468e135
Option to allow auto-login during development.
2021-06-19 10:56:39 -04:00
Deluan
31ea033880
Fix subsonic token when authenticating by Header
2021-06-18 19:00:13 -04:00
Deluan Quintão
66b74c81f1
Encrypt passwords in DB ( #1187 )
...
* Encode/Encrypt passwords in DB
* Only decrypts passwords if it is necessary
* Add tests for encryption functions
2021-06-18 18:38:38 -04:00
Deluan
d42dfafad4
Add username to request.Context
2021-06-18 18:28:51 -04:00
Deluan
86271f0412
Optimize refresh events for scrobble endpoint
2021-06-16 10:23:34 -04:00
Deluan
fb7229a53e
Refech using getMany, reducing the number of API calls
2021-06-16 10:01:09 -04:00
Deluan
521d1ff2bf
Disable realip middleware when using the reverse proxy authentication feature
...
Should fix https://github.com/navidrome/navidrome/pull/1152#issuecomment-862306847
2021-06-16 10:01:09 -04:00
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
667701be02
Less warning messages when first running it.
...
They are actually `info` messages
2021-06-13 19:27:01 -04:00
Deluan
59b99d2206
No need to check for first time when authenticating. One less SQL call per request
2021-06-13 19:26:25 -04:00
Deluan
d54129ecd2
Rename app package to nativeapi
2021-06-13 19:15:41 -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
Igor Rzegocki
6bd4c0f6bf
Reverse proxy authentication support ( #1152 )
...
* feat(auth): reverse proxy authentication support - #176
* address PR remarks
* Fix redaction of UI appConfig
Co-authored-by: Deluan <deluan@navidrome.org>
2021-06-11 23:17:21 -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
7f85ecd515
Trigger a UI refresh when the scanner finds changes.
...
Closes #1025
2021-06-09 21:02:20 -04:00
Deluan
110e17b004
Make MockRepo names more consistent
2021-06-08 16:30:19 -04:00
Yash Jipkate
af210c8903
Add Native Sharing REST API ( #1150 )
...
* Initial draft - UNTESTED
* changes to Save() and Update()
* apply col filter and limit nanoid
* remove columns to not update
2021-06-08 15:44:30 -04:00
Yash Jipkate
7b05c49215
Add devEnableShare config option ( #1141 )
...
* add devEnableShare config option
* Toggle in config.js
2021-05-30 15:36:10 -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
b398053223
Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists)
2021-05-27 16:14:24 -04:00
Deluan
86d3a219a9
Show name of router in log
2021-05-24 11:55:39 -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
Dnouv
089d4abab1
Replace Feature Policy with Permissions Policy ( #1112 )
...
* Add Permissions Policy
* Remove Display capture option
2021-05-11 11:29:55 -04:00
Deluan
3e8d3e78c2
Fix Bookmarks Subsonic support ( #1099 )
...
JSON responses were incorrect
2021-05-07 09:47:13 -04:00
Deluan
7feda4bea4
Add EnableUserEditing, to control whether a regular user can change their own details (default true)
2021-05-02 17:11:12 -04:00
Deluan
2372f1d12b
Change visibility of helper function
2021-05-02 15:23:51 -04:00
Deluan
490a7fcf52
Add test to Login function
2021-05-02 15:19:21 -04:00
Deluan
b8138ebad6
Fix create first login
2021-05-02 14:13:17 -04:00
Deluan
e3fe8399c8
Fix DevAutoCreateAdminPassword
2021-05-01 18:40:02 -04:00
Deluan
a35de2bfd1
Allow regular users to change their info, including password.
...
Should fix #199
2021-04-28 22:35:25 -04:00
Deluan
6e73c23704
Keepalive must return an ID to be used with dataProvider.getOne
2021-04-26 23:19:30 -04:00
Deluan
abaecf2b88
Add Nginx header to not buffer SSE connection
...
This should allow the Activity Panel, that uses a Server-Side Events/ Event Source connection, to work with default Nginx reverse proxy configuration.
2021-04-20 10:16:20 -04:00
Deluan
f63a912341
Add config option to set default theme
2021-04-18 13:51:00 -04:00
Ayush Naidu
f7dfabaa40
Replaced literal 302 with http constant ( #1006 )
2021-04-08 14:17:14 -04:00
Neil Chauhan
48ae4f7479
Add 5-star rating system( #986 )
...
* Added Star Rating functionality for Songs
* Added Star Rating functionality for Artists
* Added Star Rating functionality for AlbumListView
* Added Star Rating functionality for AlbumDetails and improved typography for title
* Added functionality to turn on/off Star Rating functionality for Songs
* Added functionality to turn on/off Star Rating functionality for Artists
* Added functionality to turn on/off Star Rating functionality for Albums
* Added enableStarRating to server config
* Resolved the bugs and improved the ratings functionality.
* synced repo and removed duplicate key
* changed the default rating size to small, and changed the color to match the theme.
* Added translations for ratings, and Top Rated tab in side menu.
* Changed rating translation to topRated in albumLists, and added has_rating filter to topRated.
* Added empty stars icon to RatingField.
* Added sortable=false in AlbumSongs and added sortByOrder=DESC in all List components.
* Added translations for rating, for artists and albums, and removed the sortByOrder=DESC from SimpleLists.
2021-04-07 16:02:52 -04:00
Deluan
156a53c2ac
Add support for artist 5-star rating in Subsonic API
2021-04-06 23:06:31 -04:00
Deluan
9913b92905
Get lossless format list from server
2021-04-06 22:18:48 -04:00
harshavardhanpb
5128c049d7
Rename diodo_test.go to diode_test.go ( #956 )
...
Simple typo fix
2021-03-31 15:41:38 -04:00
Deluan
3b0defefec
Fix UI loading redirections. Should fix #906
2021-03-29 20:13:04 -04:00
Neil Chauhan
404253a881
Enable turn on/off Favorites/Loved feature. ( #917 )
...
* Added option to enable/disable favorites in Song
* Added option to enable/disable favorites in Artist
* Added option to enable/disable favorites in Albums and Favorites tab in sidebar
* Added option to enable/disable favorites in Player
* Set default value of enableFavourites as true
* Improved the functionality to enable/disable Favorites
* Add `EnableFavourites` config option
Co-authored-by: Deluan <deluan@navidrome.org>
2021-03-28 20:35:49 -04:00
Yash Jipkate
e575825c33
Add / to _ mapping for paths based on tags. ( #888 )
...
Closes #592
2021-03-25 21:48:28 -04:00
Josep Mª Domingo
515aa7108b
Move logger middleware to capture routing errors (ex: 405). ( #877 )
...
* Fix #836
* Remove requestLogger middleware from MountRouter
2021-03-24 23:17:36 -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
cfc9162729
Use a Waiter diode, to avoid constant CPU usage. Fixes #777
2021-02-13 12:08:32 -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
26f838167e
Add tests to diode
2021-02-04 15:42:08 -05:00
Deluan
c7af3b8256
Add test to Event
2021-02-04 12:43:46 -05:00
Deluan
7adacbac0d
Removed event.type from SSE, as it was causing the browser to hang.
...
Needs more investigation, but for now, back to the simple message format
2021-02-04 12:37:06 -05:00
Deluan
9668263235
Logging when triggering manual scan
2021-02-03 00:27:59 -05:00
Deluan
905c685696
Use diodes instead of channels in SSE broker
2021-02-02 18:55:08 -05:00
Deluan
1f3bc4d202
Use tools.go commands without installing
2021-02-01 16:16:30 -05:00
Deluan
861b406575
Use new simplified uuid.NewString() syntax
2021-02-01 01:22:31 -05:00
Deluan
9520c30c32
Fix "failed" Subsonic response. Fix #716
2021-01-07 08:24:13 -05:00
Deluan
cdae4347a6
Make ServerStart variable global
2020-12-21 11:39:38 -05:00
Deluan
8c063c4f0c
Removed unused variable
2020-12-21 10:01:37 -05:00
Deluan
14b060a42a
Only close connection if the write times out
2020-12-20 15:21:46 -05:00
Deluan
1d338417e9
Make done channel buffered
2020-12-13 11:58:00 -05:00
Deluan
d685aefab3
Don't ever stop the listen go routine
2020-12-12 23:04:50 -05:00
Deluan
e27d917bd4
Forgot to allocate done channel
2020-12-12 21:10:43 -05:00
Deluan
8b92796a5c
Disconnect the client if the output buffer fills up
2020-12-12 18:26:30 -05:00
Deluan
17833cd9d2
Make names more consistent
2020-12-12 13:46:36 -05:00
Deluan
e2969aa34c
Use non-blocking event sending
2020-12-12 13:35:49 -05:00
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