78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
slack "git.bullercodeworks.com/brian/go-slack"
|
|
)
|
|
|
|
/* DB Functions */
|
|
func (m *BotModel) setSlackToken(token string) error {
|
|
return m.SetBytes([]string{"slack", "config", "token"}, []byte(token))
|
|
}
|
|
|
|
func (m *BotModel) getSlackToken() (string, error) {
|
|
return m.GetString([]string{"slack", "config", "token"})
|
|
}
|
|
|
|
func (m *BotModel) setSlackAdminDMId(adminId string) error {
|
|
return m.SetString([]string{"slack", "config", "admin_dm_id"}, adminId)
|
|
}
|
|
|
|
func (m *BotModel) getSlackAdminDMId() (string, error) {
|
|
return m.GetString([]string{"slack", "config", "admin_dm_id"})
|
|
}
|
|
|
|
func (m *BotModel) setSlackChannelId(chanId string) error {
|
|
return m.SetString([]string{"slack", "config", "channel_id"}, chanId)
|
|
}
|
|
|
|
func (m *BotModel) getSlackChannelId() (string, error) {
|
|
return m.GetString([]string{"slack", "config", "channel_id"})
|
|
}
|
|
|
|
/* End DB Functions */
|
|
|
|
func (m *BotModel) NewSlack() error {
|
|
token, err := m.getSlackToken()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if m.slack, err = slack.CreateSlack(token); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *App) MonitorSlackMessages() {
|
|
for a.running {
|
|
msg, err := a.m.slack.GetMessage()
|
|
if err == nil {
|
|
a.m.SendMessage("slack", "main", msg)
|
|
}
|
|
}
|
|
}
|
|
|
|
func (m *BotModel) SendSlackChannelMessage(msg *slack.Message) error {
|
|
if DebugMode {
|
|
return m.SendSlackAdminMessage(msg)
|
|
}
|
|
// Send message to slack channel
|
|
var err error
|
|
if err = m.slack.PostMessage(*msg); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *BotModel) SendSlackAdminMessage(msg *slack.Message) error {
|
|
// Send message to slack admin
|
|
var err error
|
|
msg.Channel, err = m.getSlackAdminDMId()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if err = m.slack.PostMessage(*msg); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|