mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
package nsfw
|
|
|
|
import (
|
|
"github.com/FloatTech/AnimeAPI/nsfw"
|
|
"github.com/FloatTech/zbputils/control"
|
|
"github.com/FloatTech/zbputils/ctxext"
|
|
zero "github.com/wdvxdr1123/ZeroBot"
|
|
"github.com/wdvxdr1123/ZeroBot/message"
|
|
|
|
"github.com/FloatTech/ZeroBot-Plugin/order"
|
|
)
|
|
|
|
func init() {
|
|
engine := control.Register("nsfw", order.PrioNSFW, &control.Options{
|
|
DisableOnDefault: false,
|
|
Help: "nsfw图片识别\n- nsfw打分[图片]",
|
|
})
|
|
// 上传一张图进行评价
|
|
engine.OnKeywordGroup([]string{"nsfw打分"}, zero.OnlyPublic, ctxext.CmdMatch, ctxext.MustGiven).SetBlock(true).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
url := ctx.State["image_url"].([]string)
|
|
if len(url) > 0 {
|
|
ctx.SendChain(message.Text("少女祈祷中..."))
|
|
p, err := nsfw.Classify(url...)
|
|
if err != nil {
|
|
ctx.SendChain(message.Text("ERROR:", err))
|
|
return
|
|
}
|
|
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text(judge(p[0]))))
|
|
}
|
|
})
|
|
en := control.Register("nsfwauto", order.PrioNSFWAuto, &control.Options{
|
|
DisableOnDefault: true,
|
|
Help: "nsfw图片自动识别\n- 当图片属于非 neutral 类别时自动发送评价",
|
|
})
|
|
en.OnMessage(ctxext.Exists).SetBlock(false).
|
|
Handle(func(ctx *zero.Ctx) {
|
|
url := ctx.State["image_url"].([]string)
|
|
if len(url) > 0 {
|
|
p, err := nsfw.Classify(url...)
|
|
if err != nil {
|
|
return
|
|
}
|
|
ctx.Send(message.ReplyWithMessage(ctx.Event.MessageID, message.Text(judge(p[0]))))
|
|
}
|
|
})
|
|
}
|
|
|
|
func judge(p nsfw.Picture) string {
|
|
if p.Neutral > 0.3 {
|
|
return "普通哦"
|
|
}
|
|
c := ""
|
|
if p.Drawings > 0.3 {
|
|
c = "二次元"
|
|
} else {
|
|
c = "三次元"
|
|
}
|
|
if p.Hentai > 0.3 {
|
|
c += " hentai"
|
|
}
|
|
if p.Porn > 0.3 {
|
|
c += " porn"
|
|
}
|
|
if p.Sexy > 0.3 {
|
|
c += " hso"
|
|
}
|
|
return c
|
|
}
|