Skip to content

Commit

Permalink
bump libary versions
Browse files Browse the repository at this point in the history
topi314 committed Nov 23, 2023
1 parent 60ade52 commit b15549a
Showing 10 changed files with 164 additions and 148 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM golang:1.20-alpine AS build
FROM --platform=$BUILDPLATFORM golang:1.21-alpine AS build

WORKDIR /build

2 changes: 1 addition & 1 deletion commands/latest.go
Original file line number Diff line number Diff line change
@@ -42,7 +42,7 @@ func (c *Commands) LatestAutocomplete(e *handler.AutocompleteEvent) error {
})
}

return e.Result(choices)
return e.AutocompleteResult(choices)
}

func (c *Commands) Latest(e *handler.CommandEvent) error {
10 changes: 4 additions & 6 deletions commands/play.go
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@ import (
"github.com/disgoorg/json"
"github.com/disgoorg/lavasearch-plugin"
"github.com/disgoorg/lavasrc-plugin"
"github.com/disgoorg/log"
"github.com/lavalink-devs/lavalink-bot/internal/res"
"go.deanishe.net/fuzzy"
)
@@ -27,7 +26,7 @@ var (
func (c *Commands) PlayAutocomplete(e *handler.AutocompleteEvent) error {
query := e.Data.String("query")
if query == "" {
return e.Result(nil)
return e.AutocompleteResult(nil)
}

source := lavalink.SearchType(e.Data.String("source"))
@@ -46,9 +45,9 @@ func (c *Commands) PlayAutocomplete(e *handler.AutocompleteEvent) error {
result, err := lavasearch.LoadSearch(c.Lavalink.BestNode().Rest(), query, types)
if err != nil {
if errors.Is(err, lavasearch.ErrEmptySearchResult) {
return e.Result(nil)
return e.AutocompleteResult(nil)
}
return e.Result([]discord.AutocompleteChoice{
return e.AutocompleteResult([]discord.AutocompleteChoice{
discord.AutocompleteChoiceString{
Name: res.Trim("Failed to load search results: "+err.Error(), 100),
Value: "error",
@@ -61,7 +60,6 @@ func (c *Commands) PlayAutocomplete(e *handler.AutocompleteEvent) error {
if len(choices) >= 5 {
break
}
log.Info(album.PluginInfo)

var albumInfo lavasrc.PlaylistInfo
_ = album.PluginInfo.Unmarshal(&albumInfo)
@@ -122,7 +120,7 @@ func (c *Commands) PlayAutocomplete(e *handler.AutocompleteEvent) error {

fuzzy.Sort(Choices(choices), e.Data.String("query"))

return e.Result(choices)
return e.AutocompleteResult(choices)
}

var (
31 changes: 16 additions & 15 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,36 +1,37 @@
module github.com/lavalink-devs/lavalink-bot

go 1.20
go 1.21

require (
github.com/disgoorg/disgo v0.16.8
github.com/disgoorg/disgolink/v3 v3.0.0-20230810103102-c572e085fba1
github.com/disgoorg/disgo v0.17.0
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a
github.com/disgoorg/json v1.1.0
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da
github.com/disgoorg/log v1.2.1
github.com/disgoorg/snowflake/v2 v2.0.1
github.com/disgoorg/sponsorblock-plugin v0.0.0-20230821004903-f71718b0f2ea
github.com/disgoorg/sponsorblock-plugin v0.0.0-20231123224051-77fcea11cfe1
github.com/google/go-github/v52 v52.0.0
github.com/lithammer/fuzzysearch v1.1.8
github.com/mattn/go-colorable v0.1.13
github.com/topi314/tint v0.0.0-20231106205902-77268b701ca6
go.deanishe.net/fuzzy v1.0.0
gopkg.in/yaml.v3 v3.0.1
)

require (
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect
github.com/cloudflare/circl v1.3.6 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/gorilla/websocket v1.5.1 // indirect
github.com/magefile/mage v1.15.0 // indirect
github.com/mattn/go-isatty v0.0.16 // indirect
github.com/sasha-s/go-csync v0.0.0-20210812194225-61421b77c44b // indirect
golang.org/x/crypto v0.12.0 // indirect
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect
golang.org/x/net v0.14.0 // indirect
golang.org/x/oauth2 v0.11.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/text v0.12.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
golang.org/x/crypto v0.15.0 // indirect
golang.org/x/net v0.18.0 // indirect
golang.org/x/oauth2 v0.14.0 // indirect
golang.org/x/sys v0.14.0 // indirect
golang.org/x/text v0.14.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/protobuf v1.31.0 // indirect
)
68 changes: 37 additions & 31 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,75 +1,80 @@
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs=
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE=
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.6 h1:/xbKIqSHbZXHwkhbrhrt2YOHIwYJlXH94E3tI/gDlUg=
github.com/cloudflare/circl v1.3.6/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/disgoorg/disgo v0.16.8 h1:tvUeX+3Iu8U6koDc8RAgcQadRciWJwsI95Y7edHqq2g=
github.com/disgoorg/disgo v0.16.8/go.mod h1:5fsaUpfu6Yv0p+PfmsAeQkV395KQskVu/d1bdq8vsNI=
github.com/disgoorg/disgolink/v3 v3.0.0-20230810103102-c572e085fba1 h1:vjQ80/lj2dAiRxE4Y+F1xOmDKs6Xgdt6Ua73IxTykxY=
github.com/disgoorg/disgolink/v3 v3.0.0-20230810103102-c572e085fba1/go.mod h1:iaNDNaZTwgceZ9yFD/qwYN7eBl++riQte2VFascmPTY=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disgoorg/disgo v0.17.0 h1:/LcgXgPDhzHt3GkQ4cpjmIJBim1/VYfS31VhGYif3Ms=
github.com/disgoorg/disgo v0.17.0/go.mod h1:AE2J/8oLR2PtYfqcARsk1mgBxQ5z3Z1OD6Lc2SA0gak=
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a h1:Q4rsO+hwjRYELK0X43fUft02BJBN3nleVImxNxzUnjM=
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a/go.mod h1:YIwjIteZcjfI7HYZWH241iRI7RjTLoN51HLDOUHVSFI=
github.com/disgoorg/json v1.1.0 h1:7xigHvomlVA9PQw9bMGO02PHGJJPqvX5AnwlYg/Tnys=
github.com/disgoorg/json v1.1.0/go.mod h1:BHDwdde0rpQFDVsRLKhma6Y7fTbQKub/zdGO5O9NqqA=
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07 h1:hf3vNsBK1gp1TEqonO3YYG8NxJswbLe6BusUalMnYfg=
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07/go.mod h1:qyl69XAg8+hMv+Y76pBUm2bQQELwosh6vDd/2AHPln4=
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da h1:Y/E2xHSgP3cFmepxaBNJlQWT0RUGm06kQ1iw5HUKH2s=
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da/go.mod h1:DVsAmMZQDQR5VSG1bRjrVoZoJefSzwEmXkCUw9lKI/A=
github.com/disgoorg/log v1.2.1 h1:kZYAWkUBcGy4LbZcgYtgYu49xNVLy+xG5Uq3yz5VVQs=
github.com/disgoorg/log v1.2.1/go.mod h1:hhQWYTFTnIGzAuFPZyXJEi11IBm9wq+/TVZt/FEwX0o=
github.com/disgoorg/snowflake/v2 v2.0.1 h1:CuUxGLwggUxEswZOmZ+mZ5i0xSumQdXW9tXW7uGqe+0=
github.com/disgoorg/snowflake/v2 v2.0.1/go.mod h1:SPU9c2CNn5DSyb86QcKtdZgix9osEtKrHLW4rMhfLCs=
github.com/disgoorg/sponsorblock-plugin v0.0.0-20230821004903-f71718b0f2ea h1:Ax8axcFTBA3P189MRt0LdypKneRSzYKRFCpbGD9N9bU=
github.com/disgoorg/sponsorblock-plugin v0.0.0-20230821004903-f71718b0f2ea/go.mod h1:9kPYLfZVaz+caOe/JUzLR8lo56A4ARUsuP8Ol6RFi2c=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/disgoorg/sponsorblock-plugin v0.0.0-20231123224051-77fcea11cfe1 h1:h9Y1tR1v8LxdukiZc8Y55TXzaR9ZKErzvxp1FWE7HIA=
github.com/disgoorg/sponsorblock-plugin v0.0.0-20231123224051-77fcea11cfe1/go.mod h1:vd8s9hQ9WkAMYcvY7LRDvcHICrxyWmyCTf1++d4H/Ys=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-github/v52 v52.0.0 h1:uyGWOY+jMQ8GVGSX8dkSwCzlehU3WfdxQ7GweO/JP7M=
github.com/google/go-github/v52 v52.0.0/go.mod h1:WJV6VEEUPuMo5pXqqa2ZCZEdbQqua4zAk2MZTIo+m+4=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY=
github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY=
github.com/lithammer/fuzzysearch v1.1.8 h1:/HIuJnjHuXS8bKaiTMeeDlW2/AyIWk2brx1V8LFgLN4=
github.com/lithammer/fuzzysearch v1.1.8/go.mod h1:IdqeyBClc3FFqSzYq/MXESsS4S0FsZ5ajtkr5xPLts4=
github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sasha-s/go-csync v0.0.0-20210812194225-61421b77c44b h1:qYTY2tN72LhgDj2rtWG+LI6TXFl2ygFQQ4YezfVaGQE=
github.com/sasha-s/go-csync v0.0.0-20210812194225-61421b77c44b/go.mod h1:/pA7k3zsXKdjjAiUhB5CjuKib9KJGCaLvZwtxGC8U0s=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/topi314/tint v0.0.0-20231106205902-77268b701ca6 h1:3Eu9qKQkO2WqyqtqiQF5WJJReAqAun+UFsx3a7IzCWE=
github.com/topi314/tint v0.0.0-20231106205902-77268b701ca6/go.mod h1:1NIyBIBWnL8n9bts9NoV3/QQUjCsbu7j3xOnpOf0t8o=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.deanishe.net/fuzzy v1.0.0 h1:3Qp6PCX0DLb9z03b5OHwAGsbRSkgJpSLncsiDdXDt4Y=
go.deanishe.net/fuzzy v1.0.0/go.mod h1:2yEEMfG7jWgT1s5EO0TteVWmx2MXFBRMr5cMm84bQNY=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8=
golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU=
golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0=
golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -78,35 +83,36 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
28 changes: 15 additions & 13 deletions handlers/lavalink.go
Original file line number Diff line number Diff line change
@@ -3,15 +3,16 @@ package handlers
import (
"context"
"fmt"
"log/slog"
"time"

"github.com/disgoorg/disgo/discord"
"github.com/disgoorg/disgo/events"
"github.com/disgoorg/disgolink/v3/disgolink"
"github.com/disgoorg/disgolink/v3/lavalink"
"github.com/disgoorg/log"
"github.com/disgoorg/sponsorblock-plugin"
"github.com/lavalink-devs/lavalink-bot/internal/res"
"github.com/topi314/tint"
)

func (h *Handlers) OnVoiceStateUpdate(event *events.GuildVoiceStateUpdate) {
@@ -30,7 +31,7 @@ func (h *Handlers) OnVoiceStateUpdate(event *events.GuildVoiceStateUpdate) {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
if err := h.Client.UpdateVoiceState(ctx, event.VoiceState.GuildID, nil, false, false); err != nil {
log.Errorf("failed to disconnect from voice channel: %s", err)
slog.Error("failed to disconnect from voice channel", tint.Err(err))
}
}
return
@@ -57,7 +58,7 @@ func (h *Handlers) OnTrackStart(p disgolink.Player, event lavalink.TrackStartEve
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: "Now playing: " + res.FormatTrack(event.Track, 0),
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

@@ -79,7 +80,7 @@ func (h *Handlers) OnTrackEnd(p disgolink.Player, event lavalink.TrackEndEvent)
if _, err = h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: "failed to start next track: " + err.Error(),
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}
}
@@ -92,7 +93,7 @@ func (h *Handlers) OnTrackException(p disgolink.Player, event lavalink.TrackExce
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: "Track exception: " + event.Exception.Error(),
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

@@ -104,20 +105,21 @@ func (h *Handlers) OnTrackStuck(p disgolink.Player, event lavalink.TrackStuckEve
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: "Track stuck: " + event.Track.Info.Title,
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

func (h *Handlers) OnWebSocketClosed(p disgolink.Player, event lavalink.WebSocketClosedEvent) {
log.Infof("websocket closed: %s, code: %d, reason: %s", event.GuildID(), event.Code, event.Reason)
slog.Info("websocket closed: %s, code: %d, reason: %s", event.GuildID(), event.Code, event.Reason)
slog.Info("websocket closed", slog.Int64("guild_id", int64(event.GuildID())), slog.Int("code", event.Code), slog.String("reason", event.Reason))
}

func (h *Handlers) OnUnknownEvent(p disgolink.Player, event lavalink.UnknownEvent) {
log.Infof("unknown event: %s, guild_id: %s, data: %s", event.Type(), event.GuildID(), string(event.Data))
slog.Info("unknown event", slog.String("event", string(event.Type())), slog.Int64("guild_id", int64(event.GuildID())), slog.String("data", string(event.Data)))
}

func (h *Handlers) OnUnknownMessage(p disgolink.Player, event lavalink.UnknownMessage) {
log.Infof("unknown message: %s, data: %s", event.Op(), string(event.Data))
slog.Info("unknown message", slog.String("op", string(event.Op())), slog.String("data", string(event.Data)))
}

func (h *Handlers) OnSegmentsLoaded(p disgolink.Player, event sponsorblock.SegmentsLoadedEvent) {
@@ -138,7 +140,7 @@ func (h *Handlers) OnSegmentsLoaded(p disgolink.Player, event sponsorblock.Segme
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: content,
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

@@ -150,7 +152,7 @@ func (h *Handlers) OndSegmentSkipped(p disgolink.Player, event sponsorblock.Segm
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: fmt.Sprintf("Segment skipped: %s: %s - %s", event.Segment.Category, res.FormatDuration(event.Segment.Start), res.FormatDuration(event.Segment.End)),
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

@@ -172,7 +174,7 @@ func (h *Handlers) OnChaptersLoaded(p disgolink.Player, event sponsorblock.Chapt
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: content,
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}

@@ -184,6 +186,6 @@ func (h *Handlers) OnChapterStarted(p disgolink.Player, event sponsorblock.Chapt
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
Content: fmt.Sprintf("Chapter started: %s: %s - %s", event.Chapter.Name, res.FormatDuration(event.Chapter.Start), res.FormatDuration(event.Chapter.End)),
}); err != nil {
h.Client.Logger().Error("failed to send message: ", err)
slog.Error("failed to send message", tint.Err(err))
}
}
45 changes: 0 additions & 45 deletions internal/maven/maven_test.go

This file was deleted.

9 changes: 5 additions & 4 deletions lavalinkbot/bot.go
Original file line number Diff line number Diff line change
@@ -2,14 +2,15 @@ package lavalinkbot

import (
"context"
"log/slog"
"os"
"sync"
"time"

"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgolink/v3/disgolink"
"github.com/disgoorg/log"
"github.com/google/go-github/v52/github"
"github.com/topi314/tint"

"github.com/lavalink-devs/lavalink-bot/internal/maven"
)
@@ -36,16 +37,16 @@ func (b *Bot) Start() error {
go func(node NodeConfig) {
defer wg.Done()
if _, err := b.Lavalink.AddNode(ctx, node.ToNodeConfig()); err != nil {
log.Errorf("failed to add lavalink node %s: %s", node.Name, err)
slog.Error("failed to add lavalink node", slog.String("node", node.Name), tint.Err(err))
} else {
log.Infof("added lavalink node: %s", node.Name)
slog.Info("added lavalink node", slog.String("node", node.Name))
}
}(b.Cfg.Nodes[i])
}

wg.Wait()
if node := b.Lavalink.BestNode(); node == nil {
log.Error("no node connected")
slog.Error("no node connected")
os.Exit(-1)
}

24 changes: 10 additions & 14 deletions lavalinkbot/config.go
Original file line number Diff line number Diff line change
@@ -2,19 +2,19 @@ package lavalinkbot

import (
"fmt"
"log/slog"
"os"
"strings"

"github.com/disgoorg/disgolink/v3/disgolink"
"github.com/disgoorg/log"
"github.com/disgoorg/snowflake/v2"
"gopkg.in/yaml.v3"
)

var defaultConfig = Config{
Log: LogConfig{
Level: log.LevelInfo,
AddSource: false,
Level: slog.LevelInfo,
Format: "text",
},
}

@@ -49,25 +49,21 @@ func (c Config) String() string {
}

type LogConfig struct {
Level log.Level `yaml:"level"`
AddSource bool `yaml:"add_source"`
Level slog.Level `yaml:"level"`
Format string `yaml:"format"`
AddSource bool `yaml:"add_source"`
NoColor bool `yaml:"no_color"`
}

func (c LogConfig) String() string {
return fmt.Sprintf("\n Level: %s\n AddSource: %t\n",
return fmt.Sprintf("\n Level: %s\n Format: %s\n AddSource: %t\n NoColor: %t\n",
c.Level,
c.Format,
c.AddSource,
c.NoColor,
)
}

func (c LogConfig) Flags() int {
flags := log.LstdFlags
if c.AddSource {
flags |= log.Llongfile
}
return flags
}

type BotConfig struct {
Token string `yaml:"token"`
GuildIDs []snowflake.ID `yaml:"guild_ids"`
93 changes: 75 additions & 18 deletions main.go
Original file line number Diff line number Diff line change
@@ -2,27 +2,28 @@ package main

import (
"flag"
"log/slog"
"net/http"
"os"
"os/signal"
"syscall"
"time"

"github.com/disgoorg/disgo/handler/middleware"
"github.com/disgoorg/sponsorblock-plugin"
"github.com/lavalink-devs/lavalink-bot/internal/maven"

"github.com/disgoorg/disgo"
"github.com/disgoorg/disgo/bot"
"github.com/disgoorg/disgo/cache"
"github.com/disgoorg/disgo/gateway"
"github.com/disgoorg/disgo/handler"
"github.com/disgoorg/disgo/handler/middleware"
"github.com/disgoorg/disgolink/v3/disgolink"
"github.com/disgoorg/log"
"github.com/disgoorg/sponsorblock-plugin"
"github.com/google/go-github/v52/github"
"github.com/lavalink-devs/lavalink-bot/commands"
"github.com/lavalink-devs/lavalink-bot/handlers"
"github.com/lavalink-devs/lavalink-bot/internal/maven"
"github.com/lavalink-devs/lavalink-bot/lavalinkbot"
"github.com/mattn/go-colorable"
"github.com/topi314/tint"
)

func main() {
@@ -31,15 +32,12 @@ func main() {

cfg, err := lavalinkbot.ReadConfig(*path)
if err != nil {
log.Fatal("failed to read config: ", err)
slog.Error("failed to read config", tint.Err(err))
os.Exit(-1)
}

log.SetFlags(cfg.Log.Flags())
log.SetLevel(cfg.Log.Level)
log.Info("starting lavalink-bot...")
log.Info("disgo version: ", disgo.Version)
log.Info("disgolink version: ", disgolink.Version)
log.Info("loading config from: ", *path)
setupLogger(cfg.Log)
slog.Info("starting lavalink-bot...", slog.String("disgo_version", disgo.Version), slog.String("disgolink_version", disgolink.Version))
slog.Info("Config", slog.String("path", *path), slog.String("config", cfg.String()))

b := &lavalinkbot.Bot{
Cfg: cfg,
@@ -104,11 +102,12 @@ func main() {
bot.WithEventListenerFunc(hdlr.OnVoiceStateUpdate),
bot.WithEventListenerFunc(hdlr.OnVoiceServerUpdate),
); err != nil {
log.Fatal("failed to create disgo client: ", err)
slog.Error("failed to create disgo client", tint.Err(err))
os.Exit(-1)
}

if err = handler.SyncCommands(b.Client, commands.CommandCreates, b.Cfg.Bot.GuildIDs); err != nil {
log.Errorf("failed to sync commands: %s", err)
slog.Error("failed to sync commands", tint.Err(err))
}

sponsorblockPlugin := sponsorblock.New()
@@ -125,16 +124,74 @@ func main() {
disgolink.WithListenerFunc(hdlr.OnChaptersLoaded),
disgolink.WithListenerFunc(hdlr.OnChapterStarted),
); err != nil {
log.Fatal("failed to create disgolink client: ", err)
slog.Error("failed to create disgolink client", tint.Err(err))
os.Exit(-1)
}

if err = b.Start(); err != nil {
log.Fatal("failed to start bot: ", err)
slog.Error("failed to start bot", tint.Err(err))
os.Exit(-1)
}
defer b.Stop()

log.Info("lavalink-bot is now running. Press CTRL-C to exit.")
slog.Info("lavalink-bot is now running. Press CTRL-C to exit.")
s := make(chan os.Signal, 1)
signal.Notify(s, syscall.SIGINT, syscall.SIGTERM, os.Interrupt)
<-s
}

const (
ansiFaint = "\033[2m"
ansiWhiteBold = "\033[37;1m"
ansiYellowBold = "\033[33;1m"
ansiCyanBold = "\033[36;1m"
ansiCyanBoldFaint = "\033[36;1;2m"
ansiRedFaint = "\033[31;2m"
ansiRedBold = "\033[31;1m"

ansiRed = "\033[31m"
ansiYellow = "\033[33m"
ansiGreen = "\033[32m"
ansiMagenta = "\033[35m"
)

func setupLogger(cfg lavalinkbot.LogConfig) {
var sHandler slog.Handler
switch cfg.Format {
case "json":
sHandler = slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
AddSource: cfg.AddSource,
Level: cfg.Level,
})

case "text":
sHandler = tint.NewHandler(colorable.NewColorable(os.Stdout), &tint.Options{
AddSource: cfg.AddSource,
Level: cfg.Level,
NoColor: cfg.NoColor,
LevelColors: map[slog.Level]string{
slog.LevelDebug: ansiMagenta,
slog.LevelInfo: ansiGreen,
slog.LevelWarn: ansiYellow,
slog.LevelError: ansiRed,
},
Colors: map[tint.Kind]string{
tint.KindTime: ansiYellowBold,
tint.KindSourceFile: ansiCyanBold,
tint.KindSourceSeparator: ansiCyanBoldFaint,
tint.KindSourceLine: ansiCyanBold,
tint.KindMessage: ansiWhiteBold,
tint.KindKey: ansiFaint,
tint.KindSeparator: ansiFaint,
tint.KindValue: ansiWhiteBold,
tint.KindErrorKey: ansiRedFaint,
tint.KindErrorSeparator: ansiFaint,
tint.KindErrorValue: ansiRedBold,
},
})
default:
slog.Error("Unknown log format", slog.String("format", cfg.Format))
os.Exit(-1)
}
slog.SetDefault(slog.New(sHandler))
}

0 comments on commit b15549a

Please sign in to comment.