昨天逛聚能聊的时候,看到一个话题2018程序员拜年的奇思妙想,涨姿势了,里面给出了一个实现自动回复的代码。
第一次接触itchat,虽然之前也听说过,这个可以用来弄微信机器人。
于是,强烈的搞事情精神驱使着我,在网上又搜了一下。
itchat详细讲解请看:SegmentFault-python实现微信接口(itchat)
然后看了简书上的一个代码:12行Python代码,自在随心应付微信拜年群发
本来以为直接可以用,确实可以。
简书中这段代码的优点:
- 这个自动回复代码设置了防止对一个人重复发问候,防止聪明的朋友怀疑是自动回复,然后重复发“新年好”,而你不停的“回复”新年问候,这样设置了防止重复,就能有效避免了尴尬情况发生。即使怀疑也不至于太尴尬。
- 自动提取你对好友的备注名称最为回复的称呼,这样是不是更逼真了呢?
但也有缺点:
- 但是里面的的短息祝福语API稍微有点老套了
- 有时候会自动回复“ 我的猴年愿望:从今天起你只准疼我一个,要宠我,不许骗我,答应我的每一件事都要做到,对我说的每一句话都要真心”
- 自动回复的内容老套,而且不能控制,万一对方是基(女)友(票),回复错了怎么办。。。
于是稍微简单的修改了一下,代码可直接用在python3环境中,你只需下载一个itchat和requests的包。
# -*- coding:utf-8 -*-
import itchat, time, requests, random
from itchat.content import *
replied = []
@itchat.msg_register([TEXT])
def text_reply(msg):
if '年' in msg['Text'] and msg['FromUserName'] not in replied:
sendGreeting(msg)
@itchat.msg_register([PICTURE, RECORDING, VIDEO, SHARING])
def other_reply(msg):
if msg['FromUserName'] not in replied:
sendGreeting(msg)
def sendGreeting(msg):
global replied
friend = itchat.search_friends(userName=msg['FromUserName'])
itchat.send((friend['RemarkName']+' '+getRandomGreeting()), msg['FromUserName'])
replied.append(msg['FromUserName'])
##列表中的祝福语可以替换成你想要的,可能我这个也俗套了。。。
greeting_list=['狗年送你五只狗:机灵诡秘如猕狗,健康快乐像马狗,富贵悠然似金丝狗,无忧无虑比猿狗,聪明伶俐胜孙狗。',' 大红灯笼高高挂,挂出吉祥;欢歌笑语阵阵飘,飘出喜庆;鞭炮礼花声声响,响出美好;真挚祝福条条发,发出心声:祝你狗年新年乐翻天,欢天喜地笑开颜!','年到,我许下愿望,愿你:寒冷时,有人送暖不畏寒;饥饿时,有人送饭不担忧;困难时,有人伸手来扶持;孤单时,有人陪伴寂寞消。愿你开心每一天!']
length_list=len(greeting_list)
def getRandomGreeting():
index=int(random.random()*3)
greeting=greeting_list[index]
return greeting
itchat.auto_login(hotReload=True)##保留登录的状态,之后不再用扫二维码
itchat.run()