mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
package omikuji
|
|
|
|
import (
|
|
"github.com/FloatTech/ZeroBot-Plugin/utils/file"
|
|
"github.com/FloatTech/ZeroBot-Plugin/utils/sql"
|
|
"io"
|
|
"net/http"
|
|
"os"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
"github.com/FloatTech/ZeroBot-Plugin/utils/process"
|
|
)
|
|
|
|
const (
|
|
dbpath = "data/omikuji/"
|
|
dbfile = dbpath + "signature.db"
|
|
dburl = "https://codechina.csdn.net/anto_july/bookreview/-/raw/master/signature.db?inline=false"
|
|
)
|
|
|
|
var db = &sql.Sqlite{DBPath: dbfile}
|
|
|
|
func init() {
|
|
go func() {
|
|
defer func() {
|
|
if err := recover(); err != nil {
|
|
log.Println(err)
|
|
}
|
|
}()
|
|
process.SleepAbout1sTo2s()
|
|
_ = os.MkdirAll(dbpath, 0755)
|
|
if !file.IsExist(dbfile) { // 如果没有数据库,则从 url 下载
|
|
f, err := os.Create(dbfile)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer f.Close()
|
|
resp, err := http.Get(dburl)
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer resp.Body.Close()
|
|
if resp.ContentLength > 0 {
|
|
log.Printf("[omikuji]从镜像下载数据库%d字节...", resp.ContentLength)
|
|
data, err := io.ReadAll(resp.Body)
|
|
if err == nil && len(data) > 0 {
|
|
_, _ = f.Write(data)
|
|
} else {
|
|
panic(err)
|
|
}
|
|
}
|
|
}
|
|
err := db.Create("signature", &signature{})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
n, err := db.Count("signature")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
log.Printf("[signature]读取%d条签文", n)
|
|
}()
|
|
|
|
}
|