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
|
package Modles
|
||||||
|
|
||||||
type Config struct {
|
type Settings struct {
|
||||||
From LoginForm
|
QuitIfNetOk bool `json:"quit_if_net_ok"`
|
||||||
Meta LoginMeta
|
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
|
package Util
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Mmx/Global"
|
||||||
"Mmx/Modles"
|
"Mmx/Modles"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
@@ -55,6 +56,8 @@ func (a *config) Init() *Modles.LoginInfo {
|
|||||||
os.Exit(3)
|
os.Exit(3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Global.Config = &c
|
||||||
|
|
||||||
return a.Generate(
|
return a.Generate(
|
||||||
&c.From,
|
&c.From,
|
||||||
&c.Meta,
|
&c.Meta,
|
||||||
|
|||||||
13
Util/util.go
13
Util/util.go
@@ -1,11 +1,13 @@
|
|||||||
package Util
|
package Util
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Mmx/Global"
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -45,3 +47,14 @@ func Sha1(content string) string {
|
|||||||
bs := h.Sum(nil)
|
bs := h.Sum(nil)
|
||||||
return fmt.Sprintf("%x\n", bs)
|
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
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"Mmx/Global"
|
||||||
"Mmx/Request"
|
"Mmx/Request"
|
||||||
"Mmx/Util"
|
"Mmx/Util"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ErrHandler(err error) {
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Error occurred")
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
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")
|
fmt.Println("There's no need to login")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
G := Util.Config.Init()
|
|
||||||
|
|
||||||
fmt.Println("Step1: Get local ip returned from srun server.")
|
fmt.Println("Step1: Get local ip returned from srun server.")
|
||||||
{
|
{
|
||||||
body, err := Request.Get(G.UrlLoginPage, nil)
|
body, err := Request.Get(G.UrlLoginPage, nil)
|
||||||
ErrHandler(err)
|
Util.ErrHandler(err)
|
||||||
G.Ip, err = Util.GetIp(body)
|
G.Ip, err = Util.GetIp(body)
|
||||||
ErrHandler(err)
|
Util.ErrHandler(err)
|
||||||
}
|
}
|
||||||
fmt.Println("Step2: Get token by resolving challenge result.")
|
fmt.Println("Step2: Get token by resolving challenge result.")
|
||||||
{
|
{
|
||||||
@@ -36,11 +30,11 @@ func main() {
|
|||||||
"username": G.Form.UserName,
|
"username": G.Form.UserName,
|
||||||
"ip": G.Ip,
|
"ip": G.Ip,
|
||||||
})
|
})
|
||||||
ErrHandler(err)
|
Util.ErrHandler(err)
|
||||||
G.Token, err = Util.GetToken(data)
|
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{
|
info, err := json.Marshal(map[string]string{
|
||||||
"username": G.Form.UserName,
|
"username": G.Form.UserName,
|
||||||
@@ -49,7 +43,7 @@ func main() {
|
|||||||
"acid": G.Meta.Acid,
|
"acid": G.Meta.Acid,
|
||||||
"enc_ver": G.Meta.Enc,
|
"enc_ver": G.Meta.Enc,
|
||||||
})
|
})
|
||||||
ErrHandler(err)
|
Util.ErrHandler(err)
|
||||||
G.EncryptedInfo = "{SRBX1}" + Util.Base64(Util.XEncode(string(info), G.Token))
|
G.EncryptedInfo = "{SRBX1}" + Util.Base64(Util.XEncode(string(info), G.Token))
|
||||||
G.Md5 = Util.Md5(G.Token)
|
G.Md5 = Util.Md5(G.Token)
|
||||||
G.EncryptedMd5 = "{MD5}" + G.Md5
|
G.EncryptedMd5 = "{MD5}" + G.Md5
|
||||||
@@ -80,9 +74,9 @@ func main() {
|
|||||||
"double_stack": "0",
|
"double_stack": "0",
|
||||||
"_": "1602812428675",
|
"_": "1602812428675",
|
||||||
})
|
})
|
||||||
ErrHandler(err)
|
Util.ErrHandler(err)
|
||||||
G.LoginResult, err = Util.GetResult(res)
|
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