✏️ 为Diana增加自动下载小作文,更新atri镜像url

This commit is contained in:
fumiama 2021-08-25 22:39:30 +08:00
parent 1001a52a53
commit 452b39075b
3 changed files with 26 additions and 2 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
data/SetuTime/cache
data/SetuTime/search
data/manager
data/acgimage
.idea/
.DS_Store
.vscode

View File

@ -16,8 +16,8 @@ import (
var (
// ATRI 所有命令的优先级
prio = -1
// ATRI 表情的 GitHub 位置,如果发现图片不能下载请使用镜像
res = "https://raw.githubusercontent.com/FloatTech/ZeroBot-Plugin/master/plugin_atri/"
// ATRI 表情的 codechina 镜像
res = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/plugin_atri/"
// ATRI 的总开关
enable = true
)

View File

@ -3,6 +3,7 @@ package data
import (
"io"
"net/http"
"os"
"time"
@ -12,6 +13,7 @@ import (
const (
datapath = "data/Diana"
pbfile = datapath + "/text.pb"
pburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/data/Diana/text.pb"
)
var (
@ -41,6 +43,7 @@ func LoadText() error {
if _, err := os.Stat(pbfile); err == nil || os.IsExist(err) {
f, err := os.Open(pbfile)
if err == nil {
defer f.Close()
data, err1 := io.ReadAll(f)
if err1 == nil {
if len(data) > 0 {
@ -49,6 +52,26 @@ func LoadText() error {
}
return err1
}
} else { // 如果没有小作文,则从 url 下载
f, err := os.Create(pbfile)
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("[Diana]从镜像下载小作文%d字节...", resp.ContentLength)
data, err := io.ReadAll(resp.Body)
if err == nil && len(data) > 0 {
f.Write(data)
return compo.Unmarshal(data)
}
return err
}
return nil
}
return err
}
return nil