2020-01-23 15:44:08 -09:00
|
|
|
module github.com/navidrome/navidrome
|
2020-01-04 17:02:15 -09:00
|
|
|
|
2023-11-21 04:21:58 -09:00
|
|
|
go 1.21
|
|
|
|
|
|
2020-01-04 17:02:15 -09:00
|
|
|
require (
|
2023-03-20 10:15:01 -08:00
|
|
|
github.com/Masterminds/squirrel v1.5.4
|
2024-04-20 08:21:09 -08:00
|
|
|
github.com/RaveNoX/go-jsoncommentstrip v1.0.0
|
2022-12-05 18:45:02 -09:00
|
|
|
github.com/bradleyjkemp/cupaloy/v2 v2.8.0
|
2023-12-11 13:25:14 -09:00
|
|
|
github.com/deluan/rest v0.0.0-20211102003136-6260bc399cbf
|
2023-03-10 13:21:08 -09:00
|
|
|
github.com/deluan/sanitize v0.0.0-20230310221930-6e18967d9fc1
|
2023-12-17 09:57:15 -09:00
|
|
|
github.com/dexterlb/mpvipc v0.0.0-20230829142118-145d6eabdc37
|
2024-04-26 14:21:10 -08:00
|
|
|
github.com/dhowden/tag v0.0.0-20240417053706-3d75831295e8
|
2020-04-01 05:09:51 -08:00
|
|
|
github.com/disintegration/imaging v1.6.2
|
2021-10-03 18:50:25 -08:00
|
|
|
github.com/djherbis/atime v1.1.0
|
2022-07-26 11:16:37 -08:00
|
|
|
github.com/djherbis/fscache v0.10.2-0.20220222230828-2909c950912d
|
|
|
|
|
github.com/djherbis/stream v1.4.0
|
2023-11-01 12:41:07 -08:00
|
|
|
github.com/djherbis/times v1.6.0
|
2023-01-16 08:16:39 -09:00
|
|
|
github.com/dustin/go-humanize v1.0.1
|
2021-07-31 21:21:20 -08:00
|
|
|
github.com/fatih/structs v1.1.0
|
2024-02-16 16:51:30 -09:00
|
|
|
github.com/go-chi/chi/v5 v5.0.12
|
2022-07-25 06:08:48 -08:00
|
|
|
github.com/go-chi/cors v1.2.1
|
2024-03-03 17:30:28 -09:00
|
|
|
github.com/go-chi/httprate v0.9.0
|
2024-03-11 09:34:13 -08:00
|
|
|
github.com/go-chi/jwtauth/v5 v5.3.1
|
2024-02-16 16:46:41 -09:00
|
|
|
github.com/google/uuid v1.6.0
|
2024-02-16 16:45:11 -09:00
|
|
|
github.com/google/wire v0.6.0
|
2022-12-18 08:22:12 -09:00
|
|
|
github.com/hashicorp/go-multierror v1.1.1
|
2024-02-16 17:42:22 -09:00
|
|
|
github.com/jellydator/ttlcache/v2 v2.11.1
|
2022-11-22 06:03:06 -09:00
|
|
|
github.com/kr/pretty v0.3.1
|
2024-03-08 06:21:19 -09:00
|
|
|
github.com/lestrrat-go/jwx/v2 v2.0.21
|
2023-01-19 18:52:55 -09:00
|
|
|
github.com/matoous/go-nanoid/v2 v2.0.0
|
2024-02-16 16:50:45 -09:00
|
|
|
github.com/mattn/go-sqlite3 v1.14.22
|
2023-12-13 13:27:42 -09:00
|
|
|
github.com/mattn/go-zglob v0.0.4
|
2023-11-21 04:21:58 -09:00
|
|
|
github.com/microcosm-cc/bluemonday v1.0.26
|
2023-11-16 16:31:19 -09:00
|
|
|
github.com/mileusna/useragent v1.3.4
|
2024-05-01 16:39:58 -08:00
|
|
|
github.com/onsi/ginkgo/v2 v2.17.2
|
|
|
|
|
github.com/onsi/gomega v1.33.1
|
|
|
|
|
github.com/pelletier/go-toml/v2 v2.2.2
|
2023-12-09 09:52:17 -09:00
|
|
|
github.com/pocketbase/dbx v1.10.1
|
2024-04-26 14:07:00 -08:00
|
|
|
github.com/pressly/goose/v3 v3.20.0
|
2024-03-03 17:30:28 -09:00
|
|
|
github.com/prometheus/client_golang v1.19.0
|
2021-05-06 14:46:12 -08:00
|
|
|
github.com/robfig/cron/v3 v3.0.1
|
2023-11-16 16:31:19 -09:00
|
|
|
github.com/sirupsen/logrus v1.9.3
|
2023-11-06 08:56:04 -09:00
|
|
|
github.com/spf13/cobra v1.8.0
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/spf13/viper v1.18.2
|
2024-03-03 17:30:28 -09:00
|
|
|
github.com/stretchr/testify v1.9.0
|
2024-01-20 14:31:50 -09:00
|
|
|
github.com/unrolled/secure v1.14.0
|
2024-04-26 14:21:10 -08:00
|
|
|
github.com/xrash/smetrics v0.0.0-20240312152122-5f08fbb34913
|
|
|
|
|
golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f
|
2024-01-20 14:31:18 -09:00
|
|
|
golang.org/x/image v0.15.0
|
2024-04-08 09:54:17 -08:00
|
|
|
golang.org/x/sync v0.7.0
|
2023-11-16 16:16:25 -09:00
|
|
|
golang.org/x/text v0.14.0
|
2022-11-29 10:40:44 -09:00
|
|
|
gopkg.in/yaml.v3 v3.0.1
|
2020-01-04 17:02:15 -09:00
|
|
|
)
|
2020-05-24 10:23:53 -08:00
|
|
|
|
2022-03-26 18:44:47 -08:00
|
|
|
require (
|
|
|
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
|
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
2023-05-13 10:34:11 -08:00
|
|
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
2023-09-10 14:06:51 -08:00
|
|
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
2024-04-08 15:04:16 -08:00
|
|
|
github.com/go-logr/logr v1.4.1 // indirect
|
2024-05-01 16:39:58 -08:00
|
|
|
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
|
2023-03-27 10:47:32 -08:00
|
|
|
github.com/goccy/go-json v0.10.2 // indirect
|
2023-10-30 09:29:42 -08:00
|
|
|
github.com/google/go-cmp v0.6.0 // indirect
|
2024-05-01 16:39:58 -08:00
|
|
|
github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
|
2022-03-26 18:44:47 -08: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 07:04:18 -08:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
2022-03-26 18:44:47 -08: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 11:49:47 -08:00
|
|
|
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
|
2022-07-25 06:08:06 -08:00
|
|
|
github.com/lestrrat-go/httpcc v1.0.1 // indirect
|
2024-03-08 06:21:19 -09:00
|
|
|
github.com/lestrrat-go/httprc v1.0.5 // indirect
|
2022-12-02 13:58:38 -09:00
|
|
|
github.com/lestrrat-go/iter v1.0.2 // indirect
|
2023-03-27 10:47:32 -08:00
|
|
|
github.com/lestrrat-go/option v1.0.1 // indirect
|
2023-01-23 08:18:51 -09:00
|
|
|
github.com/magiconair/properties v1.8.7 // indirect
|
2024-03-03 17:27:33 -09:00
|
|
|
github.com/mfridman/interpolate v0.0.2 // indirect
|
2022-07-24 15:30:23 -08:00
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
2024-01-20 14:37:01 -09:00
|
|
|
github.com/prometheus/client_model v0.5.0 // indirect
|
2024-03-03 17:30:28 -09:00
|
|
|
github.com/prometheus/common v0.48.0 // indirect
|
2023-11-27 10:46:44 -09:00
|
|
|
github.com/prometheus/procfs v0.12.0 // indirect
|
2023-10-09 09:06:49 -08:00
|
|
|
github.com/rogpeppe/go-internal v1.10.0 // indirect
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
|
|
|
|
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
2023-09-10 14:06:51 -08:00
|
|
|
github.com/segmentio/asm v1.2.0 // indirect
|
2024-03-03 17:27:33 -09:00
|
|
|
github.com/sethvargo/go-retry v0.2.4 // indirect
|
2024-04-26 18:11:43 -08: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-26 18:44:47 -08:00
|
|
|
github.com/spf13/pflag v1.0.5 // indirect
|
2024-03-03 17:30:28 -09:00
|
|
|
github.com/stretchr/objx v0.5.2 // indirect
|
2024-04-26 18:11:43 -08:00
|
|
|
github.com/subosito/gotenv v1.6.0 // indirect
|
2024-03-03 17:27:33 -09:00
|
|
|
go.uber.org/multierr v1.11.0 // indirect
|
2024-04-26 14:21:10 -08:00
|
|
|
golang.org/x/crypto v0.22.0 // indirect
|
|
|
|
|
golang.org/x/net v0.24.0 // indirect
|
|
|
|
|
golang.org/x/sys v0.19.0 // indirect
|
|
|
|
|
golang.org/x/tools v0.20.0 // indirect
|
2024-03-13 15:40:39 -08:00
|
|
|
google.golang.org/protobuf v1.33.0 // indirect
|
2022-09-28 09:25:08 -08: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 07:25:22 -08:00
|
|
|
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
|
2022-03-26 18:44:47 -08:00
|
|
|
)
|