武汉疫情牵动着全国人民的心,各大网站纷纷制作了实时疫情播报网站,来让大家能及时地了解到疫情的最新进展。
腾讯:https://news.qq.com/zt2020/page/feiyan.htm
丁香园:https://ncov.dxy.cn/ncovh5/view/pneumonia
然而对一些老年人或者其他群体来说,要让他们上网查看疫情仍然比较困难或者不方便。本文描述了怎么样从零开始制作一个能实时播报疫情的QQ机器人,这是最后的效果图:
用以简化疫情信息的获取途径,传播正能量的同时学习.Net的开发技巧。
本文的源代码可在码云上获取:https://gitee.com/akitosilver/CoronavirusQQRobot
1.前置开发环境:
本文使用Visual Studio 2019社区版开发,.Net SDK为3.1
QQ机器人采用酷Q Air:https://cqp.cc/
QQ机器人接口采用Newbe.Mahua:https://www.newbe.pro/Newbe.Mahua/Begin-First-Plugin-With-Mahua-In-v1.9/
2.原理讲解:
本文的框架如图所示。
要发送疫情,首先我们要先获得数据:
源码分别抓取了腾讯和丁香园的数据,这里我们以腾讯为例:
首先用Chrome打开腾讯实时疫情播报的首页,按下F12,到网络标签,随便在Search里搜索一个数据相关的数字,如下图,即可获得腾讯播报的数据接口:
数据为标准的Json,粘贴到Json格式化工具里分析:
获得其Json的结构,大概是:
获得了JSON的结构后,我们把这个JSON接口转化为我们C#的类
HTTP下载JSON之后反序列化,即实现了数据的抓取:
利用Timer类,我们可以让我们的程序定时(几分钟)抓取一次这个数据,这里不再赘述。
2.发送数据:
发送数据部分请详细参考源代码与Newbe.Mahua文档:https://www.newbe.pro/Newbe.Mahua/Begin-First-Plugin-With-Mahua-In-v1.9/
简单来说我们之后只需要遍历这个JSON数据对应的类,找到地区数据发送即可。
————————————————
版权声明:本文为CSDN博主「玩硬件」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/AkitoSilver/article/details/104167702
C# QQ群管理机器人
2.创建一个类库
注: .NetCore、 .NetStandard 无法生成DLL , 请使用 .Net Framework 项目
1.使用Visual Studio 2019 及以上版本创建一个 .net framework 4.6.1 及以上的 类库项目
3.上面整完以后就是代码了
3.1注: .GroupMsgEvent是群监听事件,这个是复读机别人说什么就会回复什么
using XQ.Net.SDK.Attributes;
using XQ.Net.SDK.EventArgs;
[assembly: XQPlugin("XQ.Net.Test", "Heer", "1.0.0", "XQ.Net测试用插件-现在是个复读机辣")]
namespace XQ.Net.Test
{
[Plugin]
public class Lalala
{
[GroupMsgEvent]
public static void onGroupMsg(object sender, XQAppGroupMsgEventArgs e)
{
e.FromGroup.SendMessage(e.RobotQQ,e.Message.Text);
}
}
}
3.2注: .再贴一个单纯监听群消息的方法
[GroupMsgEvent]
public static void onGroupMsg(object sender, XQAppGroupMsgEventArgs e)
{
var qQGroup= e.FromGroup.Id;//来自那个群号
var fromQQ= e.FromQQ.Id; //消息发送人QQ
var text = e.Message.Text; //消息内容
}
4.编译,导出插件
注: .在保证代码不出现错误情况下,重新生成解决方案,打开解决方案文件夹
5.使用插件
注: .需下载先驱exe 打开插件扩展右键添加即可
总结
两个字舒服,不懂的可留言
————————————————
版权声明:本文为CSDN博主「优乐美 」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41743173/article/details/111060857