python实现微信小程序自动回复


Posted in Python onSeptember 10, 2018

本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能,必须在自己的微信中添加微信号xiaoice-ms(微软的微信机器人)才能实现,直接复制代码运行之后扫一扫二维码即可,经过测试,该程序能够保持几小时的时间。

实现原理,将别人发送给你的消息转发给AI小冰,然后再将AI的回复转回给那个人。

群消息也是如此,此外还添加了新年问候语,是否与他人进行AI聊天等功能。不过只能实现文本消息以及微信自带表情的转发,不能转发表情、语音等。

# -*-coding:utf-8-*-
import itchat
import itchat.content as itcontent

# 登录网页微信,hotReload=True 能让登录时间加长
itchat.auto_login(hotReload=True)

# 记录公众号机器人小冰的UserName
mps = itchat.search_mps(name='小冰')
AI = mps[0]['UserName']
# print(AI)

# 记录自己的UserName,不然发送消息会发两遍
username = itchat.get_friends()
user = username[0]['UserName']
# print(username)

# 记录好友列表里好友的 UserName
friendsname = [friend['UserName'] for friend in username if friend['UserName'] != user]
# print(friendsname)

groupname = itchat.get_chatrooms()
groups = [group['UserName'] for group in groupname]


# 这个说来话长~~,有兴趣的可以去上网查查
@itchat.msg_register(itcontent.TEXT, isFriendChat=True, isMpChat=True, isGroupChat=True)
def simple_reply(msg, FriendList=[]):
  Fromuser = msg['FromUserName']

  # 如果是AI而且列表不为空,就将AI发给自己的消息转发给发送消息者
  if msg['FromUserName'] == AI and FriendList:
    # print(msg['FromUserName'])
    itchat.send(msg['Text'], toUserName=FriendList[-1])

  elif Fromuser in friendsname:
    if '新年' in msg['Text']:
      return '新年快乐,祝您身体健康,万事胜意。'

    # 记录发送消息者入FriendList中
    elif Fromuser not in FriendList and msg['Text'] == '小小冰真漂亮':
      FriendList.append(Fromuser)
      return '通信建立成功'

    # 第一次发送消息过来,回复以下内容
    elif Fromuser in FriendList:
      if msg['Text'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
        FriendList.remove(Fromuser)
        return '再见,和您聊天十分开心,希望您今天过得愉快!'
      else:
        FriendList.append(Fromuser)
        itchat.send(msg['Text'], toUserName=AI)

    else:
      text = '''Mr.D先生现在不在,我是助手AI,有要事请拨打号码:xxxxxxxxxxx。如果想和我聊天,那就大声地说"小小冰真漂亮
            (回复‘小小冰再见/小小冰晚安/小小冰下次聊'可结束此次聊天。)"'''
      return text

  elif Fromuser in groups:
    if msg.isAt:
      if '新年' in msg['Content']:
        return '新年快乐,祝您身体健康,万事胜意。'
      elif Fromuser not in FriendList and msg['Content'] == '小小冰真漂亮':
        FriendList.append(Fromuser)
        return '通信建立成功'
      elif Fromuser in FriendList:
        if msg['Content'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
          FriendList.remove(Fromuser)
          return '再见,和您聊天十分开心,希望您今天过得愉快!'
        else:
          FriendList.append(Fromuser)
          itchat.send(msg['Content'], toUserName=AI)
      else:
        text = '''Mr.D先生现在不在,我是助手AI,有要事请拨打号码:xxxxxxxxxxx。如果想和我聊天,那就大声地说"小小冰真漂亮
            (回复‘小小冰再见/小小冰晚安/小小冰下次聊'可结束此次聊天。)"'''
        return text

    elif msg['Text'] == '小小冰真漂亮':
      FriendList.append(Fromuser)
      return '通信建立成功'

    elif Fromuser in FriendList:
      if msg['Text'] in ['小小冰再见', '小小冰晚安', '小小冰下次聊']:
        FriendList.clear()
        return '再见,和您聊天十分开心,希望您今天过得愉快!'
      elif '新年' in msg['Text']:
        return '新年快乐,祝您身体健康,万事胜意。'
      else:
        FriendList.append(Fromuser)
        itchat.send(msg['Text'], toUserName=AI)

        # 如果是自己发送消息,则清空列表
  elif Fromuser == user:
    FriendList.clear()

  # 其他公众号信息,就通知一声给微信文件助手
  else:
    itchat.send('公众号信息', toUserName='filehelper')


@itchat.msg_register([itcontent.PICTURE, itcontent.RECORDING, itcontent.VIDEO, itcontent.MAP], isFriendChat=True,
           isGroupChat=True, isMpChat=True)
def return_text(msg):
  text = '我不具备识别语音与图片等功能,请说普通话。'
  return text


itchat.run()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python类的多重继承问题深入分析
Nov 09 Python
python处理二进制数据的方法
Jun 03 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
python匿名函数用法实例分析
Aug 03 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python实现简繁体转换
Jun 07 Python
python scrapy简单模拟登录的代码分析
Jul 21 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 Python
python中map的基本用法示例
Sep 10 #Python
python2 与 pyhton3的输入语句写法小结
Sep 10 #Python
django DRF图片路径问题的解决方法
Sep 10 #Python
详解python中Numpy的属性与创建矩阵
Sep 10 #Python
tensorflow使用神经网络实现mnist分类
Sep 08 #Python
Python unittest单元测试框架总结
Sep 08 #Python
tensorflow实现加载mnist数据集
Sep 08 #Python
You might like
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
不要用强制方法杀掉python线程
2017/02/26 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
python输入多行字符串的方法总结
2019/07/02 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
YUV转为jpg图像的实现
2019/12/09 Python
Python unittest框架操作实例解析
2020/04/13 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
5款实用的python 工具推荐
2020/10/13 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
打架检讨书2000字
2014/02/22 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
学校联谊协议书
2014/09/16 职场文书
群众路线剖析材料
2014/09/30 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
mysql中整数数据类型tinyint详解
2021/12/06 MySQL