✏️ 统一懒加载验证

This commit is contained in:
fumiama
2021-12-13 20:49:00 +08:00
parent f7a3c0e6c6
commit 8969c44b3f
9 changed files with 117 additions and 186 deletions

View File

@@ -2,8 +2,6 @@ package reborn
import (
"encoding/json"
"io"
"net/http"
"os"
wr "github.com/mroth/weightedrand"
@@ -16,7 +14,6 @@ import (
const (
datapath = "data/Reborn"
jsonfile = datapath + "/rate.json"
pburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/" + jsonfile
)
type rate []struct {
@@ -55,39 +52,9 @@ func init() {
// load 加载rate数据
func load(area *rate) error {
if file.IsExist(jsonfile) {
f, err := os.Open(jsonfile)
if err == nil {
defer f.Close()
data, err1 := io.ReadAll(f)
if err1 == nil {
if len(data) > 0 {
return json.Unmarshal(data, area)
}
}
return err1
}
} else { // 如果没有小作文,则从 url 下载
f, err := os.Create(jsonfile)
if err != nil {
return err
}
defer f.Close()
resp, err := http.Get(pburl)
if err == nil {
defer resp.Body.Close()
if resp.ContentLength > 0 {
log.Printf("[Reborn]从镜像下载国家和地区%d字节...", resp.ContentLength)
data, err := io.ReadAll(resp.Body)
if err == nil && len(data) > 0 {
_, _ = f.Write(data)
return json.Unmarshal(data, area)
}
return err
}
return nil
}
data, err := file.GetLazyData(jsonfile, true, true)
if err != nil {
return err
}
return nil
return json.Unmarshal(data, area)
}