fix:增加config属性

1、能自定义是否在启动前检查网络
2、增加demo模式
This commit is contained in:
Mmx
2021-03-17 17:59:31 +08:00
parent cbc0d562aa
commit 39bbc30d9c
5 changed files with 43 additions and 22 deletions

5
Global/global.go Normal file
View File

@@ -0,0 +1,5 @@
package Global
import "Mmx/Modles"
var Config *Modles.Config

View File

@@ -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"`
}

View File

@@ -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,

View File

@@ -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
View File

@@ -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)
}