feat: apply backoff to login controller
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/Mmx233/BackoffCli/backoff"
|
||||||
"github.com/Mmx233/BitSrunLoginGo/internal/config"
|
"github.com/Mmx233/BitSrunLoginGo/internal/config"
|
||||||
"github.com/Mmx233/BitSrunLoginGo/internal/config/flags"
|
"github.com/Mmx233/BitSrunLoginGo/internal/config/flags"
|
||||||
"github.com/Mmx233/BitSrunLoginGo/internal/pkg/dns"
|
"github.com/Mmx233/BitSrunLoginGo/internal/pkg/dns"
|
||||||
@@ -13,6 +15,30 @@ import (
|
|||||||
|
|
||||||
// Login 登录逻辑
|
// Login 登录逻辑
|
||||||
func Login(eth *tools.Eth, debugOutput bool) error {
|
func Login(eth *tools.Eth, debugOutput bool) error {
|
||||||
|
if config.Settings.Backoff.Enable {
|
||||||
|
return backoff.NewInstance(func(ctx context.Context) error {
|
||||||
|
return login(eth, debugOutput)
|
||||||
|
}, config.BackoffConfig).Run(context.TODO())
|
||||||
|
} else {
|
||||||
|
return login(eth, debugOutput)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var ipLast string
|
||||||
|
|
||||||
|
func ddns(ip string, httpClient *http.Client) error {
|
||||||
|
return dns.Run(&dns.Config{
|
||||||
|
Logger: config.Logger,
|
||||||
|
Provider: config.Settings.DDNS.Provider,
|
||||||
|
IP: ip,
|
||||||
|
Domain: config.Settings.DDNS.Domain,
|
||||||
|
TTL: config.Settings.DDNS.TTL,
|
||||||
|
Conf: config.Settings.DDNS.Config,
|
||||||
|
Http: httpClient,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func login(eth *tools.Eth, debugOutput bool) error {
|
||||||
logger := config.Logger
|
logger := config.Logger
|
||||||
|
|
||||||
// 登录配置初始化
|
// 登录配置初始化
|
||||||
@@ -125,17 +151,3 @@ func Login(eth *tools.Eth, debugOutput bool) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var ipLast string
|
|
||||||
|
|
||||||
func ddns(ip string, httpClient *http.Client) error {
|
|
||||||
return dns.Run(&dns.Config{
|
|
||||||
Logger: config.Logger,
|
|
||||||
Provider: config.Settings.DDNS.Provider,
|
|
||||||
IP: ip,
|
|
||||||
Domain: config.Settings.DDNS.Domain,
|
|
||||||
TTL: config.Settings.DDNS.TTL,
|
|
||||||
Conf: config.Settings.DDNS.Config,
|
|
||||||
Http: httpClient,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user