✏️ 为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/cache
data/SetuTime/search data/SetuTime/search
data/manager data/manager
data/acgimage
.idea/ .idea/
.DS_Store .DS_Store
.vscode .vscode

View File

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

View File

@ -3,6 +3,7 @@ package data
import ( import (
"io" "io"
"net/http"
"os" "os"
"time" "time"
@ -12,6 +13,7 @@ import (
const ( const (
datapath = "data/Diana" datapath = "data/Diana"
pbfile = datapath + "/text.pb" pbfile = datapath + "/text.pb"
pburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/data/Diana/text.pb"
) )
var ( var (
@ -41,6 +43,7 @@ func LoadText() error {
if _, err := os.Stat(pbfile); err == nil || os.IsExist(err) { if _, err := os.Stat(pbfile); err == nil || os.IsExist(err) {
f, err := os.Open(pbfile) f, err := os.Open(pbfile)
if err == nil { if err == nil {
defer f.Close()
data, err1 := io.ReadAll(f) data, err1 := io.ReadAll(f)
if err1 == nil { if err1 == nil {
if len(data) > 0 { if len(data) > 0 {
@ -49,6 +52,26 @@ func LoadText() error {
} }
return err1 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 err
} }
return nil return nil