应用环境:
马上就要过年了,面对各种(群发)祝福忙不暇接(不厌其烦),懒得手动粘贴回复了就写了一个这个。
资源:
python3.6 itchat库
内容:
数据库链接部分:
直接连进了本地的mysql,为了防止某些撤回,或者说消息太多了漏看,也可以学习一下新的拜年姿势,后续也可以做做对比什么的。
配置自己的host(数据库主机地址),user(登录用户名),pssword(密码),database(数据库名)
自定义方法 addMsg 用于向数据库中插入最新的消息内容,涉及两个参数name发送人昵称 con信息内容
自定义方法 selectMsg 用于在数据库中查询该用户是否向你发送过消息,避免重复发送,涉及一个参数 item 用户发送的信息列表本身
(代码如下图)
消息回复部分:
主要针对对方发送的文字信息,或者群里@到你的信息,经过筛选和存储后,给对应发送人回复消息
(代码如下图)
信息筛选部分:
这一块比较简单,主要针对接收到的消息判断是否包含某些字或者词进行回复
(代码如下图)
存完的信息如下
全部代码:
全部代码:
# coding-utf-8
import mysql.connector
import itchat,time
from itchat.content import *
#初始化参数
words=['新年','快乐','幸福','如意','过年好']#用于判断包含的关键词列表
#验证是否包含的方法
def yanzheng(msgu):
ifhas = False
for word in words :
if msgu.find(word)>=0 :
ifhas = True
break
return ifhas
#链接数据库
host="localhost", # 数据库主机地址
user="root", # 数据库用户名
passwd="", # 数据库密码
database="newyear" #数据库名
)
mycursor = mydb.cursor()
def addMsg(name,con):
sql = "INSERT INTO messages (user,content,`times`) VALUES (%s, %s ,%s)"
val = (name, con,time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
mycursor.execute(sql, val)
mydb.commit()
return mycursor.rowcount
def selectMsg(item):
sql2 = "SELECT * FROM messages WHERE user = %s"
val2 = (item['User']['NickName'],)
mycursor.execute(sql2, val2)
myresult = mycursor.fetchall()
#print(myresult)
if myresult :
toadd = addMsg(item['User']['NickName'],item['Text'])
if toadd == 1 :
print(item['User']['NickName'],'又给你发了一条消息,已记录')
return 0
else :
toadd = addMsg(item['User']['NickName'],item['Text'])
if toadd == 1 :
return 1
#微信消息获取
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])#文字消息接受
def simple_reply(msg):
cunzai = yanzheng(msg['Text'])
if cunzai :
tosel = selectMsg(msg)
if tosel == 1 :
itchat.send_msg('可爱的祈代表主人祝您及您的家人新年快乐呐~主人也会一直爱着您喏~',toUserName=msg['FromUserName'])
itchat.send_msg('(づ ̄3 ̄)づ╭❤~',toUserName=msg['FromUserName'])
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])#图片消息
def img_reply(msg):
itchat.send('@img@%s' % 'mmd.jpg',toUserName=msg['FromUserName'])
@itchat.msg_register(TEXT, isGroupChat=True)#这个是回复群消息
def text_reply(msg):
if msg.isAt:
cunzai = yanzheng(msg['Text'])
if cunzai :
itchat.auto_login(True)
itchat.run()
领取专属 10元无门槛券
私享最新 技术干货