QRSpeed 变量大全

安♡玖特别版

作者:An avatarAn!♡Annie avatar阿玖


DicPro 变量大全:https://pro.icean.moe

https://icean.moe/pro

(哪个更好看呢…)

如何在网页内进行搜索?

智能手机: 一般是 菜单 → 页内查找 或者 菜单 → 工具箱 → 页内查找 你也可以使用 百度 搜索你所使用的浏览器的页内搜索方法。

Windows:Ctrl + F

macOS:⌘command + F

2021/12/30 Edit1 新增&修改:更新日志

目录

QRSpeed 变量大全安♡玖特别版目录变量发言者相关变量%QQ%%昵称%%Title%发言内容相关变量%群号%%GroupName%%参数1%%参数-1%%括号1%%AT0%%ATNUM%%IMG0%%IMGNUM%%FACE0%%FACENEW0%%FACEPRO0%%FACENUM%%FACENEWNUM%%FACEPRONUM%全局变量%主人%%管理员%%Robot%%RobotAuth%%Time%%NDTime%%RobotRunTime%%随机数x-y%%%随机数x-y%%%时间%「[高级]」中的专用变量 授权专用%BUB0%%JSON0%%XML0%%FIMG0%其他变量%Msgbar%%Status%%Adminuin%%Adminame%%Skey%%Json%%Value%%Type%函数消息内容操作函数±at %QQ%±±at 0±±rep=%Msgbar%±strmsg=%参数-1%±±anony 匿名±±face 187±±facenew 277±±facepro 4194325±±bub 1± 授权专用±fmsg {"a":"com.tencent.randomwords","resid":%随机数2000-2004%,"m":"main","prompt":"闪字"}±文件操作函数$写 教程/%群号%/测试 m 0$$读 教程/%群号%/测试 m 0$$下载 /QR/路径 链接$$下载 /QR/路径 链接 {JSON格式请求头} A$$删除 /QR/QRDic/data/……$文本处理函数$替换 𒑜 文本𒑜原内容𒑜新内容$$正则 𒑜 文本𒑜正则内容𒑜新内容$$取中间 𒑜 文本𒑜开头𒑜结尾$消息发送函数$发送$$发送 群 msg %群号% 内容$$发送 临时 msg %群号% %QQ% 内容$±ptt=音频路径或链接±$发送 群 ptt %群号% 音频路径或链接$card:1 xml卡片代码 授权专用$发送 群 xml %群号% xml卡片代码$ 授权专用$发送 临时 xml %群号% xml卡片代码$ 授权专用json: JSON卡片代码授权专用$发送 群 json %群号% json卡片代码$ 授权专用$发送 临时 json %群号% %QQ% json卡片代码$ 授权专用±img=图片路径或链接或MD5±$发送 群 img %群号% 图片路径或链接或MD5$$发送 临时 img %群号% %QQ% 图片路径或链接或MD5$ 授权专用±ximg=图片路径/链接/md5±±fimg=图片路径或链接或MD5±$发送 群 fimg %群号% 图片路径或链接或MD5$±shake 1±QQ/QQ群操作函数$点赞 %QQ% 10$$禁 %群号% %QQ% 禁言时间$$改 %群号% %QQ% 新群昵称$$踢 %群号% %QQ%$$全体禁言 开 %群号%$$全体禁言 关 %群号%$$撤回 %群号% %Msgbar%$$申请群 申请群号 理由$授权专用$退出群 退出群号$授权专用$获取群状态 %群号%$$进群审核 %群号% %QQ% 31 12 拒绝理由$$进群审核 %群号% %QQ% 2001 11 0$代码相关函数$调用 1000 内容$$回调 内容$$回调内部 内容$$执行 %括号1%$$变量 A 123456$$jump -7$:lable$jump :lable$类变量函数$随机数 1-%a%$$群昵称 %群号% %QQ%$$管理员 %QQ%$$图片链接 %IMG0%$访问函数$访问 file://路径$ $访问 链接$$访问 SETGET {JSON格式请求头} 链接$$访问 SETGETFT {JSON格式请求头} A 链接$$访问 POST 网址 post参数$$访问 SETPOST {JSON格式请求头} 链接 post参数$$访问 SETPOSTFT {JSON格式请求头} A 链接 post参数$运算函数$字符长度 %括号1%$$URLEncoder %括号1%$$URLDecoder %括号1%$$HexEncoder %括号1%$$HexDecoder %括号1%$$时间格式 %NDTime% yyyy-MM-dd HH:mm:ss.SSS E$$MD5 内容$$GTK %Skey%$$BKN %Skey%$$SIG 内容$JSON 操作函数@A[1]$JSON 添加 A 1 100$$JSON 添加 A 100$$JSON 删除 A 1$$JSON 长度 A$$JSON 获取 A 1$外部Java调用$BSH xxxx.java %a%$$BSH xxxx.java %a% %b%$其他函数$设置群状态 %群号% 开$$设置群状态 %群号% 关$$添加管理员 %QQ%$$删除管理员 %QQ%$其他代码特殊关键词前缀特殊事件[系统][退群][撤回]xxx 授权专用[红包][转账]xxx[初始化][上下管理]其他前缀[内部]xxx[高级]xxx 授权专用运算符数学运算符基础运算符其他运算符逻辑运算符与条件语句关系运算符逻辑运算符其他知识正则表达式基础简介元字符匹配某些字符数量限制正则表达式触发词实例转义符 \完整的正则表达式教程QR 中的 JSON关于 JSONJSON 操作代码示例$JSON 添加 DATAName 1$$JSON 添加 DATAName 1 1$$JSON 获取 DATAName 1$$JSON 删除 DATAName 1$$JSON 长度 DATAName$QQ 官方 API±img=http://q2.qlogo.cn/headimg_dl?dst_uin=%QQ%&spec=5±±img=http://p.qlogo.cn/gh/%群号%/%群号%/±时间变量详解基础时间变量进阶时间变量未整理&杂项红包/转账相关转账检测抢红包查红包卡片代码示例JSON 卡片XML 卡片废弃&失效&不明意义部分±ximgtype=%随机数40000-40005%±%Number%%Pid%%Reqid%%Strmsg%±nick 测试昵称±±title 测试±%Inviteename%发红包关于关于变量大全编写作者编辑工具关于共享许可协议 🄯想要制作 变量大全安♡玖特别版 的网页镜像?想要以文件形式分享 变量大全安♡玖特别版


变量

发言者相关变量


%QQ%

获取发言者的 QQ 号

备选方案:%Code% %Uin%

所有匿名用户的发言,%QQ% 为 80000000。


%昵称%

获取发言者的 群昵称

备选方案:%UinName%

要获取真正的「昵称」,可以参考 $群昵称 $ 函数。


%Title%

获取群内 专属头衔

无专属头衔时返回空值。


发言内容相关变量

%群号%

获取本群的 群号

备选方案:%群% %Groupid%

临时会话中,%群号% 为本群群号; 好友会话中,%群号% 为 0。


%GroupName%

获取本群的 群名

[系统] [撤回][上下管理] 前缀的代码中无法正常获取


%参数1%

发言中第一个空格以后,第二个空格或结尾以前的内容,以此类推。

自从有了 %括号1% ,谁还用 %参数1%


%参数-1%

获取发言的全部内容。


%括号1%

触发词中,从左到右第对括号中的内容。括号顺序以前半括号 ( 的出现顺序为准。

你可以尝试以下代码。

(测试(测测)和(试试)) %括号1%\n %括号2%\n %括号3%

发送 测试测测和试试 以触发。

想要具体了解?请学习 正则表达式-捕获组


%AT0%

获取被@的第一个成员的 QQ 号。

第二个成员的 QQ 号为 %AT1%,以此类推。

获取不到 %AT0%%AT1% …时,对应变量值为0;

@全体成员时,%AT0%%AT1% …均为0。


%ATNUM%

获取消息中 @ 操作的总数量。


%IMG0%

获取图片代码,可以在发图时使用。

第二张图片的代码为 %IMG1%,以此类推。

%IMG0% 的核心是一串 32 位的大写字母 + 数字,即图片的 MD51 手机、电脑;群聊、私聊发图得到的 %IMG0% 有一定差异,只有部分渠道获取的 %IMG0% 无需处理即可插入发图代码

因此,想提取 MD5 放入发图代码,建议使用以下方法处理 %IMG0% 更新:现在,你也可以通过 $图片链接 %IMG0%$ 获取图片链接。

图转 $正则 @ %IMG0%@/.*-|[^\dA-Z]@$

将以上代码放入词库,之后发送 图转 + 图片(不需要「+」号、换行、空格等),即可获取图片 MD5。

(使用了略复杂的正则表达式进行正则替换。萌新无需纠结原理,直接使用即可。)


%IMGNUM%

获取消息中图片的总数量。


%FACE0%

获取消息中第一个普通表情的编号。

第二个普通表情的编号为 %FACE1%,以此类推。

只能获取较为早期的 QQ 表情,较晚出现的 QQ 表情(如:/元宝 /菜狗 等)无法获取。

%FACENEW0%

同上,但只能获取 %FACE0% 获取不到的、较晚出现的 QQ 表情。

%FACEPRO0%

同上,但只能获取表情页无法直接找到的、被称为「会员小表情」的 QQ 表情(如:/流星 /猫爪 )。


%FACENUM%

%FACENEWNUM%

%FACEPRONUM%

获取消息中对应种类表情的总数量。


全局变量


%主人%

获取 QR 词库插件中设置的「主人」QQ 号。


%管理员%

获取 QR 词库插件中设置的「管理员」,返回数组形式

不建议萌新使用,萌新可以参考 $管理员 $ 函数。


%Robot%

获取当前登录的机器人的 QQ 号。


%RobotAuth%

判断本机器人 QQ 是否在 QR 授权。

%RobotAuth% 为 0,说明未授权;

%RobotAuth% 为 1,说明己授权。


%Time%

获取当前服务器 UNIX 时间戳2

网络时间,不受系统时间影响。


%NDTime%

获取当前系统 毫秒级 时间戳。

本地时间,不联网。因此,修改系统时间会引起 %Time% 变化。


%RobotRunTime%

获取QR主程序本次打开时的 毫秒级 时间戳。

可用于计算连续运行时间。


%随机数x-y%

获取 x 至 y 之间(包括 x、y)的一个随机数。其中 x 小于等于 y。

示例:%随机数1-100%

x 和 y 只能为自然数。想要使用变量作为随机数的端点,请参考 $随机数 $ 函数。


%%随机数x-y%%

获取随机变量(变量名是 x 至 y 之间的自然数)的内容。

示例:

你好 0:你好 1:我好 2:早上好 %%随机数0-2%%

%时间%

由于许多 %时间% 变量很少用到且规则复杂,这里只介绍一些简单的时间变量。想具体了解,请点击 时间变量详解 查看。

使用示例: %时间HHmm%\n %时间yyyy年MM月dd日 HH:mm:ss%\n %时间现在时间ahh时mm分ss秒%

你可以将上述代码添加到词库中查看效果。

yyyy

MM

dd

HH 时:24 小时制 hh 时:12 小时制

mm

ss

E 星期

a 半日(上午/下午)

%时间% 变量实际上是调用 Java SimpleDateFormat 类,处理当前时间并输出。

由于作者并没有找到足够详尽的 SimpleDateFormat 中文介绍,因此在下方按照自己的理解与实践编纂了详解

如果你发现了详解中的疏漏,或者可以找到完整的中文介绍,希望可以联系作者修正或补充链接。


「[高级]」中的专用变量 授权专用

%BUB0%

获取发言者 气泡 ID3


%JSON0%

获取 JSON 卡片 代码。代码不存在时为空。


%XML0%

获取 XML 卡片 代码。代码不存在时为空。


%FIMG0%

获取修饰后的闪照的 MD51 码,类似 %IMG0%


部分用法示例:

[高级][\s\S]* 如果:%JSON0%!= 捕获到JSON卡片:%JSON0% 如果尾 如果:%XML0%!= 捕获到XML卡片:%XML0% 如果尾 如果:%FIMG0%!= 捕获到闪照:%FIMG0% 如果尾

其他变量


%Msgbar%

消息的群内唯一 ID,每群单独计算,每一条消息的 %Msgbar% 是上一条消息的 %Msgbar% + 1。


%Status%

消息的状态码。

常用%Status%

%Status%==33 进群 %Status%==34 被邀请的人进群 %Status%==84 申请进群 %Status%==87 被邀请的人申请进群 %Status%==82 群聊消息 %Status%==166 好友消息 %Status%==141 群临时消息

关于邀请和进群的 %Status% 可能并不准确。


%Adminuin%

进行群管理操作的管理员的 QQ 号。


%Adminame%

进行群管理操作的管理员的群昵称。


%Skey%

获取机器人 Skey。

需要在 QR主程序→插件列表→长按词库插件 弹出的界面勾选 Skey 授权。


%Json%

获取机器人 Pskey,JSON 格式。

需要在 QR主程序→插件列表→长按词库插件 弹出的界面勾选 Pskey 授权。


%Value%

[上下管理] 中使用。

%Value% 为 1 时,%QQ% 被任命群管理员;

%Value% 为 0 时,%QQ% 被取消群管理员。


%Type%

消息类型。

词库中很少用到。


函数

函数中的 %QQ% %群号% 等是作为示例的变量,并非指在参数前后加上 %

如: $发送 群 msg %群号% 你好!$ $发送 群 msg 12345678 你好!$ $发送 群 msg %12345678% 你好!$

消息内容操作函数

此处的函数只是对消息内容进行特殊操作,不会增加消息内容。 因此,这些函数需要搭配文字才能成功发送消息并产生效果。


±at %QQ%±

在消息中插入 @ 代码。

关于@:

±at %QQ%± 是「@」代码,可以产生「@」效果,即对方会收到「有人@你」黄字通知,但消息中不会显示「@xxxx」文字。

而「@昵称 」只会在消息中显示@文本,而没有通知提示。

因此,QR中正确的「@」方式为: ±at %QQ%±@%昵称%

特别地,macOS 版本的 QQ 可以看到 @ 代码,因此会看到两次 @。此问题暂时无法解决。 另外,消息内容操作函数 部分的其他函数,macOS QQ 也可以看到空消息。

QR 也能收到这种消息,所以可以用来机器人之间在群里偷偷通讯。虽然没什么大用。


±at 0±

@全体成员,同样不显示「@全体成员」的文字。


±rep=%Msgbar%±strmsg=%参数-1%±

「回复」ID 为 %Msgbar% 的消息。

当前版本的 QR 中无法选定消息进行回复,只能回复触发指令的消息。疑似 bug。

±strmsg=%参数-1%± 中,%参数-1% 处为回复框里面的内容,可以自行修改。

±strmsg=%参数-1%± 非必选,若不写则回复框引用内容为空。

若回复内容为非文本类型(图片、文件等),则 ±strmsg=%参数-1%± 无效。


±anony 匿名±

使本条消息匿名发送。

机器人匿名发送的消息也可以触发它自己。


±face 187±

发送编号为 187 的普通(以 %FACE0% 获取)表情。

±facenew 277±

发送编号为 277 的新(以 %FACENEW0% 获取)表情。

±facepro 4194325±

发送编号为 4194325 的会员(以 %FACEPRO0% 获取)小表情。

不需要机器人本身开通 QQ VIP 或 SVIP。

实际上所谓「会员小表情」只在添加表情包时有限制。


±bub 1± 授权专用

使用气泡 ID3 为 1 的气泡发言。

不受 VIP 限制;仅作用于当前一条消息,后续消息仍为原气泡。

仅当新版 QRSpeed 设置中开启「所有消息走长消息」时可用。

谨慎勾选:此项勾选会导致部分消息类型不可用。


±fmsg {"a":"com.tencent.randomwords","resid":%随机数2000-2004%,"m":"main","prompt":"闪字"}±

将发送的文字转换为闪字。

自然,你可以将其中的 %随机数2000-2004% 改为 2000 - 2004 之间的固定数字,以期得到固定的闪字效果。


文件操作函数


$写 教程/%群号%/测试 m 0$

/sdcard/QR/QRDic/data/教程/%群号%/测试 中写入 m=0

我们将这里的「m」称为「key」。key 可以为任意数目的任意字符。

一个文件中,可以写入多个 key 不同的数据。

示例:,你可以使用 $写 教程/%群号%/测试 mass 100$$写 教程/%群号%/测试 火锅 100$ 在文件「测试」中写入两个数据。

之后,你可以使用下方的 $读 $ 函数读取这些数据。


$读 教程/%群号%/测试 m 0$

读取 /sdcard/QR/QRDic/data/教程/%群号%/测试 中 m 对应的值,不存在则返回默认值 0。

你可以修改默认值「0」。

若将代码修改成 $读 教程/%群号%/测试 m 100$,则对应值不存在时返回默认值「100」。


$下载 /QR/路径 链接$

$访问 链接$ 得到的结果下载到 /sdcard/QR/路径。路径需要精确到文件名。

示例: $下载 /QR/QRDic/data/百度.html https://www.baidu.com$ $下载 /QR/QRDic/data/backup.txt file:///sdcard//QR/QRDic/dic.txt$

无法自动创建文件夹,需要使用已有文件夹或手动创建路径文件夹才能成功下载文件。


$下载 /QR/路径 链接 {JSON格式请求头} A$

上一个函数 类似。可以自定义请求头。响应头将存储于变量 A


$删除 /QR/QRDic/data/……$

删除 /sdcard/QR 路径下的任意文件或空文件夹。

不能删除含有文件的文件夹。

若想删除文件夹,可以自行编辑代码或参考群文件,使用 递归 删除的方式删除文件夹。

注意!$删除 /QR/QRDic/dic.txt$ 将会直接删除你的词库。

请不要在代码中留下被删除词库的隐患。


文本处理函数

文本处理函数中符号 𒑜 可以随意更换,但要保证它不会在参数中出现。 如:$替换 QR 文本QR原内容QR新内容$

在所有参数均不含空格,或使用变量而不是文本作为参数的情况下,可以使用类似 $替换 文本 原内容 新内容$ 的方法,下面不再额外说明。


$替换 𒑜 文本𒑜原内容𒑜新内容$

将「文本」中的「原内容」全部替换为「新内容」。


$正则 𒑜 文本𒑜正则内容𒑜新内容$

正则表达式 匹配「文本」中的「正则内容」,并将匹配结果全部全部替换为「新内容」。

注意:$正则 函数中,[0-9] 将不会匹配数字 0 - 9 中的任意一个,而是被当作 计算格式 运算后匹配 -9


$取中间 𒑜 文本𒑜开头𒑜结尾$

取「文本」从「开头」到「结尾」的中间部分,「开头」「结尾」为示例字符串。

如果要从文本的开头开始取,则参数「开头」留空。 如:$取中间 𒑜 12345𒑜𒑜3$ 结果为:12

如果要一直取到文本的结尾,则参数「结尾」留空。 如:$取中间 𒑜 12345𒑜3𒑜$ 结果为:45


消息发送函数


$发送$

将上方输出的文本直接发送。

示例:

测试发送 1 23 $发送$ 456


$发送 群 msg %群号% 内容$

向指定群发送文本,无法带图。

$发送 临时 msg %群号% %QQ% 内容$

向指定群的群成员发送文本临时消息。

临时会话权限可能被群主关闭。


±ptt=音频路径或链接±

向当前群发送语音消息。

大于 1MB 的音频文件无法被发送。

$发送 群 ptt %群号% 音频路径或链接$

向指定群发送语音消息。

无法向单独的某人(好友、临时消息)发送语音消息。

词库 2.3.8 - 2.4.1 之间的某个版本更新了这些函数。

更早版本需要使用 $发送 群 ptt %群号% -1 音频路径或链接$ 以向指定群发送语音消息。


card:1 xml卡片代码 授权专用

向当前聊天发送 XML 卡片

$发送 群 xml %群号% xml卡片代码$ 授权专用

向指定群发送 XML 卡片。

$发送 临时 xml %群号% xml卡片代码$ 授权专用

向指定群成员发送 XML 卡片。


json: JSON卡片代码授权专用

向当前聊天发送 JSON 卡片

$发送 群 json %群号% json卡片代码$ 授权专用

向指定群发送 JSON 卡片。

$发送 临时 json %群号% %QQ% json卡片代码$ 授权专用

向指定群成员发送 JSON 卡片。


±img=图片路径或链接或MD5±

向当前群发送图片消息。

可以搭配文字。

私聊发图为 授权专用 功能。

$发送 群 img %群号% 图片路径或链接或MD5$

向指定群发送图片消息。

$发送 临时 img %群号% %QQ% 图片路径或链接或MD5$ 授权专用

向指定群的群成员发送图片临时消息。


±ximg=图片路径/链接/md5±

向当前群发送秀图。


±fimg=图片路径或链接或MD5±

向当前群发送闪照。

$发送 群 fimg %群号% 图片路径或链接或MD5$

向指定群发送闪照。


±shake 1±

发送窗口抖动。


QQ/QQ群操作函数


$点赞 %QQ% 10$

点赞 %QQ% 10 次。只能给机器人的好友点赞。

当然,如果你的机器人账号开通了 SVIP,你可以将 10 改为 20。


$禁 %群号% %QQ% 禁言时间$

禁言群成员。机器人需有 QQ 群管理员权限。

禁言时间以 为单位。

禁言时间为 0 时,表示解除禁言。


$改 %群号% %QQ% 新群昵称$

修改群成员的群昵称。修改他人群昵称时,机器人需有 QQ 群管理员权限。

即使没有管理员权限,机器人也可以修改自己的群昵称。


$踢 %群号% %QQ%$

移除群成员。机器人需有 QQ 群管理员权限。


$全体禁言 开 %群号%$

开启指定群的全员禁言。

$全体禁言 关 %群号%$

关闭指定群的全员禁言。


$撤回 %群号% %Msgbar%$

撤回 ID 为 %Msgbar% 的消息。


$申请群 申请群号 理由$授权专用

申请加入群。

由于 腾讯风控4 的原因,机器人发出的入群申请可能被 屏蔽过滤


$退出群 退出群号$授权专用

退出群。


$获取群状态 %群号%$

获取 %群号% 在 QR 主程序中的开关状态,返回


$进群审核 %群号% %QQ% 31 12 拒绝理由$

拒绝 %QQ% 入群。

很可能仅在 [系统] 前缀的触发词代码中有效。

$进群审核 %群号% %QQ% 2001 11 0$

同意 %QQ% 入群。

很可能仅在 [系统] 前缀的触发词代码中有效。


代码相关函数

$调用 1000 内容$

延迟 1000 毫秒后,触发关键词「内容」

示例:

说话 $调用 1000 说你好$ $调用 2000 说再见$ $调用 3000 说走开走开$

[内部]说(.*) %括号1%

1 秒 = 1000 毫秒。


$回调 内容$

触发关键词「内容」,并将执行结果返回到 $回调 内容$ 处。

示例:

说话 a:$回调 说你好$ 我说了个「%a%」\n 我又说了个「$回调 说再见$」\n $回调 说走开走开$

[内部]说(.*) %括号1%


$回调内部 内容$

可以在触发词中使用的回调。

会一定程度上影响运行速度。


$执行 %括号1%$

将一段文字作为 QRSpeed 词库代码执行。

无法执行多行语句;无法执行条件语句。

你可以自行编写代码,以循环的方式执行多行语句中的每一行。但是仍然不能执行条件语句。

建议不要在私聊中执行,否则可能会出现 bug。

如果你需要用到它,记得加上权限或防范措施,以免被恶意执行(如被 删除词库 )。


$变量 A 123456$

将变量 A 赋值为123456,支持多字变量。

示例:

我的金币 $变量 金币 10000$ 你现在有%金币%枚金币。


$jump -7$

当前版本中,你可以使用 跳 代替 jump,如:$跳 -7$

代码跳行。

以下一行为基准(即 $jump 0$ 相当于不跳行),向上跳行为负数,向下为正数。

无法跳行到第一行;无法跳行到其他代码块;注释不算行数。

示例:

循环示例 a:0 a:[%a%+1] 如果:%a%!=11 %a%\n $jump -4$

:lable

$jump :lable$

:lable 指定一个跳行标签。你可以使用 $jump :lable$ 跳行到对应标签处。

你可以指定多个标签,其中的 lable 可以改为其他字符串。

示例:

循环示例 1$jump :lable3$ 2 :lable1 3$jump :lable2$ :lable3 4$jump :lable1$ :lable2 5

看晕了对吗?请尽量不要在一段代码中使用过多跳行,除非你确认以后不会再更改它。


类变量函数

$随机数 1-%a%$

可以用变量指定随机数范围的随机数。

示例:

a:100 b:999 $随机数 %a%-%b%$

注意:与 %随机数x-y% 变量不同,此函数「随机数」三个字后留有一个空格。


$群昵称 %群号% %QQ%$

获取 %QQ%%群号% 的群名片。

当然,%QQ%%群号% 可以换成任意 QQ 号或群号。

当机器人或 %QQ% 不在所查询群时,返回 %QQ% 的真实昵称。

因此,可以使用 $群昵称 0 %QQ%$ 获取某人真实昵称。


$管理员 %QQ%$

检测 %QQ% 是否为词库插件中设置的管理员。

若是,返回 %QQ%;否则,返回 0。

示例: 如果:$管理员 %QQ%$==%QQ% 是管理员


$图片链接 %IMG0%$

将代码为 %IMG0% 的图片上传到 QR 服务器并获取链接。


访问函数

访问结果以 UTF-8 编码。如果不懂,可以忽略这句话。


$访问 file://路径$

访问本机文件,获取文件内容。


$访问 链接$

向链接发送 GET 请求,可以理解为普通的访问链接。


以下的访问方法,如果看不懂可以忽略。


$访问 SETGET {JSON格式请求头} 链接$

向链接发送自定义请求头的 GET 请求。


$访问 SETGETFT {JSON格式请求头} A 链接$

向链接发送自定义请求头的 GET 请求,并将响应头赋值给变量 A。


$访问 POST 网址 post参数$

向链接发送 POST 请求。


$访问 SETPOST {JSON格式请求头} 链接 post参数$

向链接发送自定义请求头的 POST 请求。


$访问 SETPOSTFT {JSON格式请求头} A 链接 post参数$

向链接发送自定义请求头的 POST 请求,并将响应头赋值给变量 A。


运算函数


$字符长度 %括号1%$

获取文本中的字符长度。

以 UTF-16 BE 编码后的长度。因此,少部分生僻字、特殊符号可能会判断为 2 个字符。


$URLEncoder %括号1%$

URL 编码:将文本使用 UTF-8 百分号编码方式进行转码。

QR 的 URL 编码中,除了数字 0-9、大小写形式的 26 字母 a-z A-Z、句点 .、减号/连字符 - 以及下划线 _ 之外,其他符号都会被编码。

$URLDecoder %括号1%$

URL 解码:将 UTF-8 百分号编码转换为文本。


$HexEncoder %括号1%$

Hex 编码:将文本使用 UTF-8 十六进制编码方式进行转码。

实际上就是将 所有 字符 URL 编码之后去掉百分号

$HexDecoder %括号1%$

Hex 解码:将 UTF-8 十六进制编码转换为文本。


$时间格式 %NDTime% yyyy-MM-dd HH:mm:ss.SSS E$

将毫秒级时间戳 %NDTime% 转换为一般时间格式。时间格式的定义请参考 时间变量


$MD5 内容$

取一段文字的 MD51

可以用来校验文件是否被更改,或者作为文件的唯一 ID。


$GTK %Skey%$

$BKN %Skey%$

这两个函数完全相同,将 %Skey% 转换为 bkn/gtk5


$SIG 内容$

QR 官方解释为:固定的数字签名算法。


JSON 操作函数

注意,QR中所有JSON操作中都直接使用变量名,如「A」而不是「%A%」。


@A[1]


$JSON 添加 A 1 100$


$JSON 添加 A 100$


$JSON 删除 A 1$


$JSON 长度 A$


$JSON 获取 A 1$

建议在 @A[1] 函数无法成功获取时使用


外部Java调用


$BSH xxxx.java %a%$

调用 /sdcard/QR/QRDic/BSH/xxxx.java 中的函数「%a%」。


$BSH xxxx.java %a% %b%$

调用 /sdcard/QR/QRDic/BSH/xxxx.java 中的函数「%a%」,参数为「%b%」。


其他函数

$设置群状态 %群号% 开$

$设置群状态 %群号% 关$

设置 QR 主程序中的开关。

这样一来,你无法在当前群触发任何消息。因此,你将难以在当前群内重新打开此开关。


$添加管理员 %QQ%$

$删除管理员 %QQ%$

添加与删除 QR 词库插件中的「管理员」。

不是 QQ 群管理员!

2.4.8 版本新增函数。


其他代码

\r \n \r\n 换行符

\%0A 换行符 \%25 百分号 \%20 空格

「\%xx」为 UTF-8 百分号编码的字符。


特殊关键词前缀

注:

[xx]xxx 表示前缀后需要加触发词;

[xx] 表示单独使用前缀即可.


特殊事件


[系统]

进群等系统通知触发。


[退群]

成员退群触发。


[撤回]xxx 授权专用

有人(包括机器人自己)撤回消息时触发。

[红包]

有人发送红包时触发。

QR 甚至可以撤回红包。(不过好像还是可以在群未领红包里领到?)


[转账]xxx

有人向机器人转账时触发。


[初始化]

QRSpeed词库插件 每次开始运行(重启、重连)时触发一次。

因为不是在特定群执行,所以许多函数、变量无法使用。


[上下管理]

检测QQ群管理变动。

示例:

[上下管理] 如果:%Value%==1 %昵称% 成为了管理员。 返回 如果尾 如果:%Value%==0 %昵称% 不再是管理员了。


其他前缀

[内部]xxx

只能通过调用/回调触发,不会被 QQ 消息触发。


[高级]xxx 授权专用

能使用部分 特殊变量


运算符

数学运算符

可以进行混合运算,小数结果 4 舍 6 入,若为 5 则向偶数方向舍入。

示例:

[1+2] [3-2] [2*(2+3)/2]

基础运算符

+ 加法

- 减法

* 乘法

/ 除法

注意!在 部分版本的 QR 词库中,乘法运算优先级比除法更高;除法结合顺序为从右到左。

因此:

[4/2*2] 的结果可能为 1 而不是 4; [8*2/2*4] 的结果可能为 2 而不是 32。

[25/5/5] 的结果可能为 25 而不是 1; [20/1/10] 的结果可能为 200 而不是 2;

你可以使用括号 () 改变运算顺序来避免这个问题。

其他运算符

取模 约等于取余数,其他三个运算符很少会用到。

如果想了解 & |^ 的运算方式,请 百度搜索位运算

请注意,此处 & |逻辑运算符 中的 & | 意义并不相同。

& 按位与

| 按位或

^ 按位异或

% 根据词库版本不同,可能为取模或取余

取模运算符后不能接变量。

错误示例:[62%%a%]


逻辑运算符与条件语句

关系运算符

< 小于 > 大于 <= 小于等于 >= 大于等于 == 等于 != 不等于

逻辑运算符

| 逻辑或 & 逻辑与

QR 中,逻辑运算从左到右依次运行,不支持括号。

因此 %a%==1&%b%==2|%c%==3&%d%==4 运算顺序为 ((%a%==1&%b%==2)|%c%==3)&%d%==4

不知道什么是逻辑运算?请查阅高中数学课本或 百度一下


其他知识

正则表达式基础

简介

QR 中的触发词使用正则表达式进行匹配。即使你不知道什么是正则表达式,你也很可能在 QR 中使用过它。

如:.*早上好.* 我想.* 你可能已经知道,.* 指代 任意数量的任意字符 。实际上,它就是简单的正则表达式。

① 严格来说并非如此。我们将在下面学到,.* 并不能匹配换行符 \n

在正则表达式中,具有特殊意义的字符被称为「元字符」。接下来将简单介绍常用的元字符的用法。

元字符

匹配某些字符

\w 匹配 文字、数字、下划线 \W 匹配 \w 不能匹配的字符。

\d 匹配 数字 \D 匹配 \d 不能匹配的字符。

\s 匹配 空白字符(包括空格、换行等)。 \S 你猜得没错,匹配 \s 不能匹配的字符。

\n 匹配 换行符 \r 匹配 回车符

QQ 中,手机发送的换行为换行符 \n ,而电脑发送的换行为回车符 \r 因此,防止电脑端无法触发指令,我们更建议使用 [\n\r] 来匹配换行。

[] 根据方括号的内容匹配 部分字符

如:

[abcde] 匹配 a b c d e中的任意一个字符。它可以匹配 a b c de,而不能匹配 f abc [^xyz] 匹配除 x y z 之外的任意一个字符。它可以匹配 a 3 / 等,而不能匹配 x abc

 

. 匹配除换行符 \n 外的 任意字符

. 与数量限制元字符 * 组合成 .* 或许可以称为「通配符」,它可以匹配任意不带换行的文本 但是,更加通配的明显是 [\s\S]* [\d\D]*[\w\W]* 等,它们可以匹配任意文本。

当单独出现的「通配符」如 .* [\s\S]* 等作为触发词时,该触发词下方的触发词几乎都不会被触发。 因此,词库中最好只出现至多一次的「通配符」且仅将它放在词库的最下方。

数量限制

{4} 限制前方元素出现 4 次。如:\d{4} 匹配 4 个数字;(abc){2} 匹配 abcabc {1,4} 限制出现 1-4 次。如:\d{1,4} 匹配 1-4 个数字;[abc]{2} 匹配 aa bb ac bc 等。 {4,} 限制出现 4 次或更多次。如:\d{4,} 四位及以上数字;(苹果|apple){2,} 匹配 apple苹果 appleapple苹果 苹果apple苹果苹果apple 等。

? 限制出现 0 次或 1 次。相当于 {0,1} + 限制出现 1 次或更多次。相当于 {1,} * 限制出现 0 次或更多次。相当于 {0,}

正则表达式触发词实例

你可以尝试以下代码:

(无路赛){2,} 测试成功了,你个傲娇。

(\w)\n是\n笨\n蛋 如果:%括号1%==你 虽然很不情愿,但是 如果尾 测试成功了。

([你我他]不?)是笨蛋\W* 如果:%括号1%==你不|%括号1%==我|%括号1%==他 那当然! 返回 如果尾 这怎么可能呢?

戳了你(\d+)次(\W*) 捶了你%括号1%天%括号2%

点歌\s*(.+) 你点了一首「%括号1%」

转义符 \

转义符本应放在 元字符 中介绍的。但是为了不打断学习的连续性,我们把转义符从 元字符 中独立了出来。

我们先来看一个例子:

一只小可爱 A 想写一个骰子。他选择了 .r 来作为掷骰子的触发词。

测试之后,他发现骰子没有问题,便在群内开放使用了。

第二天,大家在群里聊天:

B:「A 劳斯您好,您家崽人设是您自己画的对叭?!太神仙了呜呜呜,请问您接单吗?」

A:「接。」

B:「多少钱呀?」

A:「1r」

机器人:「@A 1d100 = 32」

A:?

内容完全虚构,若有雷同,纯属我太聪明了wwwwwww

在正则表达式中, . 表示的是一个任意非换行字符。因此,1r 可以被 .r 匹配,触发了指令。

一些字符(如 . ( + 等)由于成为了 元字符 而被赋予了特殊含义,从而不再代表这些字符本身。

那么如何匹配这些字符本身呢?答案很简单,我们需要在元字符前加上 转义符 \ 来表示它本身。

在这个例子中,如果将词库中的触发词改为 \.r,就只有 .r 才可以触发骰子了。

完整的正则表达式教程

点我查看。


QR 中的 JSON

关于 JSON

百度百科

JSON 在线格式化工具

当你拿到一串 JSON 时,给人的直观感受很可能是「乱糟糟的一团」; 这时,你可以使用 JSON 格式化工具 将其格式化,以直观地看到 JSON 的层次结构。

同时,你也可以用 JSON 格式化工具来检查自己的 JSON 是否包含语法错误。


JSON 操作代码示例

$JSON 添加 DATAName 1$

JSON添加1 A:[1,2,3] $JSON 添加 A 9$ %A%


$JSON 添加 DATAName 1 1$

JSON添加2 A:[1,2,3] B:{"玖":"1","安":"an"} $JSON 添加 A 1 a$ $JSON 添加 B 玖 9$ $JSON 添加 B 玖玖 安安$ A:%A%\n B:%B%


$JSON 获取 DATAName 1$

JSON获取 A:[1,"8",3] B:{"玖":"9","安":"an","玖玖":"安安"} $JSON 获取 A 1$\n $JSON 获取 B 玖$


$JSON 删除 DATAName 1$

JSON删除 A:[1,"8",3] B:{"玖":"9","安":"an","玖玖":"安安","an":"annie"} $JSON 删除 A 1$ $JSON 删除 B an$ A:%A%\n B:%B%


$JSON 长度 DATAName$

JSON长度 A:[1,"8",3] B:{"玖":"9","安":"an","玖玖":"安安","an":"annie"} $JSON 长度 A$\n $JSON 长度 B$


QQ 官方 API


±img=http://q2.qlogo.cn/headimg_dl?dst_uin=%QQ%&spec=5±

获取发言人头像。


±img=http://p.qlogo.cn/gh/%群号%/%群号%/±

获取群头像。


时间变量详解

%时间% 过来却看晕了?点我返回 %时间% 变量。(劝退?)

%时间% 变量里有很多保留字符。使用 %时间% 变量时,保留字符会被替换为对应值,而其他字符保持不变。

这样说可能有些抽象,这里先放示例。 你可以通过尝试下方的代码,了解 %时间% 变量的用法。

时间变量测试 %时间HHmm%\n %时间yyyy年MM月dd日 HH:mm:ss%\n %时间现在时间ah时m分s秒%

接下来将具体说明 %时间% 变量中的的保留字符。

如果 %时间% 变量中带有保留字符之外的 英文字母(如:%时间AAHHmmss%),会报错并使整段代码不可用。

在这种情况下,你可以使用单引号 ' 包裹住不想被转换为时间的部分,以期其不会被格式化解释;而连续的两个单引号 '' 则会被转换为输出结果中的一个单引号 '。这种方法也适用于保留字符。(如:%时间'AA'HH''mm'ss'%

基础时间变量

参考 %时间% 变量。(二次劝退?)

进阶时间变量

部分时间变量存在 补 0 规则

你可以通过以下示例来了解补 0 规则:

%时间y% %时间yyy% %时间yyyy% 值为 2021 %时间yyyyy% 值为 02021 %时间yyyyyy% 值为 002021

除了少部分特殊字符组,大部分结果为 纯数字 的时间变量均具有 补 0 规则 为方便学习,具有 补 0 规则 的时间变量,将在「结果示例」中标注 补0

未标注 补0 的变量,无论重复多少次字母均不会使结果变化。

如:%时间GGG% %时间GGGGG% 甚至 %时间GGGGGGGGGGGGGGGG% 结果均为 公元

以下所有 结果示例 使用的示例时间为: 2021 年 2 月 19 日 18:03:25.876 GMT+8:00

G 历法

yy

结果示例:21

YY 年,以本周最后一天的年份为准

结果示例:21

在 2021 年 12 月 29 日,该值为 22。

y

结果示例:2021 补0

Y 年,以本周最后一天的年份为准

结果示例:2021 补0

M L

结果示例:2 补0

d

结果示例:19 补0

H 小时:24 小时制(午夜为 0 点,没有 24 点)

结果示例:18 补0

k 小时:24 小时制(午夜为 24 点,没有 0 点)

结果示例:18 补0

h 小时:12小时制(午夜为 0 点,正午为 12 点)

结果示例:6 补0

K 小时:12小时制(午夜为 12 点,正午为 0 点)

结果示例:6 补0

m

结果示例:3 补0

s

结果示例:25 补0

a 上午/下午

结果示例:下午

cccc EEEE 星期

结果示例:星期五

ccccc EEEEE 星期

结果示例:五

c E 其他数量c 其他数量E 星期

结果示例:周五

u 星期

结果示例:5 补0

D 今年第x天

结果示例:50 补0

w 今年第x个星期 日/一/二 …

结果示例:8 补0

类似于 Y YY ,以每周最后一天为年份标准。 例如,在 2021 年 12 月 29 日,该值为 1。

W 本月第x个星期 日/一/二 …

结果示例:3 补0

F 本月的第x个七天

结果示例:3 补0

G 历法

结果示例:公元

S 十分之一秒

结果示例:8

SS 百分之一秒

结果示例:87

SSS 千分之一秒(毫秒)

结果示例:876 补0

z Z X 系列:当前时区

z 结果示例:+0800 zz zzz 结果示例:GMT+08:00 zzzz 更多z 结果示例:中国标准时间

Z ZZ ZZZ 结果示例:+0800 ZZZZ 结果示例:GMT+08:00 更多Z 结果示例:+08:00

X 结果示例:+08 XX 结果示例:+0800 XXX 结果示例:+08:00 XXXX 更多X 会!报!错!

z、Z 和 X 似乎是 一般时区RFC 822 时区ISO 8601 时区 的区别。 其中「一般时区」原文为「General time zone」,翻译可能有误。 虽然我也不知道他们之间有什么区别,但我先把它写在这。


未整理&杂项

红包/转账相关


转账检测

[转账]([\S\s]+) 如果:%Tfuin%!= %Tfuin%\n %Tfurl%\n %Tftip%\n %Tftitle%\n %Tftext%\n %TfAmounts%\n 如果尾


抢红包

$抢红包 %Groupid% %Skey% %Authkey% %Listid% %Number% Data$


查红包

$查红包 %群% %Skey% %Authkey% %Listid% A$ %A%


卡片代码示例

你需要使用 这些 函数来发送卡片。

卡片可能失效(屏蔽),因此这里不保证作为示例的卡片代码可用。

JSON 卡片


XML 卡片


废弃&失效&不明意义部分

±ximgtype=%随机数40000-40005%±

定义秀图类型;已失效。

好像又能用了?我懒

%Number%

目前已知在红包消息中为 1,其他消息中为 0。QR 官方解释是红包金额,可能已废弃。

%Pid%

未知;似乎是消息文本的「唯一」ID。相同的文本 %Pid% 相同,不同的文本 %Pid% 认为不同。

%Reqid%

未知

%Strmsg%

废弃

±nick 测试昵称±

废弃

±title 测试±

自定义头衔为「测试」,仅作用于当前一条消息。

失效。

与群主设置的专属头衔不同,QR 设置的头衔可以超过 6 字限制。


%Inviteename%

字面意思是被邀请人的昵称,但是完全没有反应


发红包

##指定专属红包 8不指定 32口令红包 1024指定 65536语音红包 A:1024 ##红包类型 1普通红包 2拼手气红包 B:2 ##发送类型 1好友 3群 4非好友 C:3 ##红包金额 分为单位 D:%随机数5-10% ##红包数量 E:1 ##接收红包 群号或好友QQ号 F:%群号% ##红包标题 或 口令 G:我是红包 ##指定发红包用|分割 H:%Code%

$红包 %A% %B% %C% %D% %E% %F% %G% %H%$

示例:

我要红包 $红包 1024 1 3 1 1 %群号% 你的红包 %QQ%$


关于

关于变量大全编写

作者

编辑工具

Typora


关于共享

许可协议 🄯

本作品采用 知识共享 署名-相同方式共享 4.0 国际许可协议 进行许可。

如果你认为本文有不妥之处,可以对下载后的文件进行适当修改。修改后的文章仍应以 此许可协议 发布。

感谢你对知识共享的支持与对 QR 新人的帮助。

想要制作 变量大全安♡玖特别版 的网页镜像?

你可以 点此下载 HTML 文件,并在稍后上传到你的服务器。

如果想用其他 Markdown 编辑器重新渲染网页,你也可以 点此下载 Markdown 文件

想要以文件形式分享 变量大全安♡玖特别版

你可以选择下载以下一个或多个文档并上传到任何平台:

PDF 文档(推荐) HTML 文档(推荐) Word 文档 Epub 文档 RTF 文档

HTML 以外格式的文档不保证最新版本;其中 PDF 格式的文档较常更新,但仍可能会落后于最新版本1-2次修改。



1 一种摘要算法。
2 UNIX 时间戳:1970-01-01 00:00:00 GMT 至当前的总秒数。
3 气泡 ID 手动获取方法:在聊天界面双击想要获取 ID 的气泡→点按右下角「装扮」→点按气泡名称→点击右上角的「···」展开菜单→手指放在菜单第三行向左轻扫→轻触「复制链接」 成功复制链接后,找合适的输入框粘贴刚刚复制的内容,可以在链接文本找到 itemid= ,其后紧跟的数字就是气泡 ID。
4 腾讯对「风险」QQ 号的一系列限制。
5 QQ 网页 cookie 的一部分,由 skey 通过某种摘要算法计算得出。