fix:增加config属性
1、能自定义是否在启动前检查网络 2、增加demo模式
This commit is contained in:
5
Global/global.go
Normal file
5
Global/global.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package Global
|
||||
|
||||
import "Mmx/Modles"
|
||||
|
||||
var Config *Modles.Config
|
||||
@@ -1,6 +1,12 @@
|
||||
package Modles
|
||||
|
||||
type Config struct {
|
||||
From LoginForm
|
||||
Meta LoginMeta
|
||||
type Settings struct {
|
||||
QuitIfNetOk bool `json:"quit_if_net_ok"`
|
||||
DemoMode bool `json:"demo_mode"`
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
From LoginForm `json:"from"`
|
||||
Meta LoginMeta `json:"meta"`
|
||||
Settings Settings `json:"settings"`
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package Util
|
||||
|
||||
import (
|
||||
"Mmx/Global"
|
||||
"Mmx/Modles"
|
||||
"fmt"
|
||||
"os"
|
||||
@@ -55,6 +56,8 @@ func (a *config) Init() *Modles.LoginInfo {
|
||||
os.Exit(3)
|
||||
}
|
||||
|
||||
Global.Config = &c
|
||||
|
||||
return a.Generate(
|
||||
&c.From,
|
||||
&c.Meta,
|
||||
|
||||
13
Util/util.go
13
Util/util.go
@@ -1,11 +1,13 @@
|
||||
package Util
|
||||
|
||||
import (
|
||||
"Mmx/Global"
|
||||
"crypto/md5"
|
||||
"crypto/sha1"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
@@ -45,3 +47,14 @@ func Sha1(content string) string {
|
||||
bs := h.Sum(nil)
|
||||
return fmt.Sprintf("%x\n", bs)
|
||||
}
|
||||
|
||||
func ErrHandler(err error) {
|
||||
if err != nil {
|
||||
fmt.Println("Error occurred")
|
||||
if Global.Config.Settings.DemoMode {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Println(err)
|
||||
os.Exit(3)
|
||||
}
|
||||
}
|
||||
|
||||
32
main.go
32
main.go
@@ -1,33 +1,27 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"Mmx/Global"
|
||||
"Mmx/Request"
|
||||
"Mmx/Util"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func ErrHandler(err error) {
|
||||
if err != nil {
|
||||
fmt.Println("Error occurred")
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
if Util.Checker.NetOk() {
|
||||
G := Util.Config.Init()
|
||||
|
||||
if Global.Config.Settings.QuitIfNetOk && Util.Checker.NetOk() {
|
||||
fmt.Println("There's no need to login")
|
||||
return
|
||||
}
|
||||
|
||||
G := Util.Config.Init()
|
||||
|
||||
fmt.Println("Step1: Get local ip returned from srun server.")
|
||||
{
|
||||
body, err := Request.Get(G.UrlLoginPage, nil)
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
G.Ip, err = Util.GetIp(body)
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
}
|
||||
fmt.Println("Step2: Get token by resolving challenge result.")
|
||||
{
|
||||
@@ -36,11 +30,11 @@ func main() {
|
||||
"username": G.Form.UserName,
|
||||
"ip": G.Ip,
|
||||
})
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
G.Token, err = Util.GetToken(data)
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
}
|
||||
fmt.Println("Step3: Loggin and resolve response.")
|
||||
fmt.Println("Step3: Login and resolve response.")
|
||||
{
|
||||
info, err := json.Marshal(map[string]string{
|
||||
"username": G.Form.UserName,
|
||||
@@ -49,7 +43,7 @@ func main() {
|
||||
"acid": G.Meta.Acid,
|
||||
"enc_ver": G.Meta.Enc,
|
||||
})
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
G.EncryptedInfo = "{SRBX1}" + Util.Base64(Util.XEncode(string(info), G.Token))
|
||||
G.Md5 = Util.Md5(G.Token)
|
||||
G.EncryptedMd5 = "{MD5}" + G.Md5
|
||||
@@ -80,9 +74,9 @@ func main() {
|
||||
"double_stack": "0",
|
||||
"_": "1602812428675",
|
||||
})
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
G.LoginResult, err = Util.GetResult(res)
|
||||
ErrHandler(err)
|
||||
Util.ErrHandler(err)
|
||||
}
|
||||
fmt.Println("The loggin result is: " + G.LoginResult)
|
||||
fmt.Println("The login result is: " + G.LoginResult)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user