34bb0baa4a
reduce claim name length (fees are too high) delete videos in case of failure too reduce synced videos to 1000 most recent
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package util
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/lbryio/lbry.go/errors"
|
|
"github.com/nlopes/slack"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
var defaultChannel string
|
|
var defaultUsername string
|
|
var slackApi *slack.Client
|
|
|
|
// InitSlack Initializes a slack client with the given token and sets the default channel.
|
|
func InitSlack(token string, channel string, username string) {
|
|
slackApi = slack.New(token)
|
|
defaultChannel = channel
|
|
defaultUsername = username
|
|
}
|
|
func SendToSlackInfo(format string, a ...interface{}) {
|
|
message := fmt.Sprintf(format, a...)
|
|
if slackApi != nil {
|
|
sendToSlack(":information_source: " + message)
|
|
}
|
|
log.Debugln(message)
|
|
}
|
|
func SendToSlackError(format string, a ...interface{}) {
|
|
message := fmt.Sprintf(format, a...)
|
|
if slackApi != nil {
|
|
sendToSlack(":sos: " + message)
|
|
}
|
|
log.Errorln(message)
|
|
}
|
|
|
|
// SendToSlackUser Sends message to a specific user.
|
|
func SendToSlackUser(user, username, message string) error {
|
|
if !strings.HasPrefix(user, "@") {
|
|
user = "@" + user
|
|
}
|
|
return sendToSlack(user, username, message)
|
|
}
|
|
|
|
// SendToSlackChannel Sends message to a specific channel.
|
|
func SendToSlackChannel(channel, username, message string) error {
|
|
if !strings.HasPrefix(channel, "#") {
|
|
channel = "#" + channel
|
|
}
|
|
return sendToSlack(channel, username, message)
|
|
}
|
|
|
|
// SendToSlack Sends message to the default channel.
|
|
func SendToSlack(message string) error {
|
|
|
|
if defaultChannel == "" {
|
|
return errors.Err("no default slack channel set")
|
|
}
|
|
|
|
return sendToSlack(defaultChannel, defaultUsername, message)
|
|
}
|
|
|
|
func sendToSlack(channel, username, message string) error {
|
|
var err error
|
|
if slackApi == nil {
|
|
err = errors.Err("no slack token provided")
|
|
} else {
|
|
log.Debugln("slack: " + channel + ": " + message)
|
|
_, _, err = slackApi.PostMessage(channel, message, slack.PostMessageParameters{Username: username})
|
|
}
|
|
|
|
if err != nil {
|
|
log.Errorln("error sending to slack: " + err.Error())
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|