mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-22 14:55:16 +00:00
bbgo: rename auth function for general case
This commit is contained in:
parent
5bef7d8a1e
commit
fdf7ad9648
|
@ -77,7 +77,7 @@ type Environment struct {
|
|||
BacktestService *service.BacktestService
|
||||
RewardService *service.RewardService
|
||||
SyncService *service.SyncService
|
||||
AccountService *service.AccountService
|
||||
AccountService *service.AccountService
|
||||
|
||||
// startTime is the time of start point (which is used in the backtest)
|
||||
startTime time.Time
|
||||
|
@ -410,18 +410,18 @@ func (environ *Environment) ConfigureNotificationRouting(conf *NotificationConfi
|
|||
// currently, not used
|
||||
// FIXME: this is causing cyclic import
|
||||
/*
|
||||
switch conf.Routing.PnL {
|
||||
case "$symbol":
|
||||
environ.ObjectChannelRouter.Route(func(obj interface{}) (channel string, ok bool) {
|
||||
report, matched := obj.(*pnl.AverageCostPnlReport)
|
||||
if !matched {
|
||||
switch conf.Routing.PnL {
|
||||
case "$symbol":
|
||||
environ.ObjectChannelRouter.Route(func(obj interface{}) (channel string, ok bool) {
|
||||
report, matched := obj.(*pnl.AverageCostPnlReport)
|
||||
if !matched {
|
||||
return
|
||||
}
|
||||
channel, ok = environ.SymbolChannelRouter.Route(report.Symbol)
|
||||
return
|
||||
}
|
||||
channel, ok = environ.SymbolChannelRouter.Route(report.Symbol)
|
||||
return
|
||||
})
|
||||
}
|
||||
*/
|
||||
})
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
return nil
|
||||
|
@ -563,6 +563,20 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
}
|
||||
|
||||
persistence := environ.PersistenceServiceFacade.Get()
|
||||
|
||||
authToken := viper.GetString("telegram-bot-auth-token")
|
||||
if len(authToken) > 0 {
|
||||
interact.AddCustomInteraction(&interact.AuthInteract{
|
||||
Strict: false,
|
||||
Mode: interact.AuthModeToken,
|
||||
Token: authToken,
|
||||
})
|
||||
|
||||
log.Debugf("telegram bot auth token is set, using fixed token for authorization...")
|
||||
printAuthTokenGuide(authToken)
|
||||
}
|
||||
|
||||
// check if telegram bot token is defined
|
||||
telegramBotToken := viper.GetString("telegram-bot-token")
|
||||
if len(telegramBotToken) > 0 {
|
||||
tt := strings.Split(telegramBotToken, ":")
|
||||
|
@ -584,28 +598,10 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
var sessionStore = persistence.NewStore("bbgo", "telegram", telegramID)
|
||||
|
||||
interact.SetMessenger(&interact.Telegram{
|
||||
Private: true,
|
||||
Bot: bot,
|
||||
Bot: bot,
|
||||
Private: true,
|
||||
})
|
||||
|
||||
|
||||
// TODO: replace this background context later
|
||||
if err := interact.Start(context.Background()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
authToken := viper.GetString("telegram-bot-auth-token")
|
||||
if len(authToken) > 0 {
|
||||
interact.AddCustomInteraction(&interact.AuthInteract{
|
||||
Strict: true,
|
||||
Mode: interact.AuthModeToken,
|
||||
Token: authToken,
|
||||
})
|
||||
|
||||
log.Debugf("telegram bot auth token is set, using fixed token for authorization...")
|
||||
printTelegramAuthTokenGuide(authToken)
|
||||
}
|
||||
|
||||
var session telegramnotifier.Session
|
||||
var qrcodeImagePath = fmt.Sprintf("otp-%s.png", telegramID)
|
||||
if err := sessionStore.Load(&session); err != nil || session.Owner == nil {
|
||||
|
@ -616,7 +612,7 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
return errors.Wrapf(err, "failed to setup totp (time-based one time password) key")
|
||||
}
|
||||
|
||||
printTelegramOtpAuthGuide(qrcodeImagePath)
|
||||
printOtpAuthGuide(qrcodeImagePath)
|
||||
|
||||
session = telegramnotifier.NewSession(key)
|
||||
if err := sessionStore.Save(&session); err != nil {
|
||||
|
@ -625,10 +621,9 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
} else if session.OneTimePasswordKey != nil {
|
||||
log.Infof("telegram session loaded: %+v", session)
|
||||
|
||||
printTelegramOtpAuthGuide(qrcodeImagePath)
|
||||
printOtpAuthGuide(qrcodeImagePath)
|
||||
}
|
||||
|
||||
go interaction.Start(session)
|
||||
|
||||
var opts []telegramnotifier.Option
|
||||
|
||||
|
@ -643,7 +638,7 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
|
||||
if userConfig.Notifications == nil {
|
||||
userConfig.Notifications = &NotificationConfig{
|
||||
Routing : &SlackNotificationRouting{
|
||||
Routing: &SlackNotificationRouting{
|
||||
Trade: "$session",
|
||||
Order: "$session",
|
||||
},
|
||||
|
@ -656,6 +651,11 @@ func (environ *Environment) ConfigureNotificationSystem(userConfig *Config) erro
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: replace this background context later
|
||||
if err := interact.Start(context.Background()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -707,24 +707,28 @@ func printOtpKey(key *otp.Key) {
|
|||
fmt.Println("")
|
||||
}
|
||||
|
||||
func printTelegramOtpAuthGuide(qrcodeImagePath string) {
|
||||
func printOtpAuthGuide(qrcodeImagePath string) {
|
||||
fmt.Printf(`
|
||||
To scan your OTP QR code, please run the following command:
|
||||
|
||||
open %s
|
||||
|
||||
send the auth command with the generated one-time password to the bbo bot you created to enable the notification:
|
||||
For telegram, send the auth command with the generated one-time password to the bbo bot you created to enable the notification:
|
||||
|
||||
/auth {code}
|
||||
/auth
|
||||
|
||||
`, qrcodeImagePath)
|
||||
}
|
||||
|
||||
func printTelegramAuthTokenGuide(token string) {
|
||||
func printAuthTokenGuide(token string) {
|
||||
fmt.Printf(`
|
||||
send the following command to the bbgo bot you created to enable the notification:
|
||||
For telegram, send the following command to the bbgo bot you created to enable the notification:
|
||||
|
||||
/auth %s
|
||||
/auth
|
||||
|
||||
And then enter your token
|
||||
|
||||
%s
|
||||
|
||||
`, token)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user