Skip to content

Commit 9ec1a73

Browse files
authored
Merge pull request #2 from lavalink-devs/patch/track-user-data
add requester & track origin
2 parents b15549a + 8828f83 commit 9ec1a73

File tree

7 files changed

+98
-38
lines changed

7 files changed

+98
-38
lines changed

commands/now_playing.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package commands
22

33
import (
4+
"bytes"
45
"fmt"
56

67
"github.com/disgoorg/disgo/discord"
@@ -19,7 +20,16 @@ func (c *Commands) NowPlaying(e *handler.CommandEvent) error {
1920
})
2021
}
2122
content := fmt.Sprintf("Now playing: %s", res.FormatTrack(*track, player.Position()))
23+
var userData UserData
24+
_ = track.UserData.Unmarshal(&userData)
25+
if userData.Requester > 0 {
26+
content += "\nRequested by: " + discord.UserMention(userData.Requester)
27+
}
28+
if userData.OriginType == "playlist" {
29+
content += fmt.Sprintf("\nFrom: %s", userData.OriginName)
30+
}
2231

32+
var files []*discord.File
2333
if e.SlashCommandInteractionData().Bool("raw") {
2434
data, err := json.MarshalIndent(track, "", " ")
2535
if err != nil {
@@ -28,11 +38,15 @@ func (c *Commands) NowPlaying(e *handler.CommandEvent) error {
2838
Flags: discord.MessageFlagEphemeral,
2939
})
3040
}
31-
32-
content += fmt.Sprintf("\n```json\n%s\n```", data)
41+
files = append(files, &discord.File{
42+
Name: "track.json",
43+
Reader: bytes.NewReader(data),
44+
})
3345
}
3446

3547
return e.CreateMessage(discord.MessageCreate{
36-
Content: content,
48+
Content: content,
49+
AllowedMentions: &discord.AllowedMentions{},
50+
Files: files,
3751
})
3852
}

commands/play.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/disgoorg/json"
1515
"github.com/disgoorg/lavasearch-plugin"
1616
"github.com/disgoorg/lavasrc-plugin"
17+
"github.com/disgoorg/snowflake/v2"
1718
"github.com/lavalink-devs/lavalink-bot/internal/res"
1819
"go.deanishe.net/fuzzy"
1920
)
@@ -23,12 +24,27 @@ var (
2324
queryPattern = regexp.MustCompile(`^(.{2})(search|isrc):(.+)`)
2425
)
2526

27+
type UserData struct {
28+
Requester snowflake.ID `json:"requester"`
29+
OriginType string `json:"origin_type"`
30+
OriginName string `json:"origin_name"`
31+
}
32+
2633
func (c *Commands) PlayAutocomplete(e *handler.AutocompleteEvent) error {
2734
query := e.Data.String("query")
2835
if query == "" {
2936
return e.AutocompleteResult(nil)
3037
}
3138

39+
if urlPattern.MatchString(query) {
40+
return e.AutocompleteResult([]discord.AutocompleteChoice{
41+
discord.AutocompleteChoiceString{
42+
Name: res.Trim("🔗 "+query, 100),
43+
Value: query,
44+
},
45+
})
46+
}
47+
3248
source := lavalink.SearchType(e.Data.String("source"))
3349
if source == "" {
3450
source = "dzsearch"
@@ -186,6 +202,9 @@ func (c *Commands) Play(e *handler.CommandEvent) error {
186202
var (
187203
tracks []lavalink.Track
188204
messageContent string
205+
userData = UserData{
206+
Requester: e.User().ID,
207+
}
189208
)
190209
switch loadData := result.Data.(type) {
191210
case lavalink.Track:
@@ -194,7 +213,9 @@ func (c *Commands) Play(e *handler.CommandEvent) error {
194213
case lavalink.Playlist:
195214
tracks = append(tracks, loadData.Tracks...)
196215
playlistType, playlistName := res.FormatPlaylist(loadData)
197-
messageContent = fmt.Sprintf("Loaded %s **%s**", playlistType, playlistName)
216+
messageContent = fmt.Sprintf("Loaded %s **%s** - `%d tracks`", playlistType, playlistName, len(loadData.Tracks))
217+
userData.OriginType = playlistType
218+
userData.OriginName = playlistName
198219
case lavalink.Search:
199220
tracks = append(tracks, loadData[0])
200221
messageContent = fmt.Sprintf("Loaded track **%s** from search", res.FormatTrack(loadData[0], 0))
@@ -223,6 +244,11 @@ func (c *Commands) Play(e *handler.CommandEvent) error {
223244
return err
224245
}
225246

247+
userDataRaw, _ := json.Marshal(userData)
248+
for i := range tracks {
249+
tracks[i].UserData = userDataRaw
250+
}
251+
226252
player := c.Lavalink.Player(*e.GuildID())
227253
if player.Track() == nil {
228254
var track lavalink.Track

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ go 1.21
44

55
require (
66
github.com/disgoorg/disgo v0.17.0
7-
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a
7+
github.com/disgoorg/disgolink/v3 v3.0.0-20231203111018-1106c2db18ac
88
github.com/disgoorg/json v1.1.0
9-
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07
10-
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da
9+
github.com/disgoorg/lavasearch-plugin v0.0.0-20231203111747-d94fed64e77d
10+
github.com/disgoorg/lavasrc-plugin v0.0.0-20231203111728-1ac219b995be
1111
github.com/disgoorg/snowflake/v2 v2.0.1
1212
github.com/disgoorg/sponsorblock-plugin v0.0.0-20231123224051-77fcea11cfe1
1313
github.com/google/go-github/v52 v52.0.0
@@ -25,12 +25,12 @@ require (
2525
github.com/google/go-querystring v1.1.0 // indirect
2626
github.com/gorilla/websocket v1.5.1 // indirect
2727
github.com/magefile/mage v1.15.0 // indirect
28-
github.com/mattn/go-isatty v0.0.16 // indirect
28+
github.com/mattn/go-isatty v0.0.20 // indirect
2929
github.com/sasha-s/go-csync v0.0.0-20210812194225-61421b77c44b // indirect
30-
golang.org/x/crypto v0.15.0 // indirect
31-
golang.org/x/net v0.18.0 // indirect
32-
golang.org/x/oauth2 v0.14.0 // indirect
33-
golang.org/x/sys v0.14.0 // indirect
30+
golang.org/x/crypto v0.16.0 // indirect
31+
golang.org/x/net v0.19.0 // indirect
32+
golang.org/x/oauth2 v0.15.0 // indirect
33+
golang.org/x/sys v0.15.0 // indirect
3434
golang.org/x/text v0.14.0 // indirect
3535
google.golang.org/appengine v1.6.8 // indirect
3636
google.golang.org/protobuf v1.31.0 // indirect

go.sum

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
99
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1010
github.com/disgoorg/disgo v0.17.0 h1:/LcgXgPDhzHt3GkQ4cpjmIJBim1/VYfS31VhGYif3Ms=
1111
github.com/disgoorg/disgo v0.17.0/go.mod h1:AE2J/8oLR2PtYfqcARsk1mgBxQ5z3Z1OD6Lc2SA0gak=
12-
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a h1:Q4rsO+hwjRYELK0X43fUft02BJBN3nleVImxNxzUnjM=
13-
github.com/disgoorg/disgolink/v3 v3.0.0-20231123221557-7482a52d013a/go.mod h1:YIwjIteZcjfI7HYZWH241iRI7RjTLoN51HLDOUHVSFI=
12+
github.com/disgoorg/disgolink/v3 v3.0.0-20231203111018-1106c2db18ac h1:mYMQZ65M18UDI9IUZ5PMA1+flPbLQwW2SrlyfGQui5w=
13+
github.com/disgoorg/disgolink/v3 v3.0.0-20231203111018-1106c2db18ac/go.mod h1:YIwjIteZcjfI7HYZWH241iRI7RjTLoN51HLDOUHVSFI=
1414
github.com/disgoorg/json v1.1.0 h1:7xigHvomlVA9PQw9bMGO02PHGJJPqvX5AnwlYg/Tnys=
1515
github.com/disgoorg/json v1.1.0/go.mod h1:BHDwdde0rpQFDVsRLKhma6Y7fTbQKub/zdGO5O9NqqA=
16-
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07 h1:hf3vNsBK1gp1TEqonO3YYG8NxJswbLe6BusUalMnYfg=
17-
github.com/disgoorg/lavasearch-plugin v0.0.0-20230812211104-12547850ae07/go.mod h1:qyl69XAg8+hMv+Y76pBUm2bQQELwosh6vDd/2AHPln4=
18-
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da h1:Y/E2xHSgP3cFmepxaBNJlQWT0RUGm06kQ1iw5HUKH2s=
19-
github.com/disgoorg/lavasrc-plugin v0.0.0-20230812211312-b2484e9b20da/go.mod h1:DVsAmMZQDQR5VSG1bRjrVoZoJefSzwEmXkCUw9lKI/A=
16+
github.com/disgoorg/lavasearch-plugin v0.0.0-20231203111747-d94fed64e77d h1:sE3VjbajSELOA5dKblF6zthOx7oHfUVmNlfQcMp4M90=
17+
github.com/disgoorg/lavasearch-plugin v0.0.0-20231203111747-d94fed64e77d/go.mod h1:GHhjzE5B8ypZhWYiDOqTWMFOdUBDyOs8S6Ah5lztypk=
18+
github.com/disgoorg/lavasrc-plugin v0.0.0-20231203111728-1ac219b995be h1:nVZv5Lq4tUbbdeHWQkwjlQT5pZ3i+sdHgTDM0Oh2Hx8=
19+
github.com/disgoorg/lavasrc-plugin v0.0.0-20231203111728-1ac219b995be/go.mod h1:6iwaxvGe07SsooplOHO7cZKnJaL2aeH95UpHHR6TIiM=
2020
github.com/disgoorg/snowflake/v2 v2.0.1 h1:CuUxGLwggUxEswZOmZ+mZ5i0xSumQdXW9tXW7uGqe+0=
2121
github.com/disgoorg/snowflake/v2 v2.0.1/go.mod h1:SPU9c2CNn5DSyb86QcKtdZgix9osEtKrHLW4rMhfLCs=
2222
github.com/disgoorg/sponsorblock-plugin v0.0.0-20231123224051-77fcea11cfe1 h1:h9Y1tR1v8LxdukiZc8Y55TXzaR9ZKErzvxp1FWE7HIA=
@@ -42,8 +42,9 @@ github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
4242
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
4343
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
4444
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
45-
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
4645
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
46+
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
47+
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
4748
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4849
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4950
github.com/sasha-s/go-csync v0.0.0-20210812194225-61421b77c44b h1:qYTY2tN72LhgDj2rtWG+LI6TXFl2ygFQQ4YezfVaGQE=
@@ -61,8 +62,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
6162
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
6263
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
6364
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
64-
golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
65-
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
65+
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
66+
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
6667
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
6768
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
6869
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -71,10 +72,10 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
7172
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
7273
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
7374
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
74-
golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
75-
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
76-
golang.org/x/oauth2 v0.14.0 h1:P0Vrf/2538nmC0H+pEQ3MNFRRnVR7RlqyVw+bvm26z0=
77-
golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM=
75+
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
76+
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
77+
golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ=
78+
golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM=
7879
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
7980
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
8081
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -88,8 +89,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
8889
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
8990
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9091
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
91-
golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=
92-
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
92+
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
93+
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
9394
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
9495
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
9596
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=

handlers/lavalink.go

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/disgoorg/disgolink/v3/disgolink"
1212
"github.com/disgoorg/disgolink/v3/lavalink"
1313
"github.com/disgoorg/sponsorblock-plugin"
14+
"github.com/lavalink-devs/lavalink-bot/commands"
1415
"github.com/lavalink-devs/lavalink-bot/internal/res"
1516
"github.com/topi314/tint"
1617
)
@@ -55,8 +56,20 @@ func (h *Handlers) OnTrackStart(p disgolink.Player, event lavalink.TrackStartEve
5556
if channelID == 0 {
5657
return
5758
}
59+
60+
content := "Now playing: " + res.FormatTrack(event.Track, 0)
61+
var userData commands.UserData
62+
_ = event.Track.UserData.Unmarshal(&userData)
63+
if userData.Requester > 0 {
64+
content += "\nRequested by: " + discord.UserMention(userData.Requester)
65+
}
66+
if userData.OriginType == "playlist" {
67+
content += fmt.Sprintf("\nFrom: %s", userData.OriginName)
68+
}
69+
5870
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
59-
Content: "Now playing: " + res.FormatTrack(event.Track, 0),
71+
Content: content,
72+
AllowedMentions: &discord.AllowedMentions{},
6073
}); err != nil {
6174
slog.Error("failed to send message", tint.Err(err))
6275
}
@@ -78,7 +91,8 @@ func (h *Handlers) OnTrackEnd(p disgolink.Player, event lavalink.TrackEndEvent)
7891
return
7992
}
8093
if _, err = h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
81-
Content: "failed to start next track: " + err.Error(),
94+
Content: "failed to start next track: " + err.Error(),
95+
AllowedMentions: &discord.AllowedMentions{},
8296
}); err != nil {
8397
slog.Error("failed to send message", tint.Err(err))
8498
}
@@ -91,7 +105,8 @@ func (h *Handlers) OnTrackException(p disgolink.Player, event lavalink.TrackExce
91105
return
92106
}
93107
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
94-
Content: "Track exception: " + event.Exception.Error(),
108+
Content: "Track exception: " + event.Exception.Error(),
109+
AllowedMentions: &discord.AllowedMentions{},
95110
}); err != nil {
96111
slog.Error("failed to send message", tint.Err(err))
97112
}
@@ -103,7 +118,8 @@ func (h *Handlers) OnTrackStuck(p disgolink.Player, event lavalink.TrackStuckEve
103118
return
104119
}
105120
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
106-
Content: "Track stuck: " + event.Track.Info.Title,
121+
Content: "Track stuck: " + event.Track.Info.Title,
122+
AllowedMentions: &discord.AllowedMentions{},
107123
}); err != nil {
108124
slog.Error("failed to send message", tint.Err(err))
109125
}
@@ -138,7 +154,8 @@ func (h *Handlers) OnSegmentsLoaded(p disgolink.Player, event sponsorblock.Segme
138154
content += line
139155
}
140156
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
141-
Content: content,
157+
Content: content,
158+
AllowedMentions: &discord.AllowedMentions{},
142159
}); err != nil {
143160
slog.Error("failed to send message", tint.Err(err))
144161
}
@@ -150,7 +167,8 @@ func (h *Handlers) OndSegmentSkipped(p disgolink.Player, event sponsorblock.Segm
150167
return
151168
}
152169
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
153-
Content: fmt.Sprintf("Segment skipped: %s: %s - %s", event.Segment.Category, res.FormatDuration(event.Segment.Start), res.FormatDuration(event.Segment.End)),
170+
Content: fmt.Sprintf("Segment skipped: %s: %s - %s", event.Segment.Category, res.FormatDuration(event.Segment.Start), res.FormatDuration(event.Segment.End)),
171+
AllowedMentions: &discord.AllowedMentions{},
154172
}); err != nil {
155173
slog.Error("failed to send message", tint.Err(err))
156174
}
@@ -172,7 +190,8 @@ func (h *Handlers) OnChaptersLoaded(p disgolink.Player, event sponsorblock.Chapt
172190
content += line
173191
}
174192
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
175-
Content: content,
193+
Content: content,
194+
AllowedMentions: &discord.AllowedMentions{},
176195
}); err != nil {
177196
slog.Error("failed to send message", tint.Err(err))
178197
}
@@ -184,7 +203,8 @@ func (h *Handlers) OnChapterStarted(p disgolink.Player, event sponsorblock.Chapt
184203
return
185204
}
186205
if _, err := h.Client.Rest().CreateMessage(channelID, discord.MessageCreate{
187-
Content: fmt.Sprintf("Chapter started: %s: %s - %s", event.Chapter.Name, res.FormatDuration(event.Chapter.Start), res.FormatDuration(event.Chapter.End)),
206+
Content: fmt.Sprintf("Chapter started: %s: %s - %s", event.Chapter.Name, res.FormatDuration(event.Chapter.Start), res.FormatDuration(event.Chapter.End)),
207+
AllowedMentions: &discord.AllowedMentions{},
188208
}); err != nil {
189209
slog.Error("failed to send message", tint.Err(err))
190210
}

internal/res/playlist.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ func FormatPlaylist(playlist lavalink.Playlist) (string, string) {
2323
name = lavasrcInfo.Author + " - " + name
2424
}
2525
if lavasrcInfo.URL != "" {
26-
return playlistType, fmt.Sprintf("[`%s`](<%s>) - `%d tracks`", name, lavasrcInfo.URL, len(playlist.Tracks))
26+
return playlistType, fmt.Sprintf("[`%s`](<%s>)", name, lavasrcInfo.URL)
2727
}
2828

29-
return playlistType, fmt.Sprintf("`%s` - `%d tracks`", name, len(playlist.Tracks))
29+
return playlistType, fmt.Sprintf("`%s`", name)
3030
}

internal/res/track.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ func FormatTrack(track lavalink.Track, position lavalink.Duration) string {
4040
if lavasrcInfo.AlbumURL != "" {
4141
albumName = fmt.Sprintf("[`%s`](<%s>)", lavasrcInfo.AlbumName, lavasrcInfo.AlbumURL)
4242
}
43-
4443
return fmt.Sprintf("%s - %s %s - %s", trackName, trackAuthor, positionStr, albumName)
4544
}
4645

0 commit comments

Comments
 (0)