diff --git a/controllers/guardian.go b/controllers/guardian.go index a02a4c1..73371d6 100644 --- a/controllers/guardian.go +++ b/controllers/guardian.go @@ -29,7 +29,7 @@ func Guardian() { _ = recover() }() if global.Config.Settings.Basic.Interfaces == "" { //单网卡 - e := Login(nil) + e := Login(nil, true) if e != nil { log.Errorln("登录出错: ", e) } @@ -38,7 +38,7 @@ func Guardian() { if e == nil { for _, eth := range interfaces { log.Debugf("使用 %s 网口登录 ", eth.Name) - e = Login(eth.Addr) + e = Login(eth.Addr, true) if e != nil { log.Errorln("网口 ", eth.Name+" 登录出错: ", e) } diff --git a/controllers/login.go b/controllers/login.go index 834df4b..63256ff 100644 --- a/controllers/login.go +++ b/controllers/login.go @@ -4,17 +4,44 @@ import ( "github.com/Mmx233/BitSrunLoginGo/global" "github.com/Mmx233/BitSrunLoginGo/util" BitSrun "github.com/Mmx233/BitSrunLoginGo/v1" + log "github.com/sirupsen/logrus" "net" ) // Login 登录逻辑 -func Login(localAddr net.Addr) error { - return BitSrun.Login(&BitSrun.Conf{ +func Login(localAddr net.Addr, debugOutput bool) error { + conf := &BitSrun.Conf{ Https: global.Config.Settings.Basic.Https, LoginInfo: BitSrun.LoginInfo{ Form: &global.Config.Form, Meta: &global.Config.Meta, }, Client: util.HttpTools(localAddr).Client, - }) + } + + var output func(args ...interface{}) + if debugOutput { + output = log.Debugln + } else { + output = log.Infoln + } + + output("正在获取登录状态") + + online, ip, e := BitSrun.LoginStatus(conf) + if e != nil { + return e + } + + log.Debugln("认证客户端 ip: ", ip) + + if online { + output("已登录~") + + return nil + } else { + output("检测到用户未登录,开始尝试登录...") + + return BitSrun.DoLogin(ip, conf) + } } diff --git a/main.go b/main.go index 8f4e50d..d2fd825 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,7 @@ func main() { //登录流程 var err error if global.Config.Settings.Basic.Interfaces == "" { //单网卡 - if err = controllers.Login(nil); err != nil { + if err = controllers.Login(nil, false); err != nil { log.Errorln("登录出错: ", err) if !global.Config.Settings.Log.DebugLevel { fmt.Printf("开启调试日志(debug_level)获取详细信息") @@ -27,11 +27,11 @@ func main() { return } } else { //多网卡 - log.Debugln("多网卡模式") + log.Infoln("多网卡模式") interfaces, _ := util.GetInterfaceAddr() for _, eth := range interfaces { - log.Debugln("使用网卡: ", eth.Name) - if err = controllers.Login(eth.Addr); err != nil { + log.Infoln("使用网卡: ", eth.Name) + if err = controllers.Login(eth.Addr, false); err != nil { log.Errorln("登录出错: ", err) } }