要过年啦!啥?朋友太多?用python实现一个完美的自动回复吧

简介: 用python中itchat实现的一个简单的问候自动回复,简单但实用( ̄︶ ̄)↗ 

昨天逛聚能聊的时候,看到一个话题2018程序员拜年的奇思妙想,涨姿势了,里面给出了一个实现自动回复的代码。

第一次接触itchat,虽然之前也听说过,这个可以用来弄微信机器人。

于是,强烈的搞事情精神驱使着我,在网上又搜了一下。

itchat详细讲解请看:SegmentFault-python实现微信接口(itchat)

然后看了简书上的一个代码:12行Python代码,自在随心应付微信拜年群发

本来以为直接可以用,确实可以。

简书中这段代码的优点:

  1. 这个自动回复代码设置了防止对一个人重复发问候,防止聪明的朋友怀疑是自动回复,然后重复发“新年好”,而你不停的“回复”新年问候,这样设置了防止重复,就能有效避免了尴尬情况发生。即使怀疑也不至于太尴尬。
  2. 自动提取你对好友的备注名称最为回复的称呼,这样是不是更逼真了呢?

但也有缺点:

  1. 但是里面的的短息祝福语API稍微有点老套
  2. 有时候会自动回复“ 我的猴年愿望:从今天起你只准疼我一个,要宠我,不许骗我,答应我的每一件事都要做到,对我说的每一句话都要真心”
  3. 自动回复的内容老套,而且不能控制,万一对方是基(女)友(票),回复错了怎么办。。。

于是稍微简单的修改了一下,代码可直接用在python3环境中,你只需下载一个itchatrequests的包。

# -*- 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()
目录
相关文章
|
6月前
|
Python
过年了,让GPT用Python给你写个放烟花的程序吧!
过年了,让GPT用Python给你写个放烟花的程序吧!
89 0
|
Python
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1633 0
Python实现因子分析(附案例实战)
Python print() 打印两个 list ,实现中间换行
Python print() 打印两个 list ,实现中间换行
|
算法 大数据 Python
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
155 2
Leedcode 每日一练 搜索二维矩阵Ⅰ Python实现
|
机器学习/深度学习 算法 Python
利用python实现逻辑回归(以鸢尾花数据为例)
利用python实现逻辑回归(以鸢尾花数据为例)
276 0
利用python实现逻辑回归(以鸢尾花数据为例)
|
存储 数据安全/隐私保护 计算机视觉
python 实现pacs功能 推送下拉影像
python 实现dcmtk关联pacs功能 推送下拉影像
287 0
python 实现pacs功能 推送下拉影像
|
前端开发 Python
Leecode加法题目3个 每日练习 Python实现
Leecode加法题目3个 每日练习 Python实现
112 0
Leecode加法题目3个 每日练习 Python实现
|
iOS开发 Python
Python实现微信消息连续发送
Python实现微信消息连续发送
Python实现微信消息连续发送
python实现微信小游戏“飞机大战”
python实现微信小游戏“飞机大战”
python实现微信小游戏“飞机大战”
|
机器学习/深度学习 算法 数据可视化
Python实现聚类分析和数据降维
Python实现聚类分析和数据降维
906 0
Python实现聚类分析和数据降维