Archived
bugfixes and slash command implementation
This commit is contained in:
@@ -54,6 +54,8 @@ func webhookHandler(w http.ResponseWriter, req *http.Request) {
|
|||||||
UserName: req.Form.Get("user_name"),
|
UserName: req.Form.Get("user_name"),
|
||||||
Text: req.Form.Get("text"),
|
Text: req.Form.Get("text"),
|
||||||
TriggerWord: req.Form.Get("trigger_word"),
|
TriggerWord: req.Form.Get("trigger_word"),
|
||||||
|
Command: req.Form.Get("command"),
|
||||||
|
ResponseURL: req.Form.Get("response_url"),
|
||||||
}
|
}
|
||||||
modules.HandleMessage(&whp)
|
modules.HandleMessage(&whp)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ type WebhookPayload struct {
|
|||||||
TriggerWord string `json:"trigger_word"`
|
TriggerWord string `json:"trigger_word"`
|
||||||
UserID string `json:"user_id"`
|
UserID string `json:"user_id"`
|
||||||
UserName string `json:"user_name"`
|
UserName string `json:"user_name"`
|
||||||
|
Command string `json:"command"`
|
||||||
|
ResponseURL string `json:"response_url"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
+19
-7
@@ -144,17 +144,29 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
if len(tok) < 1 {
|
if len(tok) < 1 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if payload.Command == "/twitch" {
|
||||||
|
log.Print("tok: ")
|
||||||
|
log.Println(tok)
|
||||||
|
handleCommand(tok, "@"+payload.UserName, true)
|
||||||
|
}
|
||||||
switch tok[0] {
|
switch tok[0] {
|
||||||
case "!twitch":
|
case "!twitch":
|
||||||
handleCommand(tok, "#"+payload.ChannelName)
|
handleCommand(tok, "#"+payload.ChannelName, false)
|
||||||
case "/twitch":
|
|
||||||
handleCommand(tok, "@"+payload.UserName)
|
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func handleCommand(tok []string, target string) {
|
func handleCommand(tok []string, target string, isSlashCommand bool) {
|
||||||
|
var tokMod int
|
||||||
|
if isSlashCommand {
|
||||||
|
tokMod = 1
|
||||||
|
if tok[1-tokMod] == "" {
|
||||||
|
tok = make([]string, 0, 0)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tokMod = 0
|
||||||
|
}
|
||||||
switch len(tok) {
|
switch len(tok) {
|
||||||
case 1:
|
case 1 - tokMod:
|
||||||
onlinestreams := 0
|
onlinestreams := 0
|
||||||
for streamname, _ := range twitch {
|
for streamname, _ := range twitch {
|
||||||
var so TwitchStreamObject
|
var so TwitchStreamObject
|
||||||
@@ -172,8 +184,8 @@ func handleCommand(tok []string, target string) {
|
|||||||
if onlinestreams == 0 {
|
if onlinestreams == 0 {
|
||||||
SayCh <- GeneratePayload(target, "", "All streams offline", "Twitch_Bot")
|
SayCh <- GeneratePayload(target, "", "All streams offline", "Twitch_Bot")
|
||||||
}
|
}
|
||||||
case 2:
|
case 2 - tokMod:
|
||||||
streamname := tok[1]
|
streamname := tok[1-tokMod]
|
||||||
var so TwitchStreamObject
|
var so TwitchStreamObject
|
||||||
var co TwitchChannelObject
|
var co TwitchChannelObject
|
||||||
so = getTwitchStreamObject(streamname)
|
so = getTwitchStreamObject(streamname)
|
||||||
|
|||||||
Reference in New Issue
Block a user