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 面向对象 成员的访问约束
Dec 23 Python
线程和进程的区别及Python代码实例
Feb 04 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
Python 给屏幕打印信息加上颜色的实现方法
Apr 24 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
原生python实现knn分类算法
Oct 24 Python
如何基于Python批量下载音乐
Nov 11 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
js身份证验证超强脚本
2008/10/26 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python有证书的加密解密实现方法
2014/11/19 Python
Python实现LRU算法的2种方法
2015/06/24 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python2.7到3.x迁移指南
2018/02/01 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
详解Scrapy Redis入门实战
2020/11/18 Python
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
小学生开学感言
2014/02/28 职场文书
县级文明单位申报材料
2014/05/23 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
店铺转让协议书
2014/12/02 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书