2020-01-24 01:44:08 +01:00
|
|
|
module github.com/navidrome/navidrome
|
2020-01-05 03:02:15 +01:00
|
|
|
|
2024-05-13 02:00:09 +02:00
|
|
|
go 1.22
|
|
|
|
|
|
|
|
toolchain go1.22.3
|
2023-11-21 14:21:58 +01:00
|
|
|
|
2020-01-05 03:02:15 +01:00
|
|
|
require (
|
2023-03-20 19:15:01 +01:00
|
|
|
github.com/Masterminds/squirrel v1.5.4
|
2024-04-20 18:21:09 +02:00
|
|
|
github.com/RaveNoX/go-jsoncommentstrip v1.0.0
|
2022-12-06 04:45:02 +01:00
|
|
|
github.com/bradleyjkemp/cupaloy/v2 v2.8.0
|
2023-12-11 23:25:14 +01:00
|
|
|
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf
|
2023-03-10 23:21:08 +01:00
|
|
|
github.com/deluan/sanitize v0.0.0-20230310221930-6e18967d9fc1
|
2023-12-17 19:57:15 +01:00
|
|
|
github.com/dexterlb/mpvipc v0.0.0-20230829142118-145d6eabdc37
|
2024-04-27 00:21:10 +02:00
|
|
|
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
|
2020-04-01 15:09:51 +02:00
|
|
|
github.com/disintegration/imaging v1.6.2
|
2021-10-04 04:50:25 +02:00
|
|
|
github.com/djherbis/atime v1.1.0
|
2022-07-26 21:16:37 +02:00
|
|
|
github.com/djherbis/fscache v0.10.2-0.20220222230828-2909c950912d
|
|
|
|
github.com/djherbis/stream v1.4.0
|
2023-11-01 21:41:07 +01:00
|
|
|
github.com/djherbis/times v1.6.0
|
2023-01-16 18:16:39 +01:00
|
|
|
github.com/dustin/go-humanize v1.0.1
|
2021-08-01 07:21:20 +02:00
|
|
|
github.com/fatih/structs v1.1.0
|
2024-02-17 02:51:30 +01:00
|
|
|
github.com/go-chi/chi/v5 v5.0.12
|
2022-07-25 16:08:48 +02:00
|
|
|
github.com/go-chi/cors v1.2.1
|
2024-03-04 03:30:28 +01:00
|
|
|
github.com/go-chi/httprate v0.9.0
|
2024-03-11 18:34:13 +01:00
|
|
|
github.com/go-chi/jwtauth/v5 v5.3.1
|
2024-02-17 02:46:41 +01:00
|
|
|
github.com/google/uuid v1.6.0
|
2024-02-17 02:45:11 +01:00
|
|
|
github.com/google/wire v0.6.0
|
2022-12-18 18:22:12 +01:00
|
|
|
github.com/hashicorp/go-multierror v1.1.1
|
2024-02-17 03:42:22 +01:00
|
|
|
github.com/jellydator/ttlcache/v2 v2.11.1
|
2022-11-22 16:03:06 +01:00
|
|
|
github.com/kr/pretty v0.3.1
|
2024-03-08 16:21:19 +01:00
|
|
|
github.com/lestrrat-go/jwx/v2 v2.0.21
|
2023-01-20 04:52:55 +01:00
|
|
|
github.com/matoous/go-nanoid/v2 v2.0.0
|
2024-02-17 02:50:45 +01:00
|
|
|
github.com/mattn/go-sqlite3 v1.14.22
|
2023-12-13 23:27:42 +01:00
|
|
|
github.com/mattn/go-zglob v0.0.4
|
2023-11-21 14:21:58 +01:00
|
|
|
github.com/microcosm-cc/bluemonday v1.0.26
|
2023-11-17 02:31:19 +01:00
|
|
|
github.com/mileusna/useragent v1.3.4
|
2024-05-08 01:25:40 +02:00
|
|
|
github.com/onsi/ginkgo/v2 v2.17.3
|
2024-05-02 02:39:58 +02:00
|
|
|
github.com/onsi/gomega v1.33.1
|
|
|
|
github.com/pelletier/go-toml/v2 v2.2.2
|
2023-12-09 19:52:17 +01:00
|
|
|
github.com/pocketbase/dbx v1.10.1
|
2024-04-27 00:07:00 +02:00
|
|
|
github.com/pressly/goose/v3 v3.20.0
|
2024-03-04 03:30:28 +01:00
|
|
|
github.com/prometheus/client_golang v1.19.0
|
2021-05-07 00:46:12 +02:00
|
|
|
github.com/robfig/cron/v3 v3.0.1
|
2023-11-17 02:31:19 +01:00
|
|
|
github.com/sirupsen/logrus v1.9.3
|
2023-11-06 18:56:04 +01:00
|
|
|
github.com/spf13/cobra v1.8.0
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/spf13/viper v1.18.2
|
2024-03-04 03:30:28 +01:00
|
|
|
github.com/stretchr/testify v1.9.0
|
2024-01-21 00:31:50 +01:00
|
|
|
github.com/unrolled/secure v1.14.0
|
2024-04-27 00:21:10 +02:00
|
|
|
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913
|
2024-05-08 01:25:40 +02:00
|
|
|
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842
|
|
|
|
golang.org/x/image v0.16.0
|
2024-04-08 19:54:17 +02:00
|
|
|
golang.org/x/sync v0.7.0
|
2024-05-08 01:25:40 +02:00
|
|
|
golang.org/x/text v0.15.0
|
2022-11-29 20:40:44 +01:00
|
|
|
gopkg.in/yaml.v3 v3.0.1
|
2020-01-05 03:02:15 +01:00
|
|
|
)
|
2020-05-24 20:23:53 +02:00
|
|
|
|
2022-03-27 04:44:47 +02:00
|
|
|
require (
|
|
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
2023-05-13 20:34:11 +02:00
|
|
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
2023-09-11 00:06:51 +02:00
|
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
2024-04-09 01:04:16 +02:00
|
|
|
github.com/go-logr/logr v1.4.1 // indirect
|
2024-05-02 02:39:58 +02:00
|
|
|
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
|
2023-03-27 20:47:32 +02:00
|
|
|
github.com/goccy/go-json v0.10.2 // indirect
|
2023-10-30 18:29:42 +01:00
|
|
|
github.com/google/go-cmp v0.6.0 // indirect
|
2024-05-02 02:39:58 +02:00
|
|
|
github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
|
2022-03-27 04:44:47 +02:00
|
|
|
github.com/gorilla/css v1.0.0 // indirect
|
|
|
|
github.com/hashicorp/errwrap v1.0.0 // indirect
|
|
|
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
2023-04-04 17:04:18 +02:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
2022-03-27 04:44:47 +02:00
|
|
|
github.com/kr/text v0.2.0 // indirect
|
|
|
|
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
|
|
|
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
|
2023-10-31 20:49:47 +01:00
|
|
|
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
|
2022-07-25 16:08:06 +02:00
|
|
|
github.com/lestrrat-go/httpcc v1.0.1 // indirect
|
2024-03-08 16:21:19 +01:00
|
|
|
github.com/lestrrat-go/httprc v1.0.5 // indirect
|
2022-12-02 23:58:38 +01:00
|
|
|
github.com/lestrrat-go/iter v1.0.2 // indirect
|
2023-03-27 20:47:32 +02:00
|
|
|
github.com/lestrrat-go/option v1.0.1 // indirect
|
2023-01-23 18:18:51 +01:00
|
|
|
github.com/magiconair/properties v1.8.7 // indirect
|
2024-03-04 03:27:33 +01:00
|
|
|
github.com/mfridman/interpolate v0.0.2 // indirect
|
2022-07-25 01:30:23 +02:00
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
2024-01-21 00:37:01 +01:00
|
|
|
github.com/prometheus/client_model v0.5.0 // indirect
|
2024-03-04 03:30:28 +01:00
|
|
|
github.com/prometheus/common v0.48.0 // indirect
|
2023-11-27 20:46:44 +01:00
|
|
|
github.com/prometheus/procfs v0.12.0 // indirect
|
2023-10-09 19:06:49 +02:00
|
|
|
github.com/rogpeppe/go-internal v1.10.0 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
|
|
|
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
2023-09-11 00:06:51 +02:00
|
|
|
github.com/segmentio/asm v1.2.0 // indirect
|
2024-03-04 03:27:33 +01:00
|
|
|
github.com/sethvargo/go-retry v0.2.4 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/sourcegraph/conc v0.3.0 // indirect
|
|
|
|
github.com/spf13/afero v1.11.0 // indirect
|
|
|
|
github.com/spf13/cast v1.6.0 // indirect
|
2022-03-27 04:44:47 +02:00
|
|
|
github.com/spf13/pflag v1.0.5 // indirect
|
2024-03-04 03:30:28 +01:00
|
|
|
github.com/stretchr/objx v0.5.2 // indirect
|
2024-04-27 04:11:43 +02:00
|
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
2024-03-04 03:27:33 +01:00
|
|
|
go.uber.org/multierr v1.11.0 // indirect
|
2024-05-08 01:25:40 +02:00
|
|
|
golang.org/x/crypto v0.23.0 // indirect
|
|
|
|
golang.org/x/net v0.25.0 // indirect
|
|
|
|
golang.org/x/sys v0.20.0 // indirect
|
|
|
|
golang.org/x/tools v0.21.0 // indirect
|
2024-03-14 00:40:39 +01:00
|
|
|
google.golang.org/protobuf v1.33.0 // indirect
|
2022-09-28 19:25:08 +02:00
|
|
|
gopkg.in/ini.v1 v1.67.0 // indirect
|
Jukebox mode (#2289)
* Adding cache directory to ignore-list
* Adding jukebox-related config options
* Adding DevEnableJukebox config option pls. dummy server
* Adding types and routers
* Now without panic
* First draft on parsing the action
* Some cleanups
* Adding playback server
* Verify audio device configuration
* Adding debug-build target to have full symbol support
* Adding beep sound library pls some example code. Not working yet
* Play a fixed mp3 on any interface access for testing purposes
* Put action code into separate file, adding stringer, more debug output, prepare structs, validation
* Put action parameter parser code where it belongs
* Have a single Action transporting all information
* User fmt.Errorf for error-generation
* Adding wide playback interface
* Use action map for parsing, stringer instead switch stmt.
* Use but only one switch case and direct dispatch, refactoring
* Add error handling and pushing to client
* send decent errormessage, no internal server error
* Adding playback devices slice and load it from config
* Combine config-verification and structure init
* Return user-specific device
* Separate playback server from device
* Use dataStore to retrieve mediafile by id
* WIP: Playlist and start/stop handling. Doing start/stop the hard way as of now
* WIP: set, start and stop work on one single song. More to come
* Dont need to wait for the end
* Merge jukebox_action.go into jukebox.go
* Remove getParameterAsInt64(). Use existing requiredParamInt() instead
* Dont need to call newFailure() explicitly
* Remove int64, use int instead.
* Add and set action now accept multiple ids
* Kickout copy of childFromMediaFile(). It is not needed here.
* Refactoring devices and playbackServer
* Turn (internal) playback.DeviceStatus into subsonic JukeboxStatus when rendering output. Indexes int64 -> int
* Now we have a position and playing status
* Switching gain to float32, xs:float is defined as 32 bit. Fixing nasty copy/pointer bug
* Now with volume control
* Start working the queue
* Remove user from device interface
* Rename function GetDevice -> GetDeviceForUser to make intention clearer
* Have a nice stringer for the queue
* User Prepared boolean for now to allow pause/unpause
* Skipping works, but without offsets
* Make ChildFromMediaFile public to be used in jukebox get() implementation
* Return position in seconds and implement offset-skip in seconds
* Default offset to 0
* Adding a simple setGain implementation
* Prepare for transcoding AAC
* WIP: transcode to WAV to use beeps wav decoder. Not done yet.
* WIP: out of sheer desparation: convert to MP3 (which works) rather than WAV to troubleshoot issue.
* Use FLAC as intermediate format to play Apple AAC
* A bit of cleanup
* Catching the end-of-stream event for further reactions
* Have a trackSwitching goroutine waiting on channel when track ends
* Move decoder code into own file. Restructure code a bit
* Now with going on to play the next song in the playlist
* Adding shuffle feature
* Implementing remove action
* Cleanup code
* Remove templates for ffmpeg mp3 generation. Not needed anymore.
* Adding some documentation
* Check whether offset into track is in range. Fixing potential remove track bug. Documentation
* Make golangci-lint happy: handling return values
* Adding test suite and example dummy for playback package
* Adding some basic queue tests
* Only use Jukebox.Enabled config option
* Adding stream closing handling
* Pass context.Context to all PlaybackDevice methods
* Remove unneeded function
* Correct spelling
* Reduce visibility of ChildFromMediaFile
* Decomplicate action-parsing
* Adding simple tempfile-based AAC->FLAC transcoding. No parallel reading and writing yet.
* Try to optimize pipe-writing, tempfile-handling and reading. Not done yet.
* Do a synchronous copy of the tempfile. Racecondition detected
* More debugging statements and fixing the play/pause bug. More work needed
* Start the trackSwitcher() with each device once. Return JSON position even if its 0. More debug-output
* Moving all track-handling code into own module
* Fix typo. Do not pass ctx around when not applicable
* WIP: More refactoring, debugging output
* Fix nil pointer
* Repairing MP3 playback by pinning indirect dependencies: hajimehoshi/go-mp3 and hajimehoshi/oto
* Do not forget to cleanup after a skip action
* Make resync with master easy
* Adding missing mocks
* Adding missing error-handling found by linter
* Updating github.com/hajimehoshi/oto
* Removing duplicate function
* Move BEEP-related code into own package
* Juggle beep-related code around as preparation for interface access
* More refactoring for interface separation
* Gather CloseDevice() behind Track interface.
* Adding skeleton, draft audio-interface using mpv.io
* Adding majority of interface commands using messages to mpv socket.
* Adding end-of-stream handling
* MPV: start/stop are working
* postition is given in float in mpv
* Unify Close() and CloseDevice(). Using temp filename for controlling socket
* Wait until control-socket shows up. Cleanup socket in Close()
* Use canceable command. Rename to Executor
* Skipping tracks works now
* Now with actually setting the position
* Fix regain
* Add missing error-handling found by linter
* Adding retry mode on time-pos property getter
* Remove unneeded code on queue
* Putting build-tag beep onto beep files
* Remove deprecated call to rand.Seed()
"As of Go 1.20 there is no reason to call Seed with a random value. Programs that call Seed with a known value to get a specific sequence of results should use New(NewSource(seed)) to obtain a local random generator."
* Using int32 to conform to Subsonic API spec
* Fix merge error
* Minor style changes
* Get username from context
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2023-09-10 17:25:22 +02:00
|
|
|
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
|
2022-03-27 04:44:47 +02:00
|
|
|
)
|