QRSpeed-第6课时-第六节-网络词库

xiwangly

活捉一只老RBQ
管理成员
2020-02-27
95
72
18
本帖可能需要您协助我们来编辑
本课涉及到PHP,你需要具备一些建站相关的基础来进行本课的学习(实在没基础的就当做看热闹吧)推荐:php学习推荐
(本帖因为字数实在过长,导致部分时刻无法提交更改,因而开设子帖,可能会为您带来不便,请理解)

如果你实在不想自己搭建网络词库,你也可以通过调用API来实现,很多免费的API都不太稳定,付费的又贵的要命。对于白嫖党来说实在是太难了。(需要更多API请自行查找)如果你连API都不知道是什么,请见:什么是API-知乎或者在各大搜索引擎中搜索以查找你想要的答案。

API:
API集合帖-大量好用的API
站内自研API见下面的测试用API(或见测试用API-xiwangly的API

首先你要具备如下条件或资源:(多端选一,具体教程待补充)
————————
Android端:
KSWEB KSWEB Official Website-KSWEB官网
Termux 【Max】安卓手机网站搭建系列教程–内网穿透2-凌陌笙-葫芦侠

Windows(服务器)端:
Internet Information Services (IIS)及PHP支持 IIS怎样安装与配置-百度经验
或者你也可以使用宝塔一键配置 宝塔面板

Linux端:
(待补充)
或者你也可以使用宝塔一键配置 宝塔面板

或者你还可以在虚拟主机上搭建网络词库,不知道什么是虚拟主机?请见虚拟主机-百度百科

虚拟主机推荐:(有免费的)
虚拟主机集合帖-收录虚拟主机

官方提供的QR网络词库文件里带有授权限制,我做出了去除授权限制的测试版本(见下文)。
本帖中的所有例子词库中的域名替换成你自己的域名(需要你上传对应的文件)或者使用API。
dic.txt文件中添加以下内容:(注意不能与原来的匹配全局的关键词冲突)
代码:
(.*)
如果:%参数-1%==
参数无效
返回
如果尾
S:thehost=%主人%&robot=%Robot%&groupid=%Groupid%&sendid=%Uin%&auth=%RobotAuth%&msgtext=
M:$MD5 %S%%参数-1%516FD55C0FA269306C34AF995F1D8EDD$
U:http://域名/dic/api.php?%S%$URLEncoder %参数-1%$&sign_type=md5&sign=%M%
G:$访问 %U%$
$执行 %G%$
"516FD55C0FA269306C34AF995F1D8EDD"改成自己机器人的QQskey(关于如何获取自己机器人的QQskey请另见Bing-QQSKEY),两边都要改{dic.txt./config.php(在网络词库包内)},不改部分功能无法使用(待验证),泄露了自己的QQskey很危险,就好比对方拥有了你的密码(无视设备锁)!(有些网友非本人操作莫名其妙就群发了一些推广这就很可能是泄露了自己的QQskey)
我又魔改了一下官方提供的那个网络词库(授权验证实在太多了,我通通把他们去掉),在这里给大家提供一下资源(见附件dic.zip)。
把文件dic.zip解压在网站上,检查你的连接是否正常,以及配置是否正常就可以使用了。
./config.php(在网络词库包内)里面的192.168.43.132替换成你的域名,/dic指向的是一个子目录,如果你把dic.zip/dic/文件夹的所有文件解压到了网站根目录,请去掉域名后面的/dic(子目录)。如果挂机器人的设备和PHP支持的设备是同一个设备,那么你可以填写127.0.0.1或localhost(localhost是127.0.0.1的快捷方式)。
通过get方法实现提交数据,PHP $_GET 变量 | 菜鸟教程

我自己开发了一个网络数值数据存储的PHP词库模板(资源见附件"网络词库金币存储by希望LY.zip")(为了节省时间,我下面也展示了代码),供大家学习,我尽可能把这个模板做的简单一些,方便大家学习,当然这个也有待优化:(同样的,你也可以参考上面的方法把这个模板放在网站里,然后对接过去)
配套dic.txt资源内容模板:("充值数值@用户",因为"?(.*)"的关系,充值后面有无空格都无所谓)如果"n="后面为""(null)或"0",则等价于查询金币数量。数字前加"-"(负号)则为扣除金币。
代码:
&&示例:回复"充值100@希望!"或"充值 100@希望!"

充值 ?(.*)@.*
f:$访问 http://域名/jb.php?n=%括号1%&qq=%AT0%$
如果:%f%!=&%f%!=QQ号不能为空&%QQ%==1334850101
充值成功,%AT0%现有%f%金币。
返回
如果尾
充值失败
运行结果:
1585998660740.png
于此对应的签到(钱包)功能我也写出来了一个例子,供大家参考:
代码:
签到
q:$读 %QQ%/date.txt qd null$
如果:%q%==%时间dd%
f:$访问 http://域名/jb.php?n=0&qq=%QQ%$
签到失败,@%昵称% 您当日已经签到过了,您现有%f%金币
返回
如果尾
$写 %QQ%/date.txt qd %时间dd%$
s:%随机数12-64%
f:$访问 http://域名/jb.php?n=%s%&qq=%QQ%$
签到成功,@%昵称% 您获得了%s%金币,您现有%f%金币
代码:
钱包
f:$访问 http://域名/jb.php?n=0&qq=%QQ%$
@%昵称% 您现有%f%金币
运行截图:
1585997753875.png

结合前面的知识,我利用随机池和远程词库及判断语句组合写出了"摸头"的功能(这个功能在改进的时候测试了很久,是我原创的,同样的,你可以举一反三写出抽奖等功能)(为了特殊字符能正常显示,我在下面的例子中进行了URL编码以确保能正常显示)
代码:
摸头|摸摸头
0:很舒服呢(金币\%2B20)
1:很温暖呢(金币\%2B18)
2:好像用力有点过猛了(金币-50)
3:不错呢(金币\%2B16)
e:总是摸我烦不烦呐(金币-4)
s:%%随机数0-3%%
a:5
c:$读 %QQ%/次数.txt c 0$
t:$读 %QQ%/次数.txt t %时间dd%$
如果:%t%!=%时间dd%
$写 %QQ%/次数.txt c 0$
$写 %QQ%/次数.txt t %时间dd%$
$调用 0 摸头$
返回
如果尾
如果:%s%==%0%&%c%<%a%
f:$访问 http://域名/jb.php?n=20&qq=%QQ%$
$写 %QQ%/次数.txt t %时间dd%$
$写 %QQ%/次数.txt c [%c%+1]$
%s%,%QQ%现有%f%金币
返回
如果尾
如果:%s%==%1%&%c%<%a%
f:$访问 http://域名/jb.php?n=18&qq=%QQ%$
$写 %QQ%/次数.txt t %时间dd%$
$写 %QQ%/次数.txt c [%c%+1]$
%s%,%QQ%现有%f%金币
返回
如果尾
如果:%s%==%2%&%c%<%a%
f:$访问 http://域名/jb.php?n=-50&qq=%QQ%$
$写 %QQ%/次数.txt t %时间dd%$
$写 %QQ%/次数.txt c [%c%+1]$
%s%,%QQ%现有%f%金币
返回
如果尾
如果:%s%==%3%&%c%<%a%
f:$访问 http://域名/jb.php?n=18&qq=%QQ%$
$写 %QQ%/次数.txt t %时间dd%$
$写 %QQ%/次数.txt c [%c%+1]$
%s%,%QQ%现有%f%金币
返回
如果尾
t:$读 %QQ%/次数.txt t %时间dd%$
如果:%c%>=%a%&%t%==%时间dd%
f:$访问 http://域名/jb.php?n=-4&qq=%QQ%$
//$写 %QQ%/次数.txt c %a%$
%e%,%QQ%现有%f%金币
关于这个模板的更多功能还有待你们自己开发了,我只是举个例子,我相信真正愿意学的人一定可以很快写出签到(后续已追加),商店,打工,娱乐等等相关的功能的远程数据对接来。...
"网络词库金币存储by希望LY.zip"文件(共2个文件)代码展示:
jb.php(模板的核心部分)
PHP:
<?php
$x1="./";
$x2=$_GET["qq"];
$x3="/jb.txt";
$x6="QQ/" . $x2;
$x4=$x1 . $x6 . $x3;
$x5=$_GET["n"];
$x7=file_get_contents($x4);
$x8=$x7 + $x5;
$x9=file_exists($x6);
if (file_exists("./QQ/") != "1")
{
    mkdir("./QQ/");
}
if ($_GET["qq"] == "")
{
    echo "QQ号不能为空";
}
elseif ($_GET["n"] == "")
{
echo $x7;
}
else
{
    if ($x9 != "1")
    {
        mkdir($x6);
        file_put_contents($x4,$x8);
        echo file_get_contents($x4);
    }
    else
    {
        file_put_contents($x4,$x8);
        echo file_get_contents($x4);
    }
}
?>
jb.html(用于可视化提交表单)
HTML:
<html>
<head>
<meta charset="utf-8">
<title>希望LY</title>
</head>
<body>

<form action="jb.php" method="get">
数量: <input type="text" name="n">
QQ: <input type="text" name="qq">
<input type="submit" value="提交">
</form>

</body>
</html>
以下是我自己编写的词库,供参考:(这是一个网络词库的例子,这个网络词库的接口不是我的)
代码:
(开启|关闭)智能陪聊|关
$写 lydata/dic/希望LY/希望的词库/%群号%/开关.ini i1 %参数-1%$
%参数-1%成功!\r(开启/关闭智能陪聊成功!)

[\s\S]*(.*)[\s\S]*
f:$读 lydata/dic/希望LY/希望的词库/%群%/开关.ini i1 关闭智能陪聊$
如果:%f%==开启智能陪聊
a:$访问 http://i.itpk.cn/api.php?question=%参数-1%$
b:$替换 € %a%€[cqname]€我$
c:$替换 € %b%€[name]€你$
d:$替换 € %c%€[bq11]€?$
e:$替换 € %d%€NULL€%参数-1%$
f:$替换 € %e%€[cqname]€我$
%f%
返回
如果尾
我自己写的QRSpeed网络货币存储的例子:(可以说是上一个的升级版,见附件"storage.zip",如果有安全性需求,可以尝试加上md5等额外的参数判断)
同样地,我也会给出例子供参考:
代码:
充值 ?(.*)@.*
f:$访问 http://域名/storage.php?n=%括号1%&type=bank&qq=%AT0%$
如果:%f%!=&%f%!=QQ号不能为空
充值成功,%AT0%现有%f%金币。
返回
如果尾
充值失败

签到
q:$读 %QQ%/date.txt qd null$
如果:%q%==%时间dd%
f:$访问 http://域名/storage.php?n=0&type=changes&qq=%QQ%$
签到失败,@%昵称% 您当日已经签到过了,您现有%f%金币
返回
如果尾
$写 %QQ%/date.txt qd %时间dd%$
s:%随机数12-64%
f:$访问 http://域名/storage.php?n=%s%&type=changes&qq=%QQ%$
签到成功,@%昵称% 您获得了%s%金币,您现有%f%金币

钱包
f:$访问 http://域名/storage.php?n=0&type=changes&qq=%QQ%$
b:$访问 http://域名/storage.php?n=0&type=bank&qq=%QQ%$
@%昵称% 您的钱包现有%f%金币\r您在银行的存款现有%b%金币

存款 [0-9]+
p:$访问 http://域名/storage.php?n=0&type=changes&qq=%QQ%$
h:$访问 http://域名/math.php?x=%p%&m=floor$
如果:%h%<=0
取款失败,余额不足
返回
如果尾
f:$访问 http://域名/storage.php?n=%参数1%&type=bank&qq=%QQ%$
w:$访问 http://域名/storage.php?n=0&type=changes&qq=%QQ%$
@%昵称% 存款成功,您在银行的存款现有%b%金币\r您的钱包现有%f%金币

取款 [0-9]+
p:$访问 http://域名/storage.php?n=0&type=bank&qq=%QQ%$
h:$访问 http://域名/math.php?x=%p%&m=floor$
如果:%h%<=0
取款失败,余额不足
返回
如果尾
f:$访问 http://域名/storage.php?n=%参数1%&type=wallet&qq=%QQ%$
b:$访问 http://域名/storage.php?n=0&type=bank&qq=%QQ%$
@%昵称% 取款成功,您的钱包现有%f%金币\r您在银行的存款现有%b%金币
我自己写的PHP自定义词库:(测试中各种问题真的要折腾死人,附件版见附件"PHP自定义词库.zip")
PHP:
<?php
/*
示例:
增加自定义回复访问 http://域名/dic.php?q=关键词&a=回复
自定义回复访问 http://域名/dic.php?q=关键词
——xiwangly的测试文件
QRSpeed词库示例:
adddic .* .*
t:adddic %参数1%
a:$替换 Э %参数-1%Э%t%Э$
A:$URLEncoder %a%$
u:http://域名/dic.php?q=%参数1%&a=%A%
h:$访问 %u%$
增加成功\r关键词:%参数1%\r回复:%h%

[\s\S]*(.*)[\s\S]*
h:$访问 http://域名/dic.php?q=%参数-1%$
如果:%h%==null
返回
如果尾
$执行 %h%$
*/
//header("content-type:text/html;charset=utf-8");
$x1="./dic/";
$q=$_GET["q"];
$a=$_GET["a"];
$t="/a.txt";
$and=$x1 . $q . $t;
mkdir($x1);
if ($a != "")
{
    mkdir($x1 . $q);
    file_put_contents($and,$a);
}
$l=file_get_contents($and);
if ($l == "")
{
    echo "null";
}
else
{
    echo $l;
}
?>
为了更便于学习和理解知识,我们提供了一些测试用API:
见文章测试用API-xiwangly的API

参考:
PHP官网
菜鸟教程-PHP
w3school-PHP
PHP中文网
萌新杰少的个人空间-bilibili--------有建站基础教程
【腾讯文档】分享网站--------更多请看这里

附件:(不保证安全性和可用性,仅供参考)

翻页:
上一节
下一节

知识共享许可协议(CC BY-NC-ND 4.0)
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
 

附件

最后编辑:
  • 支持
反馈: 萌新杰少

xiwangly

活捉一只老RBQ
管理成员
2020-02-27
95
72
18
Unicode码大全