// Package gif 制图 package gif import ( "strconv" "strings" ctrl "github.com/FloatTech/zbpctrl" "github.com/FloatTech/zbputils/control" "github.com/FloatTech/zbputils/ctxext" "github.com/FloatTech/zbputils/file" 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)) }) }