mirror of
https://github.com/lyx0/nourybot.git
synced 2024-11-13 19:49:55 +01:00
add command to remove a websub subscription
This commit is contained in:
parent
7cf1d4ade8
commit
d6efd14139
|
@ -133,6 +133,13 @@ func (app *application) handleCommand(message twitch.PrivateMessage) {
|
||||||
//reply = app.createFollowSubscription(target, cmdParams[2])
|
//reply = app.createFollowSubscription(target, cmdParams[2])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case "unnotify":
|
||||||
|
switch cmdParams[1] {
|
||||||
|
case "live":
|
||||||
|
if userLevel >= 100 {
|
||||||
|
reply = app.deleteLiveSubscription(target, cmdParams[2])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case "ddg":
|
case "ddg":
|
||||||
reply = commands.DuckDuckGo(message.Message[6:len(message.Message)])
|
reply = commands.DuckDuckGo(message.Message[6:len(message.Message)])
|
||||||
|
|
|
@ -7,20 +7,32 @@ import (
|
||||||
"github.com/nicklaw5/helix/v2"
|
"github.com/nicklaw5/helix/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (app *application) createLiveSubscription(target, channel string) string {
|
const (
|
||||||
client, err := helix.NewClient(&helix.Options{
|
eventSubResponseOK = 200
|
||||||
ClientID: app.Config.twitchClientId,
|
eventSubResponseAccepted = 202
|
||||||
AppAccessToken: app.HelixClient.GetAppAccessToken(),
|
eventSubResponseNoContent = 204
|
||||||
})
|
eventSubResponseBadRequest = 400
|
||||||
if err != nil {
|
eventSubResponseUnauthorized = 401
|
||||||
app.Log.Errorw("Error creating new helix client",
|
eventSubResponseForbidden = 403
|
||||||
"err", err,
|
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
func (app *application) createLiveSubscription(target, channel string) string {
|
||||||
|
// client, err := helix.NewClient(&helix.Options{
|
||||||
|
// ClientID: app.Config.twitchClientId,
|
||||||
|
// AppAccessToken: app.HelixClient.GetAppAccessToken(),
|
||||||
|
// })
|
||||||
|
// if err != nil {
|
||||||
|
// app.Log.Errorw("Error creating new helix client",
|
||||||
|
// "err", err,
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
|
||||||
uid := ivr.IDByUsername(channel)
|
uid := ivr.IDByUsername(channel)
|
||||||
|
if uid == "xd" {
|
||||||
|
return fmt.Sprintf("Could not find user with name %v", channel)
|
||||||
|
}
|
||||||
|
|
||||||
resp, err := client.CreateEventSubSubscription(&helix.EventSubSubscription{
|
resp, err := app.HelixClient.CreateEventSubSubscription(&helix.EventSubSubscription{
|
||||||
Type: helix.EventSubTypeStreamOnline,
|
Type: helix.EventSubTypeStreamOnline,
|
||||||
Version: "1",
|
Version: "1",
|
||||||
Condition: helix.EventSubCondition{
|
Condition: helix.EventSubCondition{
|
||||||
|
@ -33,7 +45,7 @@ func (app *application) createLiveSubscription(target, channel string) string {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
app.Log.Errorw("Error creating EvenSub subscription",
|
app.Log.Errorw("Error creating EventSub subscription",
|
||||||
"resp", resp,
|
"resp", resp,
|
||||||
"err", err,
|
"err", err,
|
||||||
)
|
)
|
||||||
|
@ -42,3 +54,57 @@ func (app *application) createLiveSubscription(target, channel string) string {
|
||||||
app.Log.Infof("%+v\n", resp)
|
app.Log.Infof("%+v\n", resp)
|
||||||
return fmt.Sprintf("Created subscription for channel %v; uid=%v", channel, uid)
|
return fmt.Sprintf("Created subscription for channel %v; uid=%v", channel, uid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (app *application) deleteLiveSubscription(target, channel string) string {
|
||||||
|
client, err := helix.NewClient(&helix.Options{
|
||||||
|
ClientID: app.Config.twitchClientId,
|
||||||
|
AppAccessToken: app.HelixClient.GetAppAccessToken(),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
app.Log.Errorw("Error creating new helix client",
|
||||||
|
"err", err,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
uid := ivr.IDByUsername(channel)
|
||||||
|
if uid == "xd" {
|
||||||
|
return fmt.Sprintf("Could not find user with name %v", channel)
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := client.GetEventSubSubscriptions(&helix.EventSubSubscriptionsParams{
|
||||||
|
UserID: uid,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
app.Log.Errorw("Error getting EventSub subscriptions",
|
||||||
|
"resp", resp,
|
||||||
|
"err", err,
|
||||||
|
)
|
||||||
|
return "Something went wrong FeelsBadMan"
|
||||||
|
}
|
||||||
|
|
||||||
|
app.Log.Infof("%+v\n", resp)
|
||||||
|
|
||||||
|
if resp.StatusCode != eventSubResponseOK {
|
||||||
|
return "Subscription was not found FeelsBadMan"
|
||||||
|
}
|
||||||
|
if len(resp.Data.EventSubSubscriptions) == 0 {
|
||||||
|
return "No such subscription found"
|
||||||
|
}
|
||||||
|
eventSubID := resp.Data.EventSubSubscriptions[0].ID
|
||||||
|
|
||||||
|
resp2, err := client.RemoveEventSubSubscription(eventSubID)
|
||||||
|
if err != nil {
|
||||||
|
app.Log.Errorw("Error getting EventSub subscriptions",
|
||||||
|
"resp", resp,
|
||||||
|
"err", err,
|
||||||
|
)
|
||||||
|
return "Something went wrong FeelsBadMan"
|
||||||
|
}
|
||||||
|
|
||||||
|
if resp2.StatusCode != eventSubResponseNoContent {
|
||||||
|
return "Subscription was not found FeelsBadMan"
|
||||||
|
}
|
||||||
|
|
||||||
|
app.Log.Infof("%+v\n", resp2)
|
||||||
|
return fmt.Sprintf("Successfully deleted live notification for channel %s; id=%v", channel, uid)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue