Skip to content

Commit df148af

Browse files
authored
Update 满足合并需要
1 parent 8fa91a1 commit df148af

File tree

1 file changed

+54
-55
lines changed

1 file changed

+54
-55
lines changed

plugin/tarot/tarot.go

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,15 @@ import (
1212
fcext "github.com/FloatTech/floatbox/ctxext"
1313
"github.com/FloatTech/floatbox/file"
1414
"github.com/FloatTech/floatbox/process"
15-
"github.com/FloatTech/floatbox/web"
1615
ctrl "github.com/FloatTech/zbpctrl"
1716
"github.com/FloatTech/zbputils/control"
1817
"github.com/FloatTech/zbputils/ctxext"
19-
"github.com/FloatTech/zbputils/img/pool"
2018
"github.com/FloatTech/zbputils/img/text"
2119
"github.com/sirupsen/logrus"
2220
zero "github.com/wdvxdr1123/ZeroBot"
2321
"github.com/wdvxdr1123/ZeroBot/message"
2422
)
2523

26-
const bed = "https://gitcode.net/shudorcl/zbp-tarot/-/raw/master/"
27-
2824
type cardInfo struct {
2925
Description string `json:"description"`
3026
ReverseDescription string `json:"reverseDescription"`
@@ -61,13 +57,42 @@ func init() {
6157
PublicDataFolder: "Tarot",
6258
}).ApplySingle(ctxext.DefaultSingle)
6359

64-
cache := engine.DataFolder() + "cache"
65-
_ = os.RemoveAll(cache)
66-
err := os.MkdirAll(cache, 0755)
67-
if err != nil {
68-
panic(err)
60+
logrus.Infof("[tarot]uri: %s", engine.DataFolder())
61+
62+
MajorArcana := engine.DataFolder() + "MajorArcana"
63+
if _, err := os.Stat(MajorArcana); os.IsNotExist(err) {
64+
err := os.MkdirAll(MajorArcana, 0755)
65+
if err != nil {
66+
panic(err)
67+
}
6968
}
7069

70+
MinorArcana := engine.DataFolder() + "MinorArcana"
71+
if _, err := os.Stat(MinorArcana); os.IsNotExist(err) {
72+
err := os.MkdirAll(MinorArcana, 0755)
73+
if err != nil {
74+
panic(err)
75+
}
76+
}
77+
78+
Reverse_MajorArcana := engine.DataFolder() + "Reverse/MajorArcana"
79+
if _, err := os.Stat(Reverse_MajorArcana); os.IsNotExist(err) {
80+
err := os.MkdirAll(Reverse_MajorArcana, 0755)
81+
if err != nil {
82+
panic(err)
83+
}
84+
}
85+
86+
Reverse_MinorArcana := engine.DataFolder() + "Reverse/MinorArcana"
87+
if _, err := os.Stat(Reverse_MinorArcana); os.IsNotExist(err) {
88+
err := os.MkdirAll(Reverse_MinorArcana, 0755)
89+
if err != nil {
90+
panic(err)
91+
}
92+
}
93+
94+
95+
7196
getTarot := fcext.DoOnceOnSuccess(func(ctx *zero.Ctx) bool {
7297
data, err := engine.GetLazyData("tarots.json", true)
7398
if err != nil {
@@ -140,30 +165,14 @@ func init() {
140165
if p == 1 {
141166
description = card.ReverseDescription
142167
}
143-
imgurl := bed + reverse[p] + card.ImgURL
144-
imgname := ""
145-
if p == 1 {
146-
imgname = reverse[p][:len(reverse[p])-1] + name
147-
} else {
148-
imgname = name
149-
}
150-
imgpath := cache + "/" + imgname + ".png"
151-
err := pool.SendImageFromPool(imgpath, func(pth string) error {
152-
data, err := web.RequestDataWith(web.NewTLS12Client(), imgurl, "GET", "gitcode.net", web.RandUA(), nil)
153-
if err != nil {
154-
return err
155-
}
156-
f, err := os.Create(pth)
157-
if err != nil {
158-
return err
159-
}
160-
defer f.Close()
161-
return os.WriteFile(f.Name(), data, 0755)
162-
}, ctxext.Send(ctx))
168+
imgurl := reverse[p] + card.ImgURL
169+
_, err := engine.GetLazyData(imgurl, true) // 获取数据和错误
163170
if err != nil {
164-
ctx.SendChain(message.Text("ERROR: ", err))
165-
return
171+
logrus.Infof("[tarot]下载数据错误: %s", err)
172+
return
166173
}
174+
imgpath := "/" + engine.DataFolder() + "/"+ imgurl
175+
ctx.SendChain(message.Image("file:///" + file.BOTPATH + imgpath))
167176
process.SleepAbout1sTo2s()
168177
ctx.SendChain(message.Text(reasons[rand.Intn(len(reasons))], position[p], "的『", name, "』\n其释义为: ", description))
169178
return
@@ -185,14 +194,14 @@ func init() {
185194
if p == 1 {
186195
description = card.ReverseDescription
187196
}
188-
imgurl := bed + reverse[p] + card.ImgURL
197+
imgurl := reverse[p] + card.ImgURL
189198
tarotmsg := message.Message{message.Text(reasons[rand.Intn(len(reasons))], position[p], "的『", name, "』\n")}
190199
var imgmsg message.Segment
191200
var err error
192201
if p == 1 {
193-
imgmsg, err = poolimg(imgurl, reverse[p][:len(reverse[p])-1]+name, cache)
202+
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
194203
} else {
195-
imgmsg, err = poolimg(imgurl, name, cache)
204+
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
196205
}
197206
if err != nil {
198207
ctx.SendChain(message.Text("ERROR: ", err))
@@ -211,9 +220,9 @@ func init() {
211220
match := ctx.State["regex_matched"].([]string)[1]
212221
info, ok := infoMap[match]
213222
if ok {
214-
imgurl := bed + info.ImgURL
223+
imgurl := info.ImgURL
215224
var tarotmsg message.Message
216-
imgmsg, err := poolimg(imgurl, match, cache)
225+
imgmsg, err := poolimg(engine, imgurl, engine.DataFolder())
217226
if err != nil {
218227
ctx.SendChain(message.Text("ERROR: ", err))
219228
return
@@ -280,13 +289,13 @@ func init() {
280289
description = card.ReverseDescription
281290
}
282291
var tarotmsg message.Message
283-
imgurl := bed + reverse[p] + card.ImgURL
292+
imgurl := reverse[p] + card.ImgURL
284293
var imgmsg message.Segment
285294
var err error
286295
if p == 1 {
287-
imgmsg, err = poolimg(imgurl, reverse[p][:len(reverse[p])-1]+name, cache)
296+
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
288297
} else {
289-
imgmsg, err = poolimg(imgurl, name, cache)
298+
imgmsg, err = poolimg(engine, imgurl, engine.DataFolder())
290299
}
291300
if err != nil {
292301
ctx.SendChain(message.Text("ERROR: ", err))
@@ -319,26 +328,16 @@ func init() {
319328
})
320329
}
321330

322-
func poolimg(imgurl, imgname, cache string) (msg message.Segment, err error) {
323-
imgfile := cache + "/" + imgname + ".png"
331+
func poolimg(engine *control.Engine, imgurl, cache string) (msg message.Segment, err error) {
332+
imgfile := cache + "/" + imgurl
324333
aimgfile := file.BOTPATH + "/" + imgfile
325334
if file.IsNotExist(aimgfile) {
326-
var data []byte
327-
data, err = web.RequestDataWith(web.NewTLS12Client(), imgurl, "GET", "gitcode.net", web.RandUA(), nil)
335+
_, err = engine.GetLazyData(imgurl, true) // 获取数据和错误
328336
if err != nil {
329-
return
330-
}
331-
var f *os.File
332-
f, err = os.Create(imgfile)
333-
if err != nil {
334-
return
335-
}
336-
defer f.Close()
337-
err = os.WriteFile(f.Name(), data, 0755)
338-
if err != nil {
339-
return
337+
logrus.Infof("[tarot]下载数据错误: %s", err)
338+
return
340339
}
341340
}
342341
msg = message.Image("file:///" + aimgfile)
343-
return
342+
return
344343
}

0 commit comments

Comments
 (0)