From 433b0ae4c1928bc621935731e26b0844e89c8cc5 Mon Sep 17 00:00:00 2001 From: fumiama Date: Wed, 25 Aug 2021 22:49:53 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20=E5=A2=9E=E5=8A=A0Setu?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=87=AA=E5=8A=A8=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin_setutime/setu_geter.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/plugin_setutime/setu_geter.go b/plugin_setutime/setu_geter.go index 52c338c3..198de29f 100644 --- a/plugin_setutime/setu_geter.go +++ b/plugin_setutime/setu_geter.go @@ -3,6 +3,9 @@ package setutime import ( "fmt" + "io" + "log" + "net/http" "os" "strconv" "strings" @@ -28,6 +31,10 @@ type imgpool struct { Form int64 } +const ( + dburl = "https://codechina.csdn.net/u011570312/ZeroBot-Plugin/-/raw/master/data/SetuTime/SetuTime.db" +) + // NewPoolsCache 返回一个缓冲池对象 func newPools() *imgpool { cache := &imgpool{ @@ -43,6 +50,24 @@ func newPools() *imgpool { if err != nil { panic(err) } + // 如果数据库不存在则下载 + if _, err := os.Stat(cache.DB.DBPath); err != nil || os.IsNotExist(err) { + f, err := os.Create(cache.DB.DBPath) + if err == nil { + resp, err := http.Get(dburl) + if err == nil { + defer resp.Body.Close() + if resp.ContentLength > 0 { + log.Printf("[Setu]从镜像下载数据库%d字节...", resp.ContentLength) + data, err := io.ReadAll(resp.Body) + if err == nil && len(data) > 0 { + f.Write(data) + } + } + } + f.Close() + } + } for i := range cache.List { if err := cache.DB.create(cache.List[i], &pixiv.Illust{}); err != nil { panic(err)