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脚本实现格式化css文件
Apr 08 Python
为Python程序添加图形化界面的教程
Apr 29 Python
python实现从字典中删除元素的方法
May 04 Python
详解Python中find()方法的使用
May 18 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
利用python发送和接收邮件
Sep 27 Python
Python 修改列表中的元素方法
Jun 26 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
Python测试框架:pytest学习笔记
Oct 20 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 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
PHP生成条形码大揭秘
2015/09/24 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
原生js实现日期联动
2015/01/12 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
python re模块findall()函数实例解析
2018/01/19 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
Python魔法方法详解
2019/02/13 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python实现时间序列可视化的方法
2019/08/06 Python
pygame实现打字游戏
2021/02/19 Python
基于python实现模拟数据结构模型
2020/06/12 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
汽车广告策划方案
2014/05/31 职场文书
师范生求职信
2014/06/14 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python