mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 05:30:07 +08:00
165 lines
5.0 KiB
Go
165 lines
5.0 KiB
Go
// Package gif 制图
|
||
package gif
|
||
|
||
import (
|
||
"strconv"
|
||
"strings"
|
||
|
||
"github.com/FloatTech/floatbox/file"
|
||
ctrl "github.com/FloatTech/zbpctrl"
|
||
"github.com/FloatTech/zbputils/control"
|
||
"github.com/FloatTech/zbputils/ctxext"
|
||
zero "github.com/wdvxdr1123/ZeroBot"
|
||
"github.com/wdvxdr1123/ZeroBot/message"
|
||
)
|
||
|
||
var (
|
||
cmd = make([]string, 0)
|
||
datapath string
|
||
cmdMap = map[string]func(cc *context, args ...string) (string, error){
|
||
"搓": cuo,
|
||
"冲": xqe,
|
||
"摸": mo,
|
||
"拍": pai,
|
||
"丢": diu,
|
||
"吃": chi,
|
||
"敲": qiao,
|
||
"啃": ken,
|
||
"蹭": ceng,
|
||
"爬": pa,
|
||
"撕": si,
|
||
"灰度": grayscale,
|
||
"上翻": flipV,
|
||
"下翻": flipV,
|
||
"左翻": flipH,
|
||
"右翻": flipH,
|
||
"反色": invert,
|
||
"浮雕": convolve3x3,
|
||
"打码": blur,
|
||
"负片": invertAndGrayscale,
|
||
"旋转": rotate,
|
||
"变形": deformation,
|
||
"亲": kiss,
|
||
"结婚申请": marriage,
|
||
"结婚登记": marriage,
|
||
"阿尼亚喜欢": anyasuki,
|
||
"像只": alike,
|
||
"我永远喜欢": alwaysLike,
|
||
"永远喜欢": alwaysLike,
|
||
"像样的亲亲": decentKiss,
|
||
"国旗": chinaFlag,
|
||
"不要靠近": dontTouch,
|
||
"万能表情": universal,
|
||
"空白表情": universal,
|
||
"采访": interview,
|
||
"需要": need,
|
||
"你可能需要": need,
|
||
"这像画吗": paint,
|
||
"小画家": painter,
|
||
"完美": perfect,
|
||
"玩游戏": playGame,
|
||
"出警": police,
|
||
"警察": police1,
|
||
"舔": prpr,
|
||
"舔屏": prpr,
|
||
"prpr": prpr,
|
||
"安全感": safeSense,
|
||
"精神支柱": support,
|
||
"想什么": thinkwhat,
|
||
"墙纸": wallpaper,
|
||
"为什么at我": whyatme,
|
||
"交个朋友": makeFriend,
|
||
"打工人": backToWork,
|
||
"继续干活": backToWork,
|
||
"兑换券": coupon,
|
||
"注意力涣散": distracted,
|
||
"垃圾桶": garbage,
|
||
"垃圾": garbage,
|
||
"捶": thump,
|
||
"啾啾": jiujiu,
|
||
"2敲": knock,
|
||
"听音乐": listenMusic,
|
||
"永远爱你": loveYou,
|
||
"2拍": pat,
|
||
"顶": jackUp,
|
||
"捣": pound,
|
||
"打拳": punch,
|
||
"滚": roll,
|
||
"吸": suck,
|
||
"嗦": suck,
|
||
"扔": throw,
|
||
"锤": hammer,
|
||
"紧贴": tightly,
|
||
"紧紧贴着": tightly,
|
||
"转": turn,
|
||
"蒙蔽": mengbi,
|
||
"踩": cai,
|
||
"好玩": haowan,
|
||
"2转": whirl,
|
||
"2滚": push,
|
||
"踢球": tiqiu,
|
||
"2舔": lick,
|
||
"可莉吃": klee,
|
||
"胡桃啃": hutaoken,
|
||
"怀": huai,
|
||
"砰": peng,
|
||
"你犯法了": fanfa,
|
||
"炖": dun,
|
||
"2蹭": ceng2,
|
||
"诶嘿": eihei,
|
||
"膜拜": worship,
|
||
"吞": ci,
|
||
"揍": zou,
|
||
"给我变": bian,
|
||
"玩一下": van,
|
||
"不要看": neko,
|
||
"小天使": xiaotianshi,
|
||
"你的": youer,
|
||
"我老婆": nowife,
|
||
"远离": yuanli,
|
||
"抬棺": taiguan,
|
||
}
|
||
)
|
||
|
||
func init() { // 插件主体
|
||
for k := range cmdMap {
|
||
cmd = append(cmd, k)
|
||
}
|
||
en := control.Register("gif", &ctrl.Options[*zero.Ctx]{
|
||
DisableOnDefault: false,
|
||
Help: "GIF制图,命令后艾特群友/QQ号/一张图方可触发命令\n其中XXX可以为任何文字,可以不写\n对机器人操作请先艾特机器人再执行命令\n" +
|
||
"- 搓|-冲|-摸|-拍|-丢|-吃|-敲|-啃|-蹭|-爬|-撕|-灰度|-上翻|-下翻\n" +
|
||
"- 左翻|-右翻|-反色|-浮雕|- 打码|- 负片|- 旋转|- 变形|- 亲\n" +
|
||
"- 结婚申请|结婚登记|- 阿尼亚喜欢XXX|- 像只|- 我永远喜欢XXX\n" +
|
||
"- 像样的亲亲|- 国旗|- 不要靠近|- 万能表情|-空白表情|- 采访\n" +
|
||
"- 需要|-你可能需要|- 这像画吗|- 小画家|- 完美|- 玩游戏|- 出警\n" +
|
||
"- 警察|- 舔|舔屏|prpr|- 安全感|- 精神支柱|- 想什么|- 墙纸\n" +
|
||
"- 为什么at我|- 交个朋友|- 打工人|-继续干活|- 兑换券|- 炖\n" +
|
||
"- 垃圾桶|- 垃圾|- 捶|- 啾啾|- 2敲|- 听音乐|- 永远爱你|- 2拍\n" +
|
||
"- 顶|- 捣|- 打拳|- 滚|- 吸|- 嗦|- 扔|- 锤|- 紧贴|紧紧贴着|- 转\n" +
|
||
"- 抬棺|- 远离|- 我老婆|- 小天使XXX|- 你的XXX|- 不要看\n" +
|
||
"- 玩一下XXX|- 给我变|- 揍|- 吞|- 膜拜|- 诶嘿|- 2蹭|- 你犯法了\n" +
|
||
"- 砰|- 注意力涣散|- 蒙蔽|- 踩|- 好玩|- 2转|- 踢球|- 2舔|\n" +
|
||
"- 可莉吃|- 胡桃啃|- 怀",
|
||
PrivateDataFolder: "gif",
|
||
}).ApplySingle(ctxext.DefaultSingle)
|
||
datapath = file.BOTPATH + "/" + en.DataFolder()
|
||
en.OnRegex(`^(` + strings.Join(cmd, "|") + `)[\s\S]*?(\[CQ:(image\,file=([0-9a-zA-Z]{32}).*|at.+?(\d{5,11}))\].*|(\d+))$`).
|
||
SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||
c := newContext(ctx.Event.UserID)
|
||
list := ctx.State["regex_matched"].([]string)
|
||
err := c.prepareLogos(list[4]+list[5]+list[6], strconv.FormatInt(ctx.Event.UserID, 10))
|
||
if err != nil {
|
||
ctx.SendChain(message.Text("ERROR:", err))
|
||
return
|
||
}
|
||
argslist := strings.Split(strings.TrimSuffix(strings.TrimPrefix(list[0], list[1]), list[2]), " ")
|
||
picurl, err := cmdMap[list[1]](c, argslist...)
|
||
if err != nil {
|
||
ctx.SendChain(message.Text("ERROR:", err))
|
||
return
|
||
}
|
||
ctx.SendChain(message.Image(picurl))
|
||
})
|
||
}
|