Deluan
d6dd0aaae7
Close SSE connection on write error
2023-04-02 18:40:58 -04:00
Deluan
e6bfa2bb0b
Convert our usage of go-diodes into a simplified, generic version
2023-04-01 21:53:45 -04:00
Deluan
1c7fb74a1d
Fix writeEvents race condition.
...
This required removing the compress middleware from the /events route.
2023-04-01 20:54:15 -04:00
Deluan
83ae2ba3e6
Fix race condition
2023-04-01 18:40:37 -04:00
Deluan
e89cdf6199
Fix flaky tests
2023-03-30 09:25:18 -04:00
Deluan
cf804a52ef
Add support for listening on Unix socket.
...
For that to work, specify the config option `Address` with `unix:/path/to/socket/file`.
Closes #1477
2023-03-29 16:05:59 -04:00
Deluan
628fd69d3d
Fix race condition
2023-03-29 15:17:34 -04:00
Deluan
1d00d1e986
Fix writeEvent function.
...
It would not send anything if the `ResponseWriter` was not a `http.Flusher`, and it was leaking channels with `time.After`
2023-03-29 15:04:40 -04:00
Deluan
e3079d81ea
More tests
2023-03-27 20:36:23 -04:00
Deluan
b998c05ca0
Some refactorings
2023-03-26 21:28:37 -04:00
Deluan
05d381c26f
Add more middleware tests
2023-03-26 21:28:36 -04:00
Deluan
65eeb5ec1a
Add tests for serverAddressMiddleware
2023-03-26 13:29:57 -04:00
Deluan
673880d661
Add option to load TLS cert/key, and use HTTPS
2023-03-17 16:32:13 -04:00
Deluan
377e7ebd52
Disable share downloading when EnableDownloads is false.
...
Fixes https://github.com/navidrome/navidrome/pull/2246#issuecomment-1472341635
2023-03-16 13:11:26 -04:00
Deluan Quintão
f7d4fcdcc1
Convert all Subsonic API ints to int32 as per specification ( #2252 )
...
* Fix Genre
* Fix ArtistID3
* Fix AlbumID3
* Fix Child
* Fix NowPlayingEntry
* Fix Playlist
* Fix Share
* Fix User
* Fix Artist
* Fix Directory
* Fix Error
2023-03-14 09:48:52 -04:00
Deluan
b520d8827a
Add download button in the SharePlayer
2023-03-10 23:33:29 -05:00
Deluan
a7d3e6e1f1
Add option to allow share to be downloaded
2023-03-10 23:33:29 -05:00
Deluan
a22eef39f7
Add share download endpoint
2023-03-10 23:33:29 -05:00
Deluan
10108c63c9
Allow BaseURL to contain full server url, including scheme and host. Fix #2183
2023-02-15 21:13:38 -05:00
Deluan
aac6e2cb07
Add path to cookies. Fix #1580
2023-02-15 20:23:32 -05:00
Deluan
727632b616
Refactor play tracking
2023-02-11 18:52:28 -05:00
Deluan
b0e58cb885
Use Navidrome's own public images endpoint for getAlbumInfo's imageURLs
2023-02-08 20:03:31 -05:00
Deluan
806713719f
Add lastUpdated to coverArt ids. Helps with invalidating art cache client-side.
2023-02-08 20:03:31 -05:00
Deluan
759ff844e2
Make ffmpeg path configurable, also finds it automatically in current folder. Fixes #1932
2023-02-07 13:46:09 -05:00
Deluan
b8c5e49dd3
Close stream when downloading files, fix fd leak
2023-02-07 09:58:50 -05:00
Deluan
dad4949a6d
Refactor Subsonic search to make it a bit more readable
2023-02-05 00:58:34 -05:00
Deluan
eba70ab826
Change throttling log messages
2023-02-04 12:37:47 -05:00
Deluan
d9d0a97674
Better log message
2023-02-03 11:35:10 -05:00
Deluan
ad2ad514b3
Add dev option to increase external metadata cache expiration. More logs
2023-02-02 16:55:12 -05:00
Deluan
588ee94f7c
Discard request for image canceled by the client before any further processing
2023-02-02 14:55:07 -05:00
Deluan
bcab3cc0f9
Add throttling to /share/img endpoint.
...
See: https://github.com/navidrome/navidrome/issues/2130#issuecomment-1414152343
2023-02-02 13:59:04 -05:00
Deluan
0ce750d469
Update golangci-lint and fix lint errors
2023-02-02 11:10:28 -05:00
Deluan
d8e794317f
Return 404 when artwork is not available in /share/img endpoint
2023-02-01 10:34:02 -05:00
Deluan
128b626ec9
Add option to change max playlists shown in UI's sidebar, MaxSidebarPlaylists. Fix #2077
2023-02-01 10:25:25 -05:00
Deluan
68e6115789
Rename DevEnableShare to EnableSharing
2023-01-29 20:33:10 -05:00
Deluan
e2ea5eba8c
Disable creation of shares when feature is disabled.
...
Fix https://github.com/navidrome/navidrome/pull/2106#issuecomment-1404731388
2023-01-26 10:12:52 -05:00
Deluan
1950c07b1d
Disable external links when EnableExternalServices is false. Fix #2022
2023-01-25 10:28:03 -05:00
selfhoster1312
1e24809ed6
Create accounts automatically when authenticating from HTTP header ( #2087 )
...
* Create accounts automatically when authenticating from HTTP header
* Disable password check when header auth is enabled
* Formatting
* Password change is valid when no password (old or new) is provided
* Test suite runs with header auth disabled (mock config)
Prevents nil pointer access (panic) while testing password validating logic
* Use a constant prefix for autogenerated passwords (header auth case)
* Add tests
* Add context to log messages
Co-authored-by: Deluan <deluan@navidrome.org>
2023-01-24 20:18:10 -05:00
Deluan
39dc9c4310
Disable Subsonic Share endpoints if feature is disabled
2023-01-24 18:36:47 -05:00
Deluan
69b36c75a5
Add meta tags to show cover and share description in social platforms
2023-01-24 18:36:47 -05:00
Deluan
cab43c89e6
Mark Share.LastVisited optional in Subsonic API
2023-01-24 18:36:47 -05:00
Deluan
c770229154
Add Share capability to Subsonic user's info
2023-01-24 18:36:47 -05:00
Deluan
ef4765c768
Fix getShares sort order
2023-01-24 18:36:47 -05:00
Deluan
6c05fcb699
Create contents label for group of shared mediafiles
2023-01-24 18:36:47 -05:00
Deluan
e34f26588e
Fix empty entry collection in Shares
2023-01-24 18:36:47 -05:00
Deluan
d5df102f9f
Implement updateShare and deleteShare Subsonic endpoints
2023-01-24 18:36:46 -05:00
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