mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
76 lines
2.1 KiB
Go
76 lines
2.1 KiB
Go
package randimg
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/Yiwen-Chan/ZeroBot-Plugin/api/classify"
|
|
"github.com/Yiwen-Chan/ZeroBot-Plugin/api/context"
|
|
"github.com/Yiwen-Chan/ZeroBot-Plugin/api/msgext"
|
|
zero "github.com/wdvxdr1123/ZeroBot"
|
|
)
|
|
|
|
var (
|
|
RANDOM_API_URL = "https://api.pixivweb.com/anime18r.php?return=img"
|
|
BLOCK_REQUEST = false
|
|
)
|
|
|
|
func init() { // 插件主体
|
|
zero.OnRegex(`^设置随机图片网址(.*)$`, zero.SuperUserPermission).SetBlock(true).SetPriority(20).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
url := ctx.State["regex_matched"].([]string)[1]
|
|
if !strings.HasPrefix(url, "http") {
|
|
ctx.Send("URL非法!")
|
|
} else {
|
|
RANDOM_API_URL = url
|
|
}
|
|
return
|
|
})
|
|
// 有保护的随机图片
|
|
zero.OnFullMatch("随机图片").SetBlock(true).SetPriority(24).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
if ctx.Event.GroupID > 0 {
|
|
classify.Classify(ctx, RANDOM_API_URL, false)
|
|
}
|
|
return
|
|
})
|
|
// 直接随机图片,危险,仅管理员可用
|
|
zero.OnFullMatch("直接随机", zero.AdminPermission).SetBlock(true).SetPriority(24).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
if ctx.Event.GroupID > 0 {
|
|
if BLOCK_REQUEST {
|
|
ctx.Send("请稍后再试哦")
|
|
} else {
|
|
BLOCK_REQUEST = true
|
|
last_message_id := ctx.Send(msgext.ImageNoCache(RANDOM_API_URL))
|
|
last_group_id := ctx.Event.GroupID
|
|
classify.MsgofGrp[last_group_id] = last_message_id
|
|
BLOCK_REQUEST = false
|
|
}
|
|
}
|
|
return
|
|
})
|
|
// 撤回最后的随机图片
|
|
zero.OnFullMatch("不许好").SetBlock(true).SetPriority(24).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
classify.Vote(ctx, 5)
|
|
})
|
|
// 撤回最后的随机图片
|
|
zero.OnFullMatch("太涩了").SetBlock(true).SetPriority(24).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
classify.Vote(ctx, 6)
|
|
})
|
|
// 上传一张图进行评价
|
|
zero.OnFullMatch("评价图片", context.MustHasPicture()).SetBlock(true).SetPriority(24).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
if ctx.Event.GroupID > 0 {
|
|
ctx.Send("少女祈祷中......")
|
|
for _, pic := range ctx.State["image_url"].([]string) {
|
|
fmt.Println(pic)
|
|
classify.Classify(ctx, pic, true)
|
|
}
|
|
}
|
|
return
|
|
})
|
|
}
|