mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-21 22:43:52 +00:00
add channel argument to the notify method
This commit is contained in:
parent
58265d14f9
commit
1f71fa623c
|
@ -12,6 +12,7 @@ import (
|
|||
"github.com/c9s/bbgo/pkg/bbgo"
|
||||
"github.com/c9s/bbgo/pkg/cmd/cmdutil"
|
||||
"github.com/c9s/bbgo/pkg/config"
|
||||
"github.com/c9s/bbgo/pkg/notifier/slacknotifier"
|
||||
"github.com/c9s/bbgo/pkg/slack/slacklog"
|
||||
)
|
||||
|
||||
|
@ -55,6 +56,9 @@ var runCmd = &cobra.Command{
|
|||
|
||||
log.AddHook(slacklog.NewLogHook(slackToken, viper.GetString("slack-error-channel")))
|
||||
|
||||
var notifier = slacknotifier.New(slackToken)
|
||||
_ = notifier
|
||||
|
||||
db, err := cmdutil.ConnectMySQL()
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
)
|
||||
|
||||
type Notifier interface {
|
||||
Notify(format string, args ...interface{})
|
||||
Notify(channel, format string, args ...interface{})
|
||||
NotifyTrade(trade *types.Trade)
|
||||
NotifyPnL(report *pnl.AverageCostPnlReport)
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ func (m *Notifiability) AddNotifier(notifier Notifier) {
|
|||
|
||||
func (m *Notifiability) Notify(msg string, args ...interface{}) {
|
||||
for _, n := range m.notifiers {
|
||||
n.Notify(msg, args...)
|
||||
n.Notify("", msg, args...)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"github.com/c9s/bbgo/pkg/types"
|
||||
)
|
||||
|
||||
// NewExchange constructor exchange object from viper config.
|
||||
func NewExchange(n types.ExchangeName) (types.Exchange, error) {
|
||||
switch n {
|
||||
|
||||
|
|
|
@ -3,14 +3,9 @@ package slacknotifier
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/slack-go/slack"
|
||||
|
||||
"github.com/c9s/bbgo/pkg/accounting/pnl"
|
||||
"github.com/c9s/bbgo/pkg/types"
|
||||
"github.com/c9s/bbgo/pkg/util"
|
||||
)
|
||||
|
||||
type SlackAttachmentCreator interface {
|
||||
|
@ -19,34 +14,15 @@ type SlackAttachmentCreator interface {
|
|||
|
||||
type Notifier struct {
|
||||
client *slack.Client
|
||||
|
||||
Channel string
|
||||
|
||||
TradeChannel string
|
||||
PnlChannel string
|
||||
}
|
||||
|
||||
type NotifyOption func(notifier *Notifier)
|
||||
|
||||
func TradeChannel(channel string) NotifyOption {
|
||||
return func(notifier *Notifier) {
|
||||
notifier.TradeChannel = channel
|
||||
}
|
||||
}
|
||||
|
||||
func PnlChannel(channel string) NotifyOption {
|
||||
return func(notifier *Notifier) {
|
||||
notifier.PnlChannel = channel
|
||||
}
|
||||
}
|
||||
|
||||
func New(token string, channel string, options ...NotifyOption) *Notifier {
|
||||
func New(token string, options ...NotifyOption) *Notifier {
|
||||
var client = slack.New(token, slack.OptionDebug(true))
|
||||
|
||||
notifier := &Notifier{
|
||||
client: client,
|
||||
Channel: channel,
|
||||
TradeChannel: channel,
|
||||
PnlChannel: channel,
|
||||
}
|
||||
|
||||
for _, o := range options {
|
||||
|
@ -56,7 +32,7 @@ func New(token string, channel string, options ...NotifyOption) *Notifier {
|
|||
return notifier
|
||||
}
|
||||
|
||||
func (n *Notifier) Notify(format string, args ...interface{}) {
|
||||
func (n *Notifier) Notify(channel, format string, args ...interface{}) {
|
||||
var slackAttachments []slack.Attachment
|
||||
var slackArgsOffset = -1
|
||||
|
||||
|
@ -88,7 +64,7 @@ func (n *Notifier) Notify(format string, args ...interface{}) {
|
|||
|
||||
logrus.Infof(format, nonSlackArgs...)
|
||||
|
||||
_, _, err := n.client.PostMessageContext(context.Background(), n.Channel,
|
||||
_, _, err := n.client.PostMessageContext(context.Background(), channel,
|
||||
slack.MsgOptionText(fmt.Sprintf(format, nonSlackArgs...), true),
|
||||
slack.MsgOptionAttachments(slackAttachments...))
|
||||
if err != nil {
|
||||
|
@ -96,6 +72,7 @@ func (n *Notifier) Notify(format string, args ...interface{}) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
func (n *Notifier) NotifyTrade(trade *types.Trade) {
|
||||
_, _, err := n.client.PostMessageContext(context.Background(), n.TradeChannel,
|
||||
slack.MsgOptionText(util.Render(`:handshake: {{ .Symbol }} {{ .Side }} Trade Execution @ {{ .Price }}`, trade), true),
|
||||
|
@ -105,7 +82,9 @@ func (n *Notifier) NotifyTrade(trade *types.Trade) {
|
|||
logrus.WithError(err).Error("slack send error")
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
func (n *Notifier) NotifyPnL(report *pnl.AverageCostPnlReport) {
|
||||
attachment := report.SlackAttachment()
|
||||
|
||||
|
@ -122,3 +101,4 @@ func (n *Notifier) NotifyPnL(report *pnl.AverageCostPnlReport) {
|
|||
logrus.WithError(err).Errorf("slack send error")
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user