
当前需要为QQ组的用户提供搜索服务. 用户发送一个关键字,然后机器人返回一个链接. 如下图所示:

IMG_20181101_155946.jpg

Cool Q是已经运行和维护了很长时间的家用QQ机器人软件. 生态系统已经成熟,并且有一个免费版本,足以开发一个简单的机器人. 但是,KuQ用彝语编写. 如果您直接使用KuQ进行二次开发,则会更加麻烦. 您需要了解Yi语言或C ++和其他系统级编程语言. 幸运的是,丹尼尔(Daniel)在互联网上开发了一些库,以便其他语言可以使用http方法调用CoolQ的DLL接口来促进二次开发. 例如.
由于CoolQ是Windows软件,因此需要Windows服务器来运行机器人,但借助wine,它也可以在Linux上运行. 提供一个集成了CoolQ和上述插件的镜像,可以轻松创建一个集成了CoolQ的Docker:
$ docker pull richardchien/cqhttp:latest
$ mkdir coolq # 用于存储酷 Q 的程序文件
$ docker run -ti --rm --name cqhttp-test \
-v $(pwd)/coolq:/home/user/coolq \ # 将宿主目录挂载到容器内用于持久化酷 Q 的程序文件
-p 9000:9000 \ # noVNC 端口,用于从浏览器控制酷 Q
-p 5700:5700 \ # HTTP API 插件开放的端口
-e COOLQ_ACCOUNT=123456 \ # 要登录的 QQ 账号,可选但建议填
-e CQHTTP_POST_URL=http://example.com:8080 \ # 事件上报地址
-e CQHTTP_SERVE_DATA_FILES=yes \ # 允许通过 HTTP 接口访问酷 Q 数据文件
richardchien/cqhttp:latest

然后访问: 9000 /,输入noVNC(默认密码MAX8char),登录至Cool Q,然后就可以开始使用它了. 下图显示了一个通过酒在酒中运行的很酷的Q:

TIM屏幕截图219.png

然后,部署一个程序,以便CoolQ可以报告捕获的消息,通过该程序进行处理,然后将其返回给CoolQ,然后QQ机器人可以自动答复.
以下是用.net核心编写的简单处理程序:
[HttpPost]
[ActionName("Index")]
public JsonResult Process()
{
using (StreamReader str = new StreamReader(Request.Body, Encoding.UTF8))
{
var json = str.ReadToEnd();
JObject obj = JObject.Parse(json);
var post_type = obj["post_type"].ToString();
if (post_type == "message")
{
var message_type = obj["message_type"].ToString();
var message = obj["message"].ToString();
if (message.StartsWith("找"))
{
message = Uri.EscapeDataString(message.Replace("找", string.Empty));
StringBuilder sb = new StringBuilder();
sb.AppendLine($"盘搜下载:http://pansou.com/?q={message}");
sb.AppendLine("---------------------");
sb.AppendLine($"盘搜搜下载:http://www.pansoso.com/zh/{message}");
sb.AppendLine("---------------------");
sb.AppendLine($"番茄下载:https://www.fqsousou.com/s/{message}.html");
sb.AppendLine("---------------------");
sb.AppendLine($"去转盘下载:http://www.quzhuanpan.com/source/search.action?q={message}");
return Json(new { reply = sb.ToString(), at_sender = "true" });
}
}
return Json(new { at_sender = "false" });
}
}

根据用户发送的关键字,组合搜索网址,用户可以单击进入相应的磁盘搜索,更加方便.
此处应注意,如果程序与CoolQ部署在同一台计算机上,则事件报告地址不能. 因为docker与主机的真实IP地址不在同一网段上. 您可以使用ip addr show docker0 | grep -Po'inet \ K [\ d. ] +'查找从容器访问的主机的IP地址.
开发QQ机器人实际上非常简单,只需执行更多操作即可.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shumachanpin/article-307577-1.html
数量不是决定一切
本来不信的也信了
马云在体制外演讲