MCPcopy Index your code
hub / github.com/FloatTech/ZeroBot-Plugin / init

Function init

plugin/danbooru/main.go:19–51  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17)
18
19func init() { // 插件主体
20 engine := control.AutoRegister(&ctrl.Options[*zero.Ctx]{
21 DisableOnDefault: false,
22 Brief: "二次元图片标签识别",
23 Help: "- 鉴赏图片[图片]",
24 PrivateDataFolder: "danbooru",
25 })
26
27 cachefolder := engine.DataFolder()
28
29 // 上传一张图进行评价
30 engine.OnKeywordGroup([]string{"鉴赏图片"}, zero.OnlyGroup, zero.MustProvidePicture).SetBlock(true).
31 Handle(func(ctx *zero.Ctx) {
32 ctx.SendChain(message.Text("少女祈祷中..."))
33 for _, url := range ctx.State["image_url"].([]string) {
34 t, st, err := tagurl("", url)
35 if err != nil {
36 ctx.SendChain(message.Text("ERROR: ", err))
37 return
38 }
39 digest := md5.Sum(helper.StringToBytes(url))
40 f := cachefolder + hex.EncodeToString(digest[:])
41 if file.IsNotExist(f) {
42 _ = fio.SavePNG(f, t)
43 }
44 m := message.Message{ctxext.FakeSenderForwardNode(ctx, message.Image("file:///"+file.BOTPATH+"/"+f))}
45 m = append(m, ctxext.FakeSenderForwardNode(ctx, message.Text("tags: ", strings.Join(st.tseq, ","))))
46 if id := ctx.Send(m).ID(); id == 0 {
47 ctx.SendChain(message.Text("ERROR: 可能被风控或下载图片用时过长,请耐心等待"))
48 }
49 }
50 })
51}

Callers

nothing calls this directly

Calls 1

tagurlFunction · 0.85

Tested by

no test coverage detected