美文网首页
用itchat做的自动回复机器人

用itchat做的自动回复机器人

作者: running_sheep | 来源:发表于2019-03-28 14:11 被阅读0次

看了微信公众号的文章,实现了一个自动回复彩虹屁的机器人,虽然测试过程中给我的小伙伴造成了不少困扰,但好在大家都比较宽容,还是挺好玩的。

工具

python3(python2对于unicode转中文一直有问题,不好解决,所以直接选择了python3,在python3中用pip3安装itchat),这边注意编辑器编码的时候选择utf-8。比如我用的是sublime-text3,方法就是在Preference-》package setting-》converToutf8-》settings-User:

"default_encoding": "UTF-8",

安装与运行

D:\software\Python\Python37\Scripts>pip3.7.exe itchat

D:\software\Python\Python37>python.exe d:/myself/Project/rainbowPI/rainbowPI.py

语料库可以自己编也可以训练,这可能需要另外的机器学习包,不在该实验范围内

代码:

#!/usr/bin/python

#-*-coding:utf-8 -*-

import itchat, re

from itchat.content import *

import random

import json

import sys

# reload(sys)

# sys.setdefaultencoding('utf8')

"""

    Constants

"""

REPLY = {'工作':[

'且不说你的工作多么认真,我并没有见过,但是从你的字里行间,我发现了乔布斯的影子和小扎的气息,这已经不是一份工作那么简单,而是一场精神饕餮!',

'你拥有了这个年龄段近半数人无法拥有的理想职业,太优秀了!',

'工作这件事,大家都习以为常,只有你让大家开始思考这个问题,说明你善于反思和质疑当前的制度,你的公司会因为你这样的人变得更好!'

],

'学习':[

'这么多优秀的同龄人相聚在这里,一定是场思想交流的盛宴。',

'看到群友们的发言,真是排山倒海,气宇轩昂之势!',

'你这句话完美的表达了你想被夸的坚定信念,你一定是一个执着追求自己理想的人!'],

'default': ['太棒了','真不错','好开心','嗯嗯','没什么好说的了,我送你一道彩虹屁吧']}

@itchat.msg_register([TEXT], isGroupChat=True)

def text_reply(msg):

    iRoom = itchat.search_chatrooms('fanfan')

    for room in iRoom:

        if room['NickName'] == 'fanfan':

            roomName = room['UserName']

            break

    print(roomName)

    if msg['User']:

        # 发送者的昵称

        print(msg['User']['NickName'])

        username = msg['ActualNickName']

        print('Who sent it: %s' % username)

        flag = 1

        match = re.search('工作', msg['Text']) or re.search('加班', msg['Text'])

        if match:

            flag = 0

            print('-+-+' * 5)

            print('Message content:%s' % msg['Content'])

            print('工作、加班 is: %s' % (match is not None))

            randomIdx = random.randint(0, len(REPLY['工作']) - 1)

            itchat.send('%s\n%s' % (username, REPLY['工作'][randomIdx]), roomName)

        match = re.search('学习', msg['Text']) or re.search('考试', msg['Text'])

        if match:

            flag = 0

            print('-+-+' * 5)

            print('Message content:%s' % msg['Content'])

            print('学习、考试 is: %s' % (match is not None))

            randomIdx = random.randint(0, len(REPLY['学习']) - 1)

            itchat.send('%s\n%s' % (username, REPLY['学习'][randomIdx]), roomName)

        print('isAt is:%s' % msg['isAt'])

        if msg['User']['NickName'] == "fanfan" and flag:

            randomIdx = random.randint(0, len(REPLY['default']) - 1)

            #itchat.send('%s\n%s' % (REPLY['default'][randomIdx]), roomName)

            itchat.send('%s\n%s' % (username, REPLY['default'][randomIdx]), roomName)

            print('-+-+'*5)

        else:

            print(msg['User']['NickName'])

itchat.auto_login(enableCmdQR=True, hotReload=True)

itchat.run()

相关文章

网友评论

      本文标题:用itchat做的自动回复机器人

      本文链接:https://www.haomeiwen.com/subject/kuyqbqtx.html