package main import ( goslack "git.bullercodeworks.com/brian/go-slack" "github.com/nlopes/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"}) } /* End DB Functions */ func (m *BotModel) NewSlack() error { token, err := m.getSlackToken() if err != nil { return err } if m.slack, err = goslack.CreateSlack(token); err != nil { return err } m.slack.StartRTM() return nil } func (a *App) MonitorSlackMessages() { for msg := range a.m.slack.IncomingMessages { a.m.SendMessage("slack", "main", slack.Message(*msg)) } } func (m *BotModel) SendSlackChannelMessage(msg *slack.Message) error { if DebugMode { return m.SendSlackAdminMessage(msg) } // Send message to slack channel m.slack.PostMessage(msg) 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 } m.slack.PostMessage(msg) return nil }