This repository has been archived on 2018-03-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
WGoSlackBot/modules/modules.go
T

51 lines
1.2 KiB
Go
Raw Normal View History

2016-04-24 03:42:50 +02:00
package modules
import (
"log"
"strings"
)
type Payload struct {
Channel string `json:"channel"`
IconEmoji string `json:"icon_emoji"`
Text string `json:"text"`
Username string `json:"username"`
}
type WebhookPayload struct {
ChannelID string `json:"channel_id"`
ChannelName string `json:"channel_name"`
ServiceID string `json:"service_id"`
TeamDomain string `json:"team_domain"`
TeamID string `json:"team_id"`
Text string `json:"text"`
Timestamp string `json:"timestamp"`
Token string `json:"token"`
TriggerWord string `json:"trigger_word"`
UserID string `json:"user_id"`
UserName string `json:"user_name"`
2016-04-24 14:20:20 +02:00
Command string `json:"command"`
ResponseURL string `json:"response_url"`
2016-04-24 03:42:50 +02:00
}
var (
SayCh chan Payload
MsgHandlers = make(map[string]func(*WebhookPayload))
ModParams = make(map[string]string)
)
func Init(ch chan Payload, params string) {
SayCh = ch
for _, param := range strings.Split(params, "!") {
kv := strings.Split(param, ":")
ModParams[kv[0]] = kv[1]
log.Println(kv[0], kv[1])
}
}
func HandleMessage(payload *WebhookPayload) {
for _, fn := range MsgHandlers {
fn(payload)
}
}