Archived
bugfixes and finetuning
This commit is contained in:
+24
-11
@@ -129,8 +129,13 @@ var (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
MsgHandlers["twitch"] = twitchHandleMessage
|
MsgHandlers["twitch"] = twitchHandleMessage
|
||||||
announceChannel = ModParams["twitchchannel"]
|
|
||||||
log.Println("Initializing twitch module")
|
log.Println("Initializing twitch module")
|
||||||
|
go configAndPoll()
|
||||||
|
}
|
||||||
|
|
||||||
|
func configAndPoll() {
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
announceChannel = ModParams["twitchchan"]
|
||||||
go pollStreamData()
|
go pollStreamData()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +145,14 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
switch tok[0] {
|
switch tok[0] {
|
||||||
case "!twitch" || "/twitch":
|
case "!twitch":
|
||||||
|
handleCommand(tok, "#"+payload.ChannelName)
|
||||||
|
case "/twitch":
|
||||||
|
handleCommand(tok, "@"+payload.UserName)
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func handleCommand(tok []string, target string) {
|
||||||
switch len(tok) {
|
switch len(tok) {
|
||||||
case 1:
|
case 1:
|
||||||
onlinestreams := 0
|
onlinestreams := 0
|
||||||
@@ -151,14 +163,14 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
if so.Stream.Game != "" {
|
if so.Stream.Game != "" {
|
||||||
onlinestreams++
|
onlinestreams++
|
||||||
co = getTwitchChannelObject(streamname)
|
co = getTwitchChannelObject(streamname)
|
||||||
twitchSendMsg(co, so)
|
twitchSendMsg(co, so, target)
|
||||||
twitch[streamname] = true
|
twitch[streamname] = true
|
||||||
} else {
|
} else {
|
||||||
twitch[streamname] = false
|
twitch[streamname] = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if onlinestreams == 0 {
|
if onlinestreams == 0 {
|
||||||
SayCh <- GeneratePayload(payload.ChannelName, "", "All streams offline", "Twitch_Bot")
|
SayCh <- GeneratePayload(target, "", "All streams offline", "Twitch_Bot")
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
streamname := tok[1]
|
streamname := tok[1]
|
||||||
@@ -167,11 +179,9 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
so = getTwitchStreamObject(streamname)
|
so = getTwitchStreamObject(streamname)
|
||||||
if so.Stream.Game != "" {
|
if so.Stream.Game != "" {
|
||||||
co = getTwitchChannelObject(streamname)
|
co = getTwitchChannelObject(streamname)
|
||||||
twitchSendMsg(co, so)
|
twitchSendMsg(co, so, target)
|
||||||
} else {
|
} else {
|
||||||
SayCh <- GeneratePayload("@"+payload.UserName, "", streamname+" not found or offline", "Twitch_Bot")
|
SayCh <- GeneratePayload(target, "", streamname+" not found or offline", "Twitch_Bot")
|
||||||
}
|
|
||||||
default:
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
@@ -187,7 +197,7 @@ func pollStreamData() {
|
|||||||
so = getTwitchStreamObject(streamname)
|
so = getTwitchStreamObject(streamname)
|
||||||
if so.Stream.Game != "" && !twitch[streamname] {
|
if so.Stream.Game != "" && !twitch[streamname] {
|
||||||
co = getTwitchChannelObject(streamname)
|
co = getTwitchChannelObject(streamname)
|
||||||
twitchSendMsg(co, so)
|
twitchSendMsg(co, so, "")
|
||||||
twitch[streamname] = true
|
twitch[streamname] = true
|
||||||
} else if so.Stream.Game == "" && twitch[streamname] {
|
} else if so.Stream.Game == "" && twitch[streamname] {
|
||||||
twitch[streamname] = false
|
twitch[streamname] = false
|
||||||
@@ -236,8 +246,11 @@ func getTwitchChannelObject(streamname string) TwitchChannelObject {
|
|||||||
return tcobj
|
return tcobj
|
||||||
}
|
}
|
||||||
|
|
||||||
func twitchSendMsg(tcobj TwitchChannelObject, tso TwitchStreamObject) {
|
func twitchSendMsg(tcobj TwitchChannelObject, tso TwitchStreamObject, target string) {
|
||||||
SayCh <- GeneratePayload(announceChannel,
|
if target == "" {
|
||||||
|
target = announceChannel
|
||||||
|
}
|
||||||
|
SayCh <- GeneratePayload(target,
|
||||||
"",
|
"",
|
||||||
"*"+tso.Stream.Channel.DisplayName+
|
"*"+tso.Stream.Channel.DisplayName+
|
||||||
"*\n*Title:* "+tcobj.Status+
|
"*\n*Title:* "+tcobj.Status+
|
||||||
|
|||||||
Reference in New Issue
Block a user