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
@@ -24,6 +24,8 @@ type WebhookPayload struct {
TriggerWord string `json:"trigger_word"`
UserID string `json:"user_id"`
UserName string `json:"user_name"`
Command string `json:"command"`
ResponseURL string `json:"response_url"`
}
var (
+19 -7
View File
@@ -144,17 +144,29 @@ func twitchHandleMessage(payload *WebhookPayload) {
if len(tok) < 1 {
return
}
if payload.Command == "/twitch" {
log.Print("tok: ")
log.Println(tok)
handleCommand(tok, "@"+payload.UserName, true)
}
switch tok[0] {
case "!twitch":
handleCommand(tok, "#"+payload.ChannelName)
case "/twitch":
handleCommand(tok, "@"+payload.UserName)
handleCommand(tok, "#"+payload.ChannelName, false)
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) {
case 1:
case 1 - tokMod:
onlinestreams := 0
for streamname, _ := range twitch {
var so TwitchStreamObject
@@ -172,8 +184,8 @@ func handleCommand(tok []string, target string) {
if onlinestreams == 0 {
SayCh <- GeneratePayload(target, "", "All streams offline", "Twitch_Bot")
}
case 2:
streamname := tok[1]
case 2 - tokMod:
streamname := tok[1-tokMod]
var so TwitchStreamObject
var co TwitchChannelObject
so = getTwitchStreamObject(streamname)