Skip to content

Commit

Permalink
Update 满足合并需要
Browse files Browse the repository at this point in the history
  • Loading branch information
win-syswow64 authored Jan 3, 2025
1 parent 8fa91a1 commit df148af
Showing 1 changed file with 54 additions and 55 deletions.
109 changes: 54 additions & 55 deletions plugin/tarot/tarot.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,15 @@ import (
fcext "github.com/FloatTech/floatbox/ctxext"
"github.com/FloatTech/floatbox/file"
"github.com/FloatTech/floatbox/process"
"github.com/FloatTech/floatbox/web"
ctrl "github.com/FloatTech/zbpctrl"
"github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/ctxext"
"github.com/FloatTech/zbputils/img/pool"
"github.com/FloatTech/zbputils/img/text"
"github.com/sirupsen/logrus"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
)

const bed = "https://gitcode.net/shudorcl/zbp-tarot/-/raw/master/"

type cardInfo struct {
Description string `json:"description"`
ReverseDescription string `json:"reverseDescription"`
Expand Down Expand Up @@ -61,13 +57,42 @@ func init() {
PublicDataFolder: "Tarot",
}).ApplySingle(ctxext.DefaultSingle)

cache := engine.DataFolder() + "cache"
_ = os.RemoveAll(cache)
err := os.MkdirAll(cache, 0755)
if err != nil {
panic(err)
logrus.Infof("[tarot]uri: %s", engine.DataFolder())

MajorArcana := engine.DataFolder() + "MajorArcana"
if _, err := os.Stat(MajorArcana); os.IsNotExist(err) {
err := os.MkdirAll(MajorArcana, 0755)
if err != nil {
panic(err)
}
}

MinorArcana := engine.DataFolder() + "MinorArcana"
if _, err := os.Stat(MinorArcana); os.IsNotExist(err) {
err := os.MkdirAll(MinorArcana, 0755)
if err != nil {
panic(err)
}
}

Reverse_MajorArcana := engine.DataFolder() + "Reverse/MajorArcana"

Check failure on line 78 in plugin/tarot/tarot.go

View workflow job for this annotation

GitHub Actions / lint

var-naming: don't use underscores in Go names; var Reverse_MajorArcana should be ReverseMajorArcana (revive)
if _, err := os.Stat(Reverse_MajorArcana); os.IsNotExist(err) {
err := os.MkdirAll(Reverse_MajorArcana, 0755)
if err != nil {
panic(err)
}
}

Reverse_MinorArcana := engine.DataFolder() + "Reverse/MinorArcana"

Check failure on line 86 in plugin/tarot/tarot.go

View workflow job for this annotation

GitHub Actions / lint

var-naming: don't use underscores in Go names; var Reverse_MinorArcana should be ReverseMinorArcana (revive)
if _, err := os.Stat(Reverse_MinorArcana); os.IsNotExist(err) {
err := os.MkdirAll(Reverse_MinorArcana, 0755)
if err != nil {
panic(err)
}
}



getTarot := fcext.DoOnceOnSuccess(func(ctx *zero.Ctx) bool {
data, err := engine.GetLazyData("tarots.json", true)
if err != nil {
Expand Down Expand Up @@ -140,30 +165,14 @@ func init() {
if p == 1 {
description = card.ReverseDescription
}
imgurl := bed + reverse[p] + card.ImgURL
imgname := ""
if p == 1 {
imgname = reverse[p][:len(reverse[p])-1] + name
} else {
imgname = name
}
imgpath := cache + "/" + imgname + ".png"
err := pool.SendImageFromPool(imgpath, func(pth string) error {
data, err := web.RequestDataWith(web.NewTLS12Client(), imgurl, "GET", "gitcode.net", web.RandUA(), nil)
if err != nil {
return err
}
f, err := os.Create(pth)
if err != nil {
return err
}
defer f.Close()
return os.WriteFile(f.Name(), data, 0755)
}, ctxext.Send(ctx))
imgurl := reverse[p] + card.ImgURL
_, err := engine.GetLazyData(imgurl, true) // 获取数据和错误
if err != nil {
ctx.SendChain(message.Text("ERROR: ", err))
return
logrus.Infof("[tarot]下载数据错误: %s", err)
return
}
imgpath := "/" + engine.DataFolder() + "/"+ imgurl
ctx.SendChain(message.Image("file:///" + file.BOTPATH + imgpath))
process.SleepAbout1sTo2s()
ctx.SendChain(message.Text(reasons[rand.Intn(len(reasons))], position[p], "的『", name, "』\n其释义为: ", description))
return
Expand All @@ -185,14 +194,14 @@ func init() {
if p == 1 {
description = card.ReverseDescription
}
imgurl := bed + reverse[p] + card.ImgURL
imgurl := reverse[p] + card.ImgURL
tarotmsg := message.Message{message.Text(reasons[rand.Intn(len(reasons))], position[p], "的『", name, "』\n")}
var imgmsg message.Segment
var err error
if p == 1 {

Check failure on line 201 in plugin/tarot/tarot.go

View workflow job for this annotation

GitHub Actions / lint

dupBranchBody: both branches in if statement have same body (gocritic)
imgmsg, err = poolimg(imgurl, reverse[p][:len(reverse[p])-1]+name, cache)
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
} else {
imgmsg, err = poolimg(imgurl, name, cache)
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
}
if err != nil {
ctx.SendChain(message.Text("ERROR: ", err))
Expand All @@ -211,9 +220,9 @@ func init() {
match := ctx.State["regex_matched"].([]string)[1]
info, ok := infoMap[match]
if ok {
imgurl := bed + info.ImgURL
imgurl := info.ImgURL
var tarotmsg message.Message
imgmsg, err := poolimg(imgurl, match, cache)
imgmsg, err := poolimg(engine, imgurl, engine.DataFolder())
if err != nil {
ctx.SendChain(message.Text("ERROR: ", err))
return
Expand Down Expand Up @@ -280,13 +289,13 @@ func init() {
description = card.ReverseDescription
}
var tarotmsg message.Message
imgurl := bed + reverse[p] + card.ImgURL
imgurl := reverse[p] + card.ImgURL
var imgmsg message.Segment
var err error
if p == 1 {

Check failure on line 295 in plugin/tarot/tarot.go

View workflow job for this annotation

GitHub Actions / lint

dupBranchBody: both branches in if statement have same body (gocritic)
imgmsg, err = poolimg(imgurl, reverse[p][:len(reverse[p])-1]+name, cache)
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
} else {
imgmsg, err = poolimg(imgurl, name, cache)
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
}
if err != nil {
ctx.SendChain(message.Text("ERROR: ", err))
Expand Down Expand Up @@ -319,26 +328,16 @@ func init() {
})
}

func poolimg(imgurl, imgname, cache string) (msg message.Segment, err error) {
imgfile := cache + "/" + imgname + ".png"
func poolimg(engine *control.Engine, imgurl, cache string) (msg message.Segment, err error) {
imgfile := cache + "/" + imgurl
aimgfile := file.BOTPATH + "/" + imgfile
if file.IsNotExist(aimgfile) {
var data []byte
data, err = web.RequestDataWith(web.NewTLS12Client(), imgurl, "GET", "gitcode.net", web.RandUA(), nil)
_, err = engine.GetLazyData(imgurl, true) // 获取数据和错误
if err != nil {
return
}
var f *os.File
f, err = os.Create(imgfile)
if err != nil {
return
}
defer f.Close()
err = os.WriteFile(f.Name(), data, 0755)
if err != nil {
return
logrus.Infof("[tarot]下载数据错误: %s", err)
return
}
}
msg = message.Image("file:///" + aimgfile)
return
return
}

0 comments on commit df148af

Please sign in to comment.