minor tweaks to ts3 and twitch module

This commit is contained in:
da
2016-04-24 13:22:14 +02:00
parent 956187d83f
commit 9e0f20af33
2 changed files with 35 additions and 28 deletions
+13 -11
View File
@@ -74,19 +74,21 @@ func loop() {
}
}
func ts3HandleMessage(payload *WebhookPayload) {
log.Println("TS3 users requested by " + payload.UserName)
users, _ := getUsers()
var s string
i := 0
s += "Current users on TS3 Server:\n"
for u, _ := range users {
i++
s += "- " + u
if i != len(users) {
s += "\n"
if payload.TriggerWord == "/ts" || payload.TriggerWord == "!ts" {
log.Println("TS3 users requested by " + payload.UserName)
users, _ := getUsers()
var s string
i := 0
s += "Current users on TS3 Server:\n"
for u, _ := range users {
i++
s += "- " + u
if i != len(users) {
s += "\n"
}
}
SayCh <- GeneratePayload("@"+payload.UserName, ":poop:", s, botname)
}
SayCh <- GeneratePayload("@"+payload.UserName, ":poop:", s, botname)
}
func getUsers() (u map[string]bool, e error) {
+22 -17
View File
@@ -113,13 +113,15 @@ type TwitchStreamObject struct {
}
var (
twitch = map[string]bool{
announceChannel string
twitch = map[string]bool{
"rocketbeanstv": false,
"blizzard": false,
"ea": false,
"warcraft": false,
"starcraft": false,
"bobross": false,
"pixelj0ckey": false,
}
twitchapiurlstreams = "https://api.twitch.tv/kraken/streams/"
twitchapiurlchannels = "https://api.twitch.tv/kraken/channels/"
@@ -127,6 +129,7 @@ var (
func init() {
MsgHandlers["twitch"] = twitchHandleMessage
announceChannel = ModParams["twitchchannel"]
log.Println("Initializing twitch module")
go pollStreamData()
}
@@ -137,7 +140,7 @@ func twitchHandleMessage(payload *WebhookPayload) {
return
}
switch tok[0] {
case "!twitch":
case "!twitch" || "/twitch":
switch len(tok) {
case 1:
onlinestreams := 0
@@ -155,7 +158,7 @@ func twitchHandleMessage(payload *WebhookPayload) {
}
}
if onlinestreams == 0 {
SayCh <- GeneratePayload("@"+payload.UserName, "", "All streams offline", "Twitch_Bot")
SayCh <- GeneratePayload(payload.ChannelName, "", "All streams offline", "Twitch_Bot")
}
case 2:
streamname := tok[1]
@@ -175,21 +178,23 @@ func twitchHandleMessage(payload *WebhookPayload) {
}
func pollStreamData() {
time.Sleep(10 * time.Second)
for {
for streamname, _ := range twitch {
var so TwitchStreamObject
var co TwitchChannelObject
so = getTwitchStreamObject(streamname)
if so.Stream.Game != "" && !twitch[streamname] {
co = getTwitchChannelObject(streamname)
twitchSendMsg(co, so)
twitch[streamname] = true
} else if so.Stream.Game == "" && twitch[streamname] {
twitch[streamname] = false
if announceChannel != "" {
time.Sleep(10 * time.Second)
for {
for streamname, _ := range twitch {
var so TwitchStreamObject
var co TwitchChannelObject
so = getTwitchStreamObject(streamname)
if so.Stream.Game != "" && !twitch[streamname] {
co = getTwitchChannelObject(streamname)
twitchSendMsg(co, so)
twitch[streamname] = true
} else if so.Stream.Game == "" && twitch[streamname] {
twitch[streamname] = false
}
}
time.Sleep(180 * time.Second)
}
time.Sleep(180 * time.Second)
}
}
@@ -232,7 +237,7 @@ func getTwitchChannelObject(streamname string) TwitchChannelObject {
}
func twitchSendMsg(tcobj TwitchChannelObject, tso TwitchStreamObject) {
SayCh <- GeneratePayload("#wgs-service",
SayCh <- GeneratePayload(announceChannel,
"",
"*"+tso.Stream.Channel.DisplayName+
"*\n*Title:* "+tcobj.Status+