维护花了一点时间,抱歉。。。。。。。。。
在本次攻击事件中暴露了一些网站安全性相关的问题。为了应对未来可能遭遇的各种类型的攻击。在这段时间里我们可能会进行各种安全相关的更新。
本次更新新增了发帖验证码系统,任何人发布新主题或者是回帖都需要完成验证码。
此外我们建立了MiraiForumGithub组织,开放了几个由我们编写的插件,欢迎大家提出意见或者是建议。如果无法通过论坛联系我们也可以通过组织联系我们。
请阅读: 论坛规则 常见问题QA 无法登录的临时处理方案
源代码和文档: mamoe/mirai, docs.mirai.mamoe.net
闲聊TG群: @mirai_mamoe, Gitter群 mamoe/mirai
“不好!这里要撑不下去了”
“A4 求救,A4 求救,A32 地区的沙雕数量超过阈值,即将突破防线!”
“什么!?啧。。”
“B8 已完成沙雕清除任务,现赶往 A32 地区”
“这样。。什么时候是个头啊。。”
如果想订阅本贴更新可以点击右上角铃铛🔔按钮
【持续时间】
1970.1.1 ~ 114514.12.31
【活动内容】
糟糕!沙雕小别墅遭到了从未知之处涌出的沙雕攻击,防御工事濒临崩溃,如果能用其他的方法击退它们的话。。
对了!沙雕图!
【参与方式】
在本贴中回复沙雕图,协助沙雕防御工事击退沙雕。
【活动奖励】
从其他 miraier 获取的沙雕图!是不是非常丰厚呢?
【注意事项】
遵守摸鱼区规则。
是沙雕图不是涩图!
【样例】
3c2dfb62-5555-4c00-a17b-d76715bf2088-image.png
因为俺身上发生了一些事情,所以更新暂停力QAQ。
——关于GOCQ的快速登陆建议——使用俺维护的GOCQ维护分支:https://github.com/ProtocolScience/AstralGocq
登录流程巨大优化(如果出现签名异常,可以修改config移除ws协议的签名,该属于实验性特性)
开源了一个没有完全过检测的版本,可以正常运行高版本的so文件,希望起到抛砖引玉,促进研究的作用 https://github.com/zhaodice/Astral-QSignigngnn
——出现CC攻击后的措施——当服务器负载较大时,优先拒绝消耗量较大的IP的请求,如需IP白名单请联系。
——服务器目前开放的版本——9.0.55-9.0.95
9.1.0-9.1.15
(这就是直连的下场,由于被打流量打成黑洞,已无法连接)
服务器地址(自2024-08,租赁1年时间):http://8.216.82.28/
服务器地址(主要A,cloudflare):https://qsign.trpgbot.com
服务器地址(CDN线路):http://qsign-v3.trpgbot.com
服务器地址(端口转发,月流限制1G):http://qsign.w1.luyouxia.net
服务器地址(主要B,huggingface):https://zyr15r-astralqsign.hf.space
——注意事项——新的key:miraibbs
对本贴内容做了门户:https://qsign-guide.trpgbot.com/
1.服务器已全部迁移至主服务器,处理了一下主机的散热器问题,现在性能应该足够了。
2.除了 qsign.trpgbot.com ,其他的都是它的镜像,如果有条件也可以自己反向代理
ANDROID_PAD
{ "apk_id": "com.tencent.mobileqq", "app_id": 537220362, "sub_app_id": 537220362, "app_key": "0S200MNJT807V3GE", "sort_version_name": "9.0.56.16830", "build_time": 1713424357, "apk_sign": "a6b745bf24a2c277527716f6f36eb68d", "sdk_version": "6.0.0.2560", "sso_version": 21, "misc_bitmap": 150470524, "main_sig_map": 34869472, "sub_sig_map": 66560, "dump_time": 1713424357, "qua": "V1_AND_SQ_9.0.56_6372_YYB_D", "protocol_type": 6 } Mirai - 傻瓜式插件直接安装插件即可正常登录 https://github.com/MrXiaoM/fpv/releases/tag/v1.13.1
(它属于 fix-protocol-version 插件的开发分支,因为功能相同所以可能冲突,一山不容二虎哦,使用时请注意禁用相关插件)
mirai KFCFactory.json 使用配置:
{ "9.0.56": { "base_url": "https://qsign.trpgbot.com", "type": "fuqiuluo/unidbg-fetch-qsign", "key": "miraibbs" } }同时请另存为 协议配置文件(ANDROID_PAD)的数据内容到 ANDROID_PAD.json ,数据内容上文已给出
控制台输入 protocol load ANDROID_PAD
即可用ANDROID_PAD协议登录你的QQ
gocq config.yml使用配置:
sign-servers: - url: 'http://8.216.82.28/' key: 'miraibbs' authorization: '-' - url: https://qsign.trpgbot.com/' key: 'miraibbs' authorization: '-' auto-register: true同时请另存为 协议配置文件(ANDROID_PAD)的数据内容到 /data/versions/6.json ,数据内容上文已给出
测试结果607af2d3-ed77-49ea-a9b5-b3ac8adb98c4.png
新注册的账号使用本sign,在24小时后仍未出现冻结现象,证明已经通关。
有任何问题欢迎进行交流讨论,最后感谢fuqiuluo提供的unidbg调用思路以及各位逆向工作者的支持。
更新啦~(≧▽≦)/~
版本v1.1
插件地址: ChineseChess
这是一个用java写的中国象棋插件
效果展示
功能介绍
如何使用
项目地址
效果展示
红黑方视角
1.黑方"士6进5"行棋完毕,出现黑方走子提示。当前该红方行棋,所以棋盘是红方视角。
1.jpg
2.红方"炮8进7"行棋完毕,出现红方走子提示。当前该黑方行棋,所以棋盘是黑方视角。
2.jpg
棋盘和棋子风格
3.支持棋盘风格,棋子风格的切换(需要对应素材)。目前上传了几款棋盘风格,可以在imgae/map/文件夹下查看
3.1 花时舞者-神里凌华
3.jpg
3.2 清凉夏日-猫羽雫
4.jpg
注:双方的棋盘和棋盘风格是独立的,棋子和棋盘也可以任意搭配
别急,看看下面再走啊
功能介绍
目前完成了基本的中国象棋功能,需通过标准命令(棋谱命令)行棋
双人棋和四人棋(联棋),多人棋
5.jpg
盲棋
开启盲棋功能则不发送图片,改为发送文字提示,盲棋功能可随时关闭
7.jpg
其他功能:悔棋,认输,换人,掀棋盘等
注:考虑到难度与性能问题,暂时没有绝杀判断,需要吃掉对方的将帅或者认输才能判定输赢
插件地址: ChineseChess
克隆: git clone https://github.com/BigCherryBall/ChineseChess.git
Petpet - 生成各种奇怪的图片 已更新 1.0.0-beta3 版本, 支持多线程, 可自定义 头像 文字 坐标 概率 关键词 频率限制 等参数项目地址 releases 前端版本 / 功能预览
如果你觉得此插件对你有帮助, 请在此帖下回复不错的插件 让更多人看到, 这对我非常重要!
PetpetMirai version
GitHub
GitHub all releases
GitHub Repo stars
GitHub release (latest by date)
GitHub issues
GitHub closed issues
GitHub closed pull requests
自定义合成图片的 Mirai 插件 / 独立程序 / gocq-http插件, 灵感/部分数据来自 nonebot-plugin-petpet。
原生 java 编写, kotlin仅用于数据序列化, 使用底层API, 多线程优化: 轻量, 高性能, 易拓展
特别注意本贴为旧版项目文档仅供参考,新版文档请前往 Github 项目页查看
使用方法 单独运行下载 最新版本 petpet.jar 或 petpet-no-ws.jar
下载 图片素材
将图片素材放入 ./data/xmmt.dituon.petpet/ 目录
运行 start.bat 或 start.sh, 可自行更改配置文件 config.json, 重启后生效
参考WebServer一节 发起网络请求 / 或使用WebUI
Mirai插件部署 Mirai 机器人框架
下载 最新版本
将插件放入 Mirai/plugins/
下载 图片素材
将图片素材放入 Mirai/data/xmmt.dituon.petpet/
启动 Mirai, 可自行更改配置文件 Petpet.yml, 重启后生效 (参考 配置项说明)
使用 戳一戳 有 30% 的概率触发; 或发送 pet @xxxpet key @xxx 或 key @xxx 可返回指定图片 例如 pet kiss @xxx kiss @xxx
可通过发送的图片生成Petpet kiss [图片], 支持GIF
可通过回复构造图片, 例如 [图片] -> [回复[图片]] 对称
gocq-http插件可使用 pet指令 获取 keyList
Warning
此功能处于测试阶段, 目前仅能通过key生成图片, 请期待后续开发!
部署 gocq-http 机器人框架, 设置正向 WebSocket 监听 (默认端口为8080)
更改 gocq-http 配置项 message.post-format 为 array
下载 最新版本 petpet.jar
下载 图片素材
将图片素材放入 ./data/xmmt.dituon.petpet/ 目录
cd ./ java -jar petpet.jar -gocq, 可自行更改配置文件 gocq-config.json, 重启后生效
配置文件 配置项说明<details>
<summary>展开/收起</summary>
<br/>
probability: 30触发petpet指令, 默认为pet
例: pet @xxx pet kiss @xxx
仅发送pet时会返回keyList
<br/>
antialias: true戳一戳 触发概率, 0-100整数, 默认为 30%
<br/>
resampling: true画布抗锯齿, 默认为true
<br/>
disabled: []重采样缩放, 启用后头像质量更高, 可对模板单独配置
<br/>
keyCommandHead: ''禁用表列, 默认为空, 在此数组中的key不会被随机触发 (会覆盖data.json中的配置)
<br/>
respondReply: truekey作为指令头时的前缀, 默认为空
例 (配置项为'#'时): #kiss @xxx osu hso!
<br/>
cachePoolSize: 10000响应回复的消息, 默认为true
可通过回复消息 定位到之前发送的图片并构造petpet
启用后 会缓存接收到的图片(见cachePoolSize)
例 : [回复[图片]]kiss(等价于 kiss [图片])
<br/>
respondSelfNudge: falserespondReply=true时, 图片消息缓存池大小, 默认为10000
本质为HashMap<imageId(long), imageUrl(String)>, 超过此限制会清空Map
<br/>
keyListFormat: FORWARD某些情况下, 机器人会主动戳其他成员, 响应机器人自己发出的戳一戳, 默认为false
<br/>
disablePolicy: FULL发送pet时 keyList响应格式, 默认为FORWARD
枚举: MESSAGE(发送普通消息) FORWARD(发送转发消息) IMAGE(发送图片)
<br/>
fuzzy: false发送pet on/off时 禁用哪些功能, 默认为FULL
枚举: NONE(无效) NUDGE(只禁用戳一戳) MESSAGE(只禁用指令) FULL(同时禁用戳一戳和指令)
strictCommand: true模糊匹配用户名, 默认为false
例 : (配置项为true时): kiss @田所浩二(响应) kiss 浩二(响应)
<br/>
synchronized: false严格匹配指令, 默认为true
人话: 可以省略key后的空格
例 : (配置项为false时): kiss 田所(响应) kiss田所(响应)
<br/>
gifEncoder: ANIMATED_LIB消息事件同步锁, 会锁住相同的消息事件, 默认为false
人话: 多机器人对于同一条指令只有一个会响应
<br/>
GIF编码器, 默认为ANIMATED_LIB
枚举:
编码速度较慢, 所需堆内存小, 生成Gif体积小
BUFFERED_STREAM:
基于缓存的STREAM流, 在编码过程中对Gif进行压缩;ANIMATED_LIB:
编码速度极快, 所需堆内存较多, 生成Gif体积较小
基于byte[]序列, 使用多线程分析像素;
<br/>
gifMaxSize: []gifQuality: 5GIF缩放阈值/尺寸, 默认为空 (不限制)
[width, height, frameLength]:
当Gif长度超过frameLength时, 会对Gif进行等比例缩放
注: 缩放在图片合成时进行, 不会影响性能
例: (配置项为[200, 200, 32]时)
当Gif长度超过32帧时, 检查Gif尺寸 当Gif尺寸大于200*200时, 对Gif进行等比例缩放 Gif缩放后 最长边不会超过设定值
(当Gif中包含40帧, 尺寸为300*500时) 输出的Gif长度不变, 尺寸为120*200
headless: trueGif编码质量(1-49), 默认为5
数字越小, 速度越慢, 质量越好 (大于20时, 速度不会有明显提升)
仅适用于ANIMATED_LIB编码器
autoUpdate: true启用headless模式, 默认为true
人话: 有些服务器没有输入输出设备, 画图库无法正常运行, 启用这个配置项可以修复, 因为总是有人不看常见问题, 干脆默认启用了(
<br/>
repositoryUrl: 'https://dituon.github.io/petpet'自动更新PetData, 每次启动时都会检查并自动下载船新pet, 默认为true
注: 仅更新PetData, 不会更新插件版本, 请放心食用
人话: 每次启动都会自动下载新的超赞梗图, 墙裂推荐
<br/>
devMode: false仓库地址, 用于自动更新, 默认为此仓库的github page
messageHook: false开发模式, 启用后任何人都能使用pet reload指令热重载PetData, 默认为false
<br/>
coolDown: 1000消息注入, 参考MessageHook, 默认为false
<br/>
groupCoolDown: -1成功触发指令后对该用户的冷却时间(单位为毫秒), 默认为 1000
设置为 -1 可禁用冷却
<br/>
inCoolDownMessage: 技能冷却中...成功触发指令后对该群聊的冷却时间, 默认为 -1
<br/>
在冷却时间中触发命令的回复消息
配置项为[nudge]时, 会以戳一戳形式回复
<br/>
</details>
修改后重启 Mirai 以重新加载
权限管理群主或管理员使用 pet on pet off 以 启用/禁用 戳一戳
pet on/off指令控制的事件可在配置文件中更改
图片预览 自定义 data.json可在配置文件中禁用指定key, 被禁用的key不会随机触发, 但仍可以通过指令使用
./data/xmmt.dituon.petpet/ 下的目录名为 key ,插件启动时会遍历 ./data/xmmt.dituon.petpet/$key/data.json
data.json 是模板配置文件, 程序解析此文件以生成图像
{ "type": "GIF", "avatar": [], "text": [], "delay": 50, "alias": [ "别名1", "别名2" ] } 属性 类型 注释 默认值 type 模板类型枚举 图片类型枚举, IMG或GIF 必须 avatar Avatar 数组 头像配置数组, 见下文 必须 text Text 数组 文本配置数组, 见下文 必须 inRandomList 布尔值 是否在随机列表中 false reverse 布尔值 GIF是否倒放 false delay 整数 帧间延时 (毫秒) 65 background Background 背景配置, 见下文 null alias 字符串数组 别名数组 [] hidden 布尔值 是否隐藏 false 模板类型枚举 GIF 动图, 程序会读取目录下所有.png格式的图像 IMG 静态图片, 程序会读取目录下随机.png格式的图像 头像程序支持复杂的图像处理, 包括裁切, 旋转, 透明度, 滤镜等
{ "avatar": [ { "type": "FROM", "pos": [[92, 64, 40, 40], [135, 40, 40, 40], [84, 105, 40, 40]], "round": true, "rotate": false, "avatarOnTop": true, "angle": 90 }, { "type": "TO", "pos": [[5, 8], [60, 90], [50, 90], [50, 0], [60, 120]], "posType": "DEFORM", "opacity": 0.5 } ] } 属性 类型 注释 默认值 type 头像类型枚举 见下文, 例如FROM或TO 必须 pos 坐标数组 头像的坐标信息 必须 posType 坐标格式枚举 坐标格式枚举, ZOOM或DEFORM ZOOM round 布尔值 头像是否裁切为圆形 false avatarOnTop 布尔值 头像图层是否在背景之上 true angle 整数 头像的初始角度 0 origin 旋转原点枚举 头像的旋转原点 DEFAULT opacity 浮点数 头像的不透明度 1.0 rotate 布尔值 GIF类型的头像是否旋转 false fit 填充模式枚举 填充模式枚举, 可以是CONTAIN或FILL FILL crop 裁切坐标数组 头像裁切坐标信息 null cropType 裁切格式枚举 见下文 NONE style 风格化枚举数组 风格化枚举数组, 见下文 [] filter 滤镜对象数组 滤镜数组, 见下文 [] antialias 布尔值 是否使用抗锯齿算法, 默认跟随全局配置 null resampling 布尔值 是否使用重采样缩放, 默认跟随全局配置 null头像类型枚举 type
FROM 发送者头像 TO 接收者头像, 或构造的图片 GROUP 群头像 BOT 机器人头像 RANDOM 随机头像 (随机从群聊成员中选择, 不会重复) 坐标坐标格式枚举posType
ZOOM 缩放, 通过 x, y, width, height 表示图像 DEFORM 变形, 通过四点坐标来表示图像 ZOOMZOOM 缩放坐标的基本组成单位是 4长度 int[] 数组
其中,前两项为 左上角顶点坐标, 后两项为 宽度和高度
例:
[65, 128, 77, 72] 即 头像的左上角顶点坐标是 (65,128), 宽度为 77, 高度为 72
如果是 GIF 类型,坐标应为二维数组,GIF 的每一帧视为单个图像文件
{ // pos的元素对应GIF的4帧 "pos": [[65, 128, 77, 72], [67, 128, 73, 72], [54, 139, 94, 61], [57, 135, 86, 65]] }如果是IMG类型, 可以使用一维数组
{ "pos": [0, 0, 200, 200] }坐标支持变量运算, 例如 [100,100,"width/2","height*1.5^2"]
坐标变量
width 原图宽度 height 原图高度 DEFORMDEFORM 仿射变换坐标格式为 [[x1,y1],[x2,y2],[x3,y3],[x4,y4],[x_anchor,y_anchor]];
分别对应图片的[[左上角],[左下角],[右下角],[右上角],[锚点]],四角坐标用相对于锚点的偏移量表示
旋转原点枚举 origin
DEFAULT 左上角 CENTER 中心 裁切图片裁切坐标 [x1, y1, x2, y2], [0, 0, x2, y2] 可简写为 [x2, y2]
裁切格式枚举 cropType
NONE 不裁切 PIXEL 按像素裁切 PERCENT 按百分比裁切填充模式 fit
CONTAIN 缩小以适应画布, 不改变原比例 COVER 裁切以适应画布, 不改变原比例 FILL 拉伸, 改变原比例风格化枚举 style
MIRROR 水平镜像 FLIP 上下翻转 GRAY 灰度化 BINARIZATION 二值化 滤镜 filter通过滤镜实现头像特效, Java 与 JavaScript 版本实现有偏差, 并非完全相同
{ "filter": [ { "type": "SWIRL", "radius": 200, "angle": 5.0 } ] } 滤镜类型 type SWIRL 对应 AvatarSwirlFilter BULGE 对应 AvatarBulgeFilter BLUR 对应 AvatarBlurFilter CONTRAST 对应 AvatarContrastFilter HSB 对应 AvatarHSBFilter HALFTONE 对应 AvatarHalftoneFilter DOT_SCREEN 对应 AvatarDotScreenFilter NOISE 对应 AvatarNoiseFilter DENOISE 对应 AvatarDenoiseFilter 滤镜对象 AvatarSwirlFilter 对象, 漩涡滤镜 属性 类型 注释 默认值 radius 浮点数 涡旋半径, 值为0时表示图片半径 0.0 angle 浮点数 涡旋角度 3.0 x 浮点数 中心点X坐标百分比 0.5 y 浮点数 中心点Y坐标百分比 0.5 AvatarBulgeFilter 对象, 膨胀收缩滤镜 属性 类型 注释 默认值 radius 浮点数 膨胀半径, 值为0时表示图片半径 0.0 strength 浮点数 膨胀强度 [-1, 1], 负数时产生收缩效果 0.5 x 浮点数 中心点X坐标百分比 0.5 y 浮点数 中心点Y坐标百分比 0.5 AvatarBlurFilter 对象, 模糊滤镜 属性 类型 注释 默认值 radius 浮点数 模糊半径 10.0 AvatarContrastFilter 对象, 亮度对比度滤镜 属性 类型 注释 默认值 brightness 浮点数 亮度 0.0 contrast 浮点数 对比度 0.0 AvatarHSBFilter 对象, 相对HSB (色相, 饱和度, 亮度) 滤镜 属性 类型 注释 默认值 hue 浮点数 色相 0.0 saturation 浮点数 饱和度 0.0 brightness 浮点数 亮度 0.0 AvatarHalftoneFilter 对象, 半色调滤镜 (模仿彩色印刷的CMYK色彩) 属性 类型 注释 默认值 angle 浮点数 角度 0.0 radius 浮点数 半径 4.0 x 浮点数 中心点X坐标百分比 0.5 y 浮点数 中心点Y坐标百分比 0.5 AvatarDotScreenFilter 对象, 单色点阵滤镜 (模仿黑白印刷品) 属性 类型 注释 默认值 angle 浮点数 角度 0.0 radius 浮点数 半径 4.0 x 浮点数 中心点X坐标百分比 0.5 y 浮点数 中心点Y坐标百分比 0.5 AvatarNoiseFilter 对象, 噪声滤镜 属性 类型 注释 默认值 amount 浮点数 噪声强度 0.25 AvatarDenoiseFilter 对象, 降噪滤镜 属性 类型 注释 默认值 exponent 短整数 指数 20 文字如果你想在图片上添加文字,可以编辑 text
{ "text": [ { "text": "Petpet!", // 文字内容 "color": "#66ccff", // 颜色, 默认为#191919 "pos": [100, 100], // 坐标 "size": 24 // 字号, 默认为12 }, { "text": "发送者: $from, 接收者: $to", // 支持变量 "pos": [20, 150], // 坐标 "position": ["CENTER", "BOTTOM"], //坐标计算基准([x, y]) "font": "宋体", // 字体, 默认为黑体 "strokeColor": "#ffffff", // 描边颜色 "strokeSize": 2 // 描边宽度 }, { "text": "$txt1[我]超市$txt2[你]!", // 支持关键词变量 "pos": [0,200,300], // 第三个值为文本最大宽度 "align": "CENTER", // 对齐方式, 默认为LEFT "wrap": "ZOOM", // 显示设置, 默认为NONE "style": "BOLD" // 字体样式, 默认为PLAIN } ] } 属性 类型 注释 默认值 text 字符串 文本内容 必须 pos 数组 文本的坐标信息 必须 color 字符串 文本颜色 #191919 size 整数 文本字号 12 angle 整数 头像的初始角度 0 origin 旋转原点枚举 文字的旋转原点 DEFAULT position 数组 文本坐标计算基准 [LEFT, TOP] font 字符串 字体 黑体 strokeColor 字符串 文本描边颜色 null strokeSize 整数 文本描边宽度 0 align 字符串 文本对齐方式 LEFT wrap 字符串 文本显示设置 NONE style 字符串 字体样式 PLAIN greedy 布尔值 是否贪婪匹配多余的关键词 false变量
$from : 发送者, 会被替换为发送者昵称 $to : 接收者, 被戳或At的对象 $group : 群名称 $txt(i)[(xxx)] : 文本变量, 可用于生成meme图, i为关键词索引, xxx为默认值; 例: $txt1[我]超市$txt2[你] 指令为 pet [key] 我 你font
在data/fonts目录下的字体文件会注册到环境中
align
LEFT: 左对齐, 文本基线是标准的字母基线 RIGHT: 右对齐, 文本基线是标准的字母基线 CENTER: 居中对齐, 文本基线在文本块的中间wrap
NONE: 不换行 BREAK: 自动换行, 超过最大宽度的文本会显示在下一行 ZOOM: 自动缩放, 缩放字体大小以填充最大宽度使用BREAK或ZOOM时, maxWidth 默认为 200
style
PLAIN: 默认 BOLD: 粗体 ITALIC: 斜体 BOLD_ITALIC: 粗体与斜体position
LEFT: 左定位(默认) RIGHT: 右定位 TOP: 上定位(默认) BOTTOM: 下定位 CENTER: 居中定位 background程序支持动态创建画布
{ "background": { "size": ["avatar0Width*2","avatar0Height"], //支持变量运算 "color": "#f0f0f0" } }坐标变量
avatar(i)Width i号头像(i为定义头像时的顺序, 从0开始)处理后的宽度 avatar(i)Height i号头像处理后的高度 text(i)Width i号文本渲染后的宽度 text(i)Height i号文本渲染后的高度 MessageHook本特性仅适用于 Mirai 插件, 消息注入, 插件会检查将要发送的消息 解析后注入图片, 可配合各类消息回复插件使用
<pet></pet> 标签中的JSON会被解析, 请求格式参考 WebServer.POST
用例:
这段文字之后的标签会变成一张图片发送<pet>{ "key": "petpet", "to": { "qq": 2544193782 }, "textList": [ "text1" ] }</pet>消息的顺序会被正确处理, 支持多张图片不同于 POST 请求格式, 你可以用 "qq" 令程序自动获取头像和昵称, 也可以自定义"name" "avatar"
(更推荐自定义的做法, 程序可能在某些情况下无法推断出正确的"name")
WebServer被"hidden": true隐藏的模板会正常调用
此功能默认禁用, 需在配置文件中启用messageHook: true
程序可作为http服务器 / API单独运行, 被其它项目/语言使用
java -jar petpet.jar
启动时会生成 config.json:
{ "port": 2333, // 监听端口 "webServerThreadPoolSize": 10, // HTTP服务器线程池容量 "dataPath": "data/xmmt.dituon.petpet", // PetData路径 "preview": false, // 启用动态预览 (启动时生成所有模板预览) "antialias": true, // 启用抗锯齿, 详见上文 "resampling": true, // 启用重采样, 详见上文 "gifMaxSize": [200, 200, 32], // GIF缩放阈值, 详见上文 "gifEncoder": "ANIMATED_LIB", // GIF编码器, 详见上文 "gifQuality": 5, // GIF质量, 详见上文 "threadPoolSize": 0, // GIF编码器线程池容量, 详见上文 "headless": true // 使用headless模式 }程序使用com.sun.net.httpserver实现http服务器
PetServer API访问 127.0.0.1:2333/petpet 以获取 PetDataList
GET使用 GET 传递参数, 例如 127.0.0.1:2333/petpet?key=petpet&toAvatar=$avatarUrl
127.0.0.1:2333/petpet?key=osu&textList=hso!
结构
<details>
<summary>展开/收起</summary>
使用 POST 传递参数, 例如 127.0.0.1:2333/petpet
{ "key": "petpet", "to": { "name":"d2n", "avatar":"https://q1.qlogo.cn/g?b=qq&nk=2544193782&s=640" }, "randomAvatarList": [ "url" ], "textList": [ "text" ] }其中, key为必须项, 其它可以省略
form-data可直接将图片二进制文件上传至服务器进行处理
类似于 GET数据结构, 使用 multipart/form-data
语言 示例 javascript post.js get.js python example.py php example.php WebUI可参考example-script中的代码实现请求
启动WebServer后即可使用WebUI
启用preview配置项以加载WebUI模板预览 (可选, 默认关闭)
修改 server-config.json preview: true 常见问题戳一戳无法触发?
检查 Mirai 登录协议, 仅 ANDORID_PHONE 可以收到 戳一戳 消息
没有生成配置文件?
Mirai 2.11.0 提供了新的 JavaAutoSaveConfig 方法, 请更新Mirai版本至 2.11.0 (不是2.11.0-M1), 旧版本不支持自定义配置项
Could not initialize class java.awt.Toolkit?
对于无输入输出设备的服务器 需要启用headless
自动更新下载速度慢 / 无法连接远程资源?
修改Petpet.yml中repositoryUrl的值为'https://ghproxy.com/https://raw.githubusercontent.com/Dituon/petpet/main'(高速镜像)
自动更新后 读取data.json出错?
自动更新时网络出错导致, 删除出错的文件 重新获取即可
其它错误? 问题?
性能 & 兼容性若此文档无法解决您的问题, 欢迎提交issue
程序使用底层java.awt类合成图片, 渲染时使用多线程, 静态图片渲染时间一般不会超过1ms
对GIF编码器的分析, 转换, 映射部分进行多线程优化, 速度极快
Android JVM没有实现java.awt, 推荐使用JDK 11+版本
分享你的作品 (模板)如果你想分享自定义的 Petpet, 欢迎Pr
二次开发程序提供超多实用API 拓展性极强, 附有互动式开发实例, 欢迎初学者学习!
互动式开发实例 参见test.moe.dituon.petpet.example.HelloPetpet
在别的项目二次开发: mirai-simplepetpet-plugin
后话如果此插件和您预期的一样正常工作,请给我一个 star
欢迎提交任何请求
交流群: 922959760
效果展示:
2.png 1.png
下载地址:
https://github.com/BigCherryBalls/MsgRankCard/tree/mirai_plugin
群号:780594692
点击加群
欢迎加入本群!本群为纯公益交流群,旨在提供自由、平等、公正的交流环境。
允许测试机器人,但请勿影响他人或导致封群风险。 绝不无故禁言、滥用@全体成员,尊重每位成员的体验。 永久运营,永不解散,且完全非盈利。 禁止内容为确保良好氛围,严禁讨论:
❌ 政治相关
❌ 违法内容
❌ 广告/商业行为
❌ 色情/低俗内容
❌ 恶意刷屏、引战等滥用行为
入群即视为同意:
用户需对自身言行负责,群内一切行为与群主、管理员及平台无关。 本群不承担任何法律或经济责任。一个娱乐插件
被草和草人的都沉默了
指令可单独配置
可调整超人时间未到语句上传的图片
需要在
data/com.purewhite.entertainment/No
data/com.purewhite.entertainment/Yes
下塞入图片
插件启动后该文件夹会创建 直接塞入图片即可无需重启
现在还有hf能用但是负载很高,且用且珍惜。
截止昨天晚上异地备用服务器也不能再连接了(社区反代也同时被关闭)
高版本能用的签名也不是真的没有了,但是在座的各位如果现在不知道以后也不会知道的,可以当做是死了。(顺带一提也是赵怡然技术)
有部分备用的签名源但是版本很低(最高到9.0.90),服务器性能也极其拉胯,并且备胎不是很愿意直接公开(其实也是有几个人知道的,topic/2673里面提过一个网友赞助的服务器,其实也是备胎但是已经死了,别的地方留下来了一点火星子随时可能灭)。
能用的hf高负载,频繁出现签名错误
主要服务器在线(社区反代提供的状态信息,很神奇的情况居然还在线),但是访问就502(包括所有没关闭的社区反代和CDN线路),也就是说服务端被关
备胎服务器正常运转,低版本可用,但是地址不公开
其他人手里的服务器高版本正常运转,但是不公开
时代已经彻底落幕,我们只需要记得赵怡然和fuqiuluo就好,至于机器人的存活情况无法作任何预测,开发者该何去何从并非此贴考虑的问题,这个圈子能否继续存在下去也成了一个很大的问题。
最后的最后希望大家可以生活愉快,不受这次事情的影响。
函数调用允许我们在给bot指令时,无需再遵循特定指令格式,而是由bot自行根据聊天上下文判断是否调用函数以及相应参数。
预览e50375ee-2178-4c55-9374-7641afaf0c34-6e032602f5687ace7e783684c47bd2ce_720.jpg
即使不接入qq,在webui同样可以使用bot。
6df26699-daed-4845-b602-f53dfd386add-a2eabdad079c9d50e26749a48c6e1b8a_720.png
我的另一个项目Manyana(依赖mirai api http)目前已基本停止维护,在overflow+onebot实现成为主流方案的当下,对python开发者来说,直接对接onebot实现或许是更好的选择。
项目地址 部署1.下载整合包 整合包已打包bot运行所需环境,无需额外配置环境。
如需接入qq作为机器人,请部署onebot实现(napcat或llob)并开启它们的正向websocket服务,即以onebot实现作为websocket server,端口设置为30012.解压整合包,用克隆工具.exe选择一个源并回车,等待克隆完成
此时运行【启动脚本.bat 】后已可在对话页面进行对话,但默认免费模型无函数调用 建议按照文档在webui配置一个对话模型(gemini最优)后再点击启动脚本3.运行Eridanus/启动脚本.bat
注意最后更新日期 2025/5/10 请关注最新回复
由于楼主文化造纸不高,文中掺杂了很多废话,只阅读粗体字即可了解全部信息,细体字为背景信息补充。
前言众所周知,腾讯几年前为了对标discord和一众竞品推出了秋秋频道,为了对标其它平台的Bot生态开放了仅限频道的官方接口,在开发频道Bot接口时顺便开发了群聊接口,不过仅限内部使用。
不久之后,腾讯官方的群聊Bot陆续上线,例如群聊管家,农药战绩Bot等;这些用新接口的Bot与腾讯之前与微软合作的QQ小冰,BabyQ等烂尾项目最大的区别是带有权限管理系统,例如群主可以指定Bot权限等。这是因为腾讯把内部接口开放给了缴纳保护费的公司开发对应游戏的战绩查询Bot。
经过漫长的便秘开发周期,腾讯终于在去年 (2023) 9月宣布对个人开发者开放群聊接口,代价是需要参加腾讯组织的比赛。
最近腾讯宣布比赛马上结束,现有的接口也基本稳定下来,所以就有了这篇文章。
资质 & 注册注册成为个人开发者,只需要绑定个人身份信息的QQ账户即可;因为几年前的相关部门规定,反而很难找到没有绑定个人信息的账号。
注册网站: q.qq.com
注册后即可创建Bot,默认创建的Bot只有频道接口的开发权限,群聊权限会在近期开放申请,请期待本贴更新。
审核接下来是大部分人关心的审核问题,Bot默认只能在测试频道/群聊中使用,添加到其它频道需要通过审核。
下面的内容包含大量黑框框 你知道的太多了
审核流程平台上上传Bot头像, 指令等基本信息。
填写excel表格,包含bot的功能、用途、测试用例等信息
...表格预览(可能近期失效,下方有截图)
e92f20ce-1ffc-4439-80a3-601457c853f8-image.png
等待过审 (三天到一周时间,周末放假)
更改Bot使用范围为公域 (下文附有腾讯黑话&专有名词解释)
等待过审 (两天到一周时间,周末放假)
(令人迷惑的是为什么腾讯一定要审核两遍,咱也不敢问)
审核时审核员会根据表格里的指令进行测试
也不一定按照表格里的指令测试,笔者就遇到过审核员没有按照表格内对应的格式回复导致审核不通过再等一周
还会假设bot有AI机能尝试聊天
建议: 送审时尽可能阉割以免不通过再等一周,过审后可以随意编辑
文本腾讯对文本审核尺度把握非常迷惑严格,列举几个一般人觉得没问题但腾讯不允许出现的词汇:
上瘾,生病,胸,腿(等身体部位),美国(或任何国家),迪士尼系列的所有名词(米奇,某只黄色的熊等)(任天堂没试过),警察,药
上面的词汇仅限中文,用英文可以过审
能否过审主要取决于审核的心情,每个审核的G点不一样
图片想象一下你的祖母会如何评价Bot发送的图片,这就是腾讯的图片审核标准没有标准
封号过审并不是腾讯拷打你的终点,而是起点,以下列举几个可能导致封号的行为
复读用户发过的消息或发送用户的ID。
复读用户的表情包/图片或处理后发送用户的头像。
在某些日子发送或回复某些词汇,强烈建议了解以避免踩雷。坦克,蛋炒饭等
被举报包含AI回复的功能,AI必须有对应资质。
接口 & SDK 接口架构目前接口有两个大版本,旧版本只能发送频道,新版本群聊和频道皆可
websocket 用于事件通知与简单消息发送
也有http消息发送接口,例如使用formdata发送图片等
官方SDK重要建议:不要使用腾讯官方 Go Node SDK!
重要建议:不要使用腾讯官方 Go Node SDK!
重要建议:不要使用腾讯官方 Go Node SDK!
有Python, Go, Node版本;不建议使用 Go Node,理由如下:
使用旧版接口
缺少类型 (TS类型全是any之类的)
太长时间没更新 (截止到本文撰写,Go与Node SDK上次更新时间是2020年)
笔者没用过 Python SDK,所以持中立态度。
野生SDK有很多,但笔者一个都没用过,体验过的欢迎评论点评,本贴也会积极更新。
Markdown & 按钮大家朝思暮想的md腾讯也有提供,不过目前限制极大(下详)
腾讯把Markdown分为三种
专有名词 门槛 功能 审核/限制 主动 无 根据预先审核过的模板填充变量发送 每月只能发送4条, 模板需要通过审核(每月中旬集中审核) 被动 每日用户 >= 2000 根据预先审核过的模板填充变量发送 回复用户的指令, 模板需要通过审核(每月中旬集中审核) 原生 每日用户 >= 10000 可直接发送md格式的消息 无 限制此外,腾讯还制定了一系列匪夷所思的规则,笔者挑选了几个具有代表性的罄竹难书
URL域名必须备案且经过认证(认证方式是在域名的某个路径放置一个文件)
服务器必须有公网IP(最近突然发公告说Bot必须绑定IP,被骂的挺惨的,腾讯说会考虑取消这个限制 只是套话 应该不会改)
不能获取用户信息(无法获取用户QQ号,昵称,头像等,取而代之的是一长串openid,即使是同一用户在不同群也会有不同的ID,腾讯半年前说会更新)
黑话解释列举一下文档里经常出现的黑话,欢迎补充
黑话 解释 备注 DAU 每日使用过bot的用户数量 主动消息 Bot主动推送的消息 每月只能发送4条,群主/管理员可关闭 被动消息 Bot回复用户的消息 相比主动消息没有发送数量限制 但是会随机吞消息 私域 相对较小的使用场景 女生自用 有加群数量限制,相对限制较少,能监听的事件更多 公域 相对较大的使用场景 公交车 只能监听at相关的事件(目前群bot只能选这个 可能是接口没做好) 全量 相对于白名单的概念,谁都可以用 bot默认是白名单,切换时要审核 后话之前对第三方bot疯狂打压,在笔者看来只是为了给官方接口铺路,但腾讯做了五年还是这样实在令人失望。
以上,想到再补充,本文随意转载,CC-BY-NC-SA 4.0
*由于某人比较懒,在以下内容中DSMR指上述DeepseekMirai,STMR指这个SillyTavernMirai
================================= 鉴于有人喜欢玩酒馆,喜欢那里的角色扮演,喜欢那里的角色卡,喜欢那里的。。。。 于逝! STMR(Silly-Tavern-Mirai),它,来了!简单来说,这个东西就是 DeepseekMirai的改版,添加了一个按照角色卡补齐System字段作为提示词的功能,支持了由关键词触发的世界书,和角色首句回答的功能,旨在优化输出内容,让它看起来更加符合这个角色的人设。如果不知道什么是酒馆,可以去尝试一下,或者是直接下载这个仿的不怎么像的酒馆插件来体验一下哦~
写的不怎么好,凑合玩一下吧....
源码什么的,还是去群里要吧,实在上不了gh
那可以完全忽略以上内容咯,接下来我们开始部署SillyTavernMirai!
首先,下载好对应系统版本的可执行文件(如何下载见文末),直接运行,按照提示,依次输入要求提供的必要信息。d8f07729-c8f2-48cc-b7b8-2e9b1c4b302c-image.png
按回车退出后,重新运行插件,直到显示✦ 开始工作....cb9805de-3668-4591-9d03-bbe0b535fede-image.png
如果出现报错,或者说是闪一下就自动退出了,那么就有可能是你的http-api配置的有点问题。 显示✦ 开始工作....后,和机器人私聊使用%chat 内容就可以与你导入的默认角色卡进行对话了哦! 在最开始时设置的管理员和机器人私聊使用%addg 群号或%addf QQ号就可以在这个群或私聊里使用%chat 内容进行对话了哦! 进阶操作: 在终端窗口里,可以直接使用某些命令来进行快捷操作,1.0版本支持的所有命令如下: #✿ 导入角色卡: /import [角色卡图片路径(可拖拽)] [导入为(新角色名字)] #✿ 修改检测群: /group <add(添加)/del(删除)> <群号> #✿ 修改检测好友: /friend <add(添加)/del(删除)> <好友QQ号> #✿ 退出: /exit但是!这些指令能修改的东西还是太少了!
要修改其他功能,还得是改配置文件。
问题蛮多的,但是还是可以勉强玩玩的(
...酒馆那么多参数,一个一个精细还原真的超级麻烦的,什么正则啊处理顺序啊,所以就没太多浪费时间在这些上(说人话就是没弄)。还有就是世界书,这个插件拼的提示词总是有一个固定的顺序,「对话信息,角色名,和用户角色名」、「已触发的世界书」、「角色提示词」、「对话示例」、「首条信息」,固定的词顺序必然导致卡作者的一些设计想法被直接掩埋,后期(如果用户多的情况下)进行更新也许会优化这个问题。
还有,就是作者是酒馆纯新手(
有些东西还没完全研究明白,还是得请大佬多多指教(
世界书中有些键为空的词,真没理解它是什么作用..
论坛这么多Setu插件就来个反setu插件吧
V3全新升级版,在danbooru的十万张图片上进行了训练,但仅对卡通绘画风格的图片有效
使用MobileNetV3模型并进行了剪枝量化,即使服务器只有单个CPU也能高速推理,并在验证数据集上得到了80%的准确率
使用方式插件不包括任何指令,配置文件含义如下
# 启用的群 enabled_group: - 群号 # questionable等级的阈值 questionable_threshold: 0.5 # 同上,explicit等级要比上面的等级更加se explicit_threshold: 0.5 # 是否撤回 questionable_recall: true explicit_recall: true # 回复内容 questionable_reply: '好涩哦~~~ %score%' explicit_reply: '太涩啦~~~~ %score%'下载地址 https://github.com/mzdluo123/AntiSetu/releases/
V2链接 https://mirai.mamoe.net/topic/694/antisetu-群内反涩图插件/
斗地主,一个能在QQ上斗地主的mirai插件。适用于mirai-console 2.6.7+
1.1.1更新:
修复了结束游戏无限循环和王炸不能炸普通炸弹的bug、更正了部分bot的措辞。使用方法:
将本插件添加至plugins文件夹。
在游戏群内发送“创建游戏”,即可创建一个游戏。
创建游戏后,发送“上桌”即可加入游戏
当上桌人数达3人后,任意玩家发送“开始游戏”即可开始斗
地主。抢地主阶段,发送“不抢”即可不抢,发送“抢”、“抢地主”、即可抢地主。出牌阶段,发送“/<你要出的牌>”在与bot的私聊或者群聊中即可出牌,如“/10jqka”就表示出了一个顺子。发送”过“、”不要“、”要不起“即可跳过。
当管理员发送“结束游戏”时,游戏会被强制结束。
注意,游玩斗地主的群内不要开启发言频率限制,否则会导致bot发不出消息而报错,产生收走了你的牌但没有跳出回合的bug。
插件的特性:
覆盖全部的斗地主规则。 能够自动识别玩家出的牌是否合法。 在私聊中告知玩家所剩的牌。v1.1新特性:
加入货币系统,斗地主能赢钱了 支持胜率的统计与查询未来可能会有的特性:
还没想到,欢迎大家留言游戏指令:
破产时申请补助:在群内输入“/d beg” 查询自己的point数量与胜率:在群内输入“/d me”console指令:
添加群为游戏群:在console输入指令"/dc addgroup <群号>"即可。如"/dc addgroup 123456789"。 添加管理员:在console输入指令"/dc addadmin <QQ号>"即可。如"/dc addadmin 123456789"目前个人搭建机器人进度 - 正在 window 下跑 mcl,在 Android 下用 sakura 做验证码操作, 提示 code 45.
不想一步一步的踩坑了,第三方验证服务什么的还没研究, 自己搭不确定能不能一步到位。
希望有朋友帮忙搭一下 (预算有限,只能v50 红包,当交个朋友)
需求是
主机长期运行 qq 机器人在线(几天重启一次也没关系) http 或者 ws 插件安装,可以让我用 node.js 编写机器人的收发逻辑处理。只需要协助帮忙搭建和登录运行机器人,其他任何业务逻辑都是这边处理的。
本人有服务器有主机,希望可以给个可靠的搭建路径和出错后直接的问题解决办法。