教你使用python搭建一个QQ机器人实现叫起床服务

作者:……快乐的√4 时间:2021-04-22 02:25:41 

前言

上一篇文章介绍了怎么配置机器人框架,并且实现了一些简单的功能。

(发送私聊或者群聊信息、接收上报的事件、简单的自动回复等等)

这次为了让QQ机器人更加智能,调用了一些实用的接口。

通过自己搭建的机器人实现定时叫女朋友起床、和女朋友聊天等功能。

教你使用python搭建一个QQ机器人实现叫起床服务

教你使用python搭建一个QQ机器人实现叫起床服务

如上图所示,我的机器人每天都会准时叫女朋友起床;并且在我忙的时候然而女朋友无聊的时候可以陪她聊一会天。

具体实现

以下实现的功能都需要机器人已经配置完成,并且已经写好了我上一篇文章的一些函数。

上一篇文章地址—>>>QQ机器人制作教程,超详细!

1、定时发送信息

要实现这个功能是不难的,只需要引入时间这个变量就可以了,具体代码如下(QQ号、里面的时间和msg自己改):


import datetime
import time
while True:
qq=女朋友qq号
   now = datetime.datetime.now()
   if(now.hour==0 and now.minute==0):
       send_msg({'msg_type': 'private', 'number': qq, 'msg': '晚安!'})
       send_msg({'msg_type': 'private', 'number': qq, 'msg':'[CQ:poke,qq={}]'.format(qq)})
       time.sleep(60)
       continue
   if (now.hour == 9 and now.minute == 30):
       send_msg({'msg_type': 'private', 'number': qq, 'msg': '起床了'})
       send_msg({'msg_type': 'private', 'number': qq, 'msg': '[CQ:poke,qq={}]'.format(qq)})
       time.sleep(60)
       continue
   else:
   continue

上述代码实现的是:每天零点给女朋友发晚安并戳她一下;每天早上九点半发起床了并戳她一下。

这些你自己可以改进,可以发表情包,甚至可以把代码里的'time.sleep(60)'删除,

那样就会在一分钟之内连续发信息轰炸她,强烈建议使用!

2、让机器人陪女朋友聊天

要实现这个功能需要借助API接口了,目前我找到的实用智能回复API接口地址:http://api.qingyunke.com/

教你使用python搭建一个QQ机器人实现叫起床服务

这个接口不仅仅可以聊天,还有一些实用的功能,如下图所示:

教你使用python搭建一个QQ机器人实现叫起床服务

要实现以上功能都需要获取女朋友给你发的信息,这个在上一篇文章已经写了,

获取到后直接调用接口返回结果,再发送给她即可。

下面直接上代码:


from receive import rev_msg
import requests
import json
import urllib.request
from urllib.parse import quote
import string
while True:
   try:
       rev = rev_msg()
       print(rev)
       if rev == None:
           continue
   except:
       continue
   if rev["post_type"] == "message":
       if rev["message_type"] == "private": #私聊
           message=rev['raw_message']
           if 'face' in message:
               qq = rev['sender']['user_id']
               img = rev['raw_message']
               send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
           elif 'image' in message:
               qq = rev['sender']['user_id']
               img=rev['raw_message']
               send_msg({'msg_type': 'private', 'number': qq, 'msg': img})
           elif '戳一戳' in message:
               qq = rev['sender']['user_id']
               send_msg({'msg_type': 'private', 'number': qq, 'msg': '别戳了'})
           else:
               url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg=' + message
               s = quote(url, safe=string.printable)
               try:
                   with urllib.request.urlopen(s) as response:
                       html = response.read()
                       # 将获取到的响应内容进行解码,并将json字符串内容转换为python字典格式
                       # 通过下标取到机器人回复的内容
                       qq = rev['sender']['user_id']
                       # print(eval(html.decode("utf-8"))["content"])
                       send_msg({'msg_type': 'private', 'number': qq,
                                 'msg': eval(html.decode("utf-8"))["content"].replace('{br}', '\n')})
                       # print(eval(html.decode("utf-8"))["content"])
               except:
                   qq = rev['sender']['user_id']
                   send_msg({'msg_type': 'private', 'number': qq, 'msg': '重新连接中。。。'})
   else:  # rev["post_type"]=="meta_event":
       continue

上述代码中,先判断"post_type"的类型,如果为message表明有人给机器人发消息了;

再看"message_type",如果为private表明这是私聊信息,当然如果为group表明这是群聊信息;

然后我们获取信息message=rev[‘raw_message'],拿到这个信息之后就可以设置关键词进行自己回复了。

我在代码中设置的'face' in message'image' in message是为了获取表情和图片,

对方发送什么就返回什么,因为那个智能回复接口识别不了表情和图片。

教你使用python搭建一个QQ机器人实现叫起床服务

教你使用python搭建一个QQ机器人实现叫起床服务

教你使用python搭建一个QQ机器人实现叫起床服务

3、调用一些有趣的接口

在聚合数据找了一些好玩的接口,有很多都是免费的。

教你使用python搭建一个QQ机器人实现叫起床服务

本文以星座运势为例子教大家怎么实现。

申请使用一个api会给你请求key,需要先实名认证。

申请一个接口后点击测试,输入两个请求参数即可返回结果。

教你使用python搭建一个QQ机器人实现叫起床服务

教你使用python搭建一个QQ机器人实现叫起床服务

python代码如下(需要使用自己的api请求key):


def horoscope(constellation):
   # 请求地址
   url = "http://web.juhe.cn/constellation/getAll?" + 'consName={}&type=today&key=自己的请求key'.format(constellation)
   # 发送get请求
   r = requests.get(url)
   # 获取返回的json数据
   result = r.json()['summary']
   print(result)
   return result
horoscope('摩羯座')

再把它整合到机器人程序里面:


if '星座运势' in message:
               try:
                   constellation = message.split(' ')[1]
                   text = horoscope(constellation)
                   qq = rev['sender']['user_id']
                   send_msg({'msg_type': 'private', 'number': qq, 'msg': text})
               except:
                   qq = rev['sender']['user_id']
                   send_msg({'msg_type': 'private', 'number': qq, 'msg': '请在星座前面加上空格。'})

教你使用python搭建一个QQ机器人实现叫起床服务

健康填报小助手开发中。。。

前几天一个辅导员朋友看了我的文章问我能不能制作一个qq机器人,关于健康填报小助手的。

他每天都要提醒学生健康填报,而且每次查看谁没填报的时候都需要登录网站统计数据才能获得,

这就难免会忘记或者说每天做这些事情太烦人了,于是想让我给他开发一个QQ机器人。

简单交流了一下,了解了这个QQ机器人需要有的功能:

  • 1、每天定时发送所有未进行健康报送的学生姓名

  • 2、辅导员戳一戳QQ机器人或者艾特它也会发送所有未进行健康报送的学生姓名

  • 3、设定一个特定的时间t,如果在t时间之后还未进行报送的将会被QQ机器人私聊

以上就是教你使用python搭建一个QQ机器人实现叫起床服务的详细内容,更多关于python搭建QQ机器人的资料请关注脚本之家其它相关文章!

来源:https://blog.csdn.net/qq_44809707/article/details/119981592

标签:python,QQ机器人
0
投稿

猜你喜欢

  • Python使用Flask Migrate模块迁移数据库

    2023-08-10 09:17:30
  • 在数据库中自动生成编号的实现方法分享

    2011-11-03 16:55:24
  • python里面单双下划线的区别详解

    2023-03-22 12:39:22
  • pytorch 优化器(optim)不同参数组,不同学习率设置的操作

    2021-09-14 05:05:44
  • JavaScript游戏开发之键盘控制层的移动

    2008-09-13 19:29:00
  • 教你恢复SQLSERVER的master系统库的方法

    2024-01-21 05:21:55
  • python flask sqlalchemy连接数据库流程介绍

    2024-01-23 18:34:36
  • python高阶函数functools模块的具体使用

    2022-12-08 09:03:15
  • Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份

    2024-01-13 19:12:27
  • MySQL Order By索引优化

    2011-01-04 19:56:00
  • python使用Matplotlib画条形图

    2023-09-04 06:30:50
  • 去掉前面的0的sql语句(前导零,零前缀)

    2024-01-25 22:25:23
  • 解决python3在anaconda下安装caffe失败的问题

    2023-01-30 03:22:43
  • Django celery异步任务实现代码示例

    2021-12-10 21:38:40
  • 无惧面试,带你搞懂python 装饰器

    2022-07-29 19:29:00
  • Python3安装Scrapy的方法步骤

    2021-01-07 19:15:46
  • Python中实现最小二乘法思路及实现代码

    2021-06-17 02:23:24
  • 数据库应用经验:如何简单安装MySQL数据库

    2009-01-04 12:58:00
  • 使用python flask框架开发图片上传接口的案例详解

    2021-12-26 05:54:30
  • mysql 重要日志文件汇总

    2024-01-28 20:34:55
  • asp之家 网络编程 m.aspxhome.com