bugfixes and slash command implementation

This commit is contained in:
da
2016-04-24 14:20:20 +02:00
parent ea2a1f2627
commit cb592edddf
3 changed files with 23 additions and 7 deletions
+2
View File
@@ -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)
} }
+2
View File
@@ -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
View File
@@ -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)