Archived
minor tweaks to ts3 and twitch module
This commit is contained in:
+13
-11
@@ -74,19 +74,21 @@ func loop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
func ts3HandleMessage(payload *WebhookPayload) {
|
func ts3HandleMessage(payload *WebhookPayload) {
|
||||||
log.Println("TS3 users requested by " + payload.UserName)
|
if payload.TriggerWord == "/ts" || payload.TriggerWord == "!ts" {
|
||||||
users, _ := getUsers()
|
log.Println("TS3 users requested by " + payload.UserName)
|
||||||
var s string
|
users, _ := getUsers()
|
||||||
i := 0
|
var s string
|
||||||
s += "Current users on TS3 Server:\n"
|
i := 0
|
||||||
for u, _ := range users {
|
s += "Current users on TS3 Server:\n"
|
||||||
i++
|
for u, _ := range users {
|
||||||
s += "- " + u
|
i++
|
||||||
if i != len(users) {
|
s += "- " + u
|
||||||
s += "\n"
|
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) {
|
func getUsers() (u map[string]bool, e error) {
|
||||||
|
|||||||
+22
-17
@@ -113,13 +113,15 @@ type TwitchStreamObject struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
twitch = map[string]bool{
|
announceChannel string
|
||||||
|
twitch = map[string]bool{
|
||||||
"rocketbeanstv": false,
|
"rocketbeanstv": false,
|
||||||
"blizzard": false,
|
"blizzard": false,
|
||||||
"ea": false,
|
"ea": false,
|
||||||
"warcraft": false,
|
"warcraft": false,
|
||||||
"starcraft": false,
|
"starcraft": false,
|
||||||
"bobross": false,
|
"bobross": false,
|
||||||
|
"pixelj0ckey": false,
|
||||||
}
|
}
|
||||||
twitchapiurlstreams = "https://api.twitch.tv/kraken/streams/"
|
twitchapiurlstreams = "https://api.twitch.tv/kraken/streams/"
|
||||||
twitchapiurlchannels = "https://api.twitch.tv/kraken/channels/"
|
twitchapiurlchannels = "https://api.twitch.tv/kraken/channels/"
|
||||||
@@ -127,6 +129,7 @@ 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 pollStreamData()
|
go pollStreamData()
|
||||||
}
|
}
|
||||||
@@ -137,7 +140,7 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
switch tok[0] {
|
switch tok[0] {
|
||||||
case "!twitch":
|
case "!twitch" || "/twitch":
|
||||||
switch len(tok) {
|
switch len(tok) {
|
||||||
case 1:
|
case 1:
|
||||||
onlinestreams := 0
|
onlinestreams := 0
|
||||||
@@ -155,7 +158,7 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if onlinestreams == 0 {
|
if onlinestreams == 0 {
|
||||||
SayCh <- GeneratePayload("@"+payload.UserName, "", "All streams offline", "Twitch_Bot")
|
SayCh <- GeneratePayload(payload.ChannelName, "", "All streams offline", "Twitch_Bot")
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
streamname := tok[1]
|
streamname := tok[1]
|
||||||
@@ -175,21 +178,23 @@ func twitchHandleMessage(payload *WebhookPayload) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func pollStreamData() {
|
func pollStreamData() {
|
||||||
time.Sleep(10 * time.Second)
|
if announceChannel != "" {
|
||||||
for {
|
time.Sleep(10 * time.Second)
|
||||||
for streamname, _ := range twitch {
|
for {
|
||||||
var so TwitchStreamObject
|
for streamname, _ := range twitch {
|
||||||
var co TwitchChannelObject
|
var so TwitchStreamObject
|
||||||
so = getTwitchStreamObject(streamname)
|
var co TwitchChannelObject
|
||||||
if so.Stream.Game != "" && !twitch[streamname] {
|
so = getTwitchStreamObject(streamname)
|
||||||
co = getTwitchChannelObject(streamname)
|
if so.Stream.Game != "" && !twitch[streamname] {
|
||||||
twitchSendMsg(co, so)
|
co = getTwitchChannelObject(streamname)
|
||||||
twitch[streamname] = true
|
twitchSendMsg(co, so)
|
||||||
} else if so.Stream.Game == "" && twitch[streamname] {
|
twitch[streamname] = true
|
||||||
twitch[streamname] = false
|
} 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) {
|
func twitchSendMsg(tcobj TwitchChannelObject, tso TwitchStreamObject) {
|
||||||
SayCh <- GeneratePayload("#wgs-service",
|
SayCh <- GeneratePayload(announceChannel,
|
||||||
"",
|
"",
|
||||||
"*"+tso.Stream.Channel.DisplayName+
|
"*"+tso.Stream.Channel.DisplayName+
|
||||||
"*\n*Title:* "+tcobj.Status+
|
"*\n*Title:* "+tcobj.Status+
|
||||||
|
|||||||
Reference in New Issue
Block a user