600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 微信聊天机器人[过年防信息轰炸 自动回复拜年消息]

微信聊天机器人[过年防信息轰炸 自动回复拜年消息]

时间:2019-02-06 01:49:08

相关推荐

微信聊天机器人[过年防信息轰炸 自动回复拜年消息]

独角兽企业重金招聘Python工程师标准>>>

微信聊天机器人

背景

想静静的撸会儿代码(睡觉)学习一下

功能

自动回复好友拜年消息好友找你聊天时,图灵机器人自动回复群里被@时,图灵机器人自动回复统计有多少个人主动给你发拜年消息记录把你拉黑的好友,方便清理微信好友列表自动发送拜年信息给所有没有主动发你拜年消息的好友(如果你有朋友先发给你的话)

准备

python3

pip3 intall itchat

code

#!/usr/bin/env python3import timeimport itchatimport requestsimport jsonfrom itchat.content import *blessing = ['祝愿', '福', '快乐', '新年', '过年', '吉祥', '大吉', 'new year'] # 收到的祝福关键词send_me_friends = {} # 不发送的好友微信名set_time = '-02-01 00:00:00' # 设置群发时间you_blessing = '祝愿您在新的一年里,所有的希望都能如愿,所有的梦想都能实现,所有的等候都能出现,所有的付出都能兑现。' # 你自己定义的新年祝福blacklist_dict = {}send_status = 0@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])def text_reply(msg):global send_statusif not send_status:if get_sys_time() >= set_stamp():send_status = 1send_msg(msg)# 当消息不是由自己发出的时候if not msg['FromUserName'] == myUserName:# 发送一条提示给文件助手itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),msg['User']['NickName'],msg['Text']), 'filehelper')for i in blessing:if i in msg['Text']:# 先给自己发的就加入列表,之后计时发送的时候就跳过这些用户send_me_friends[msg['User']['NickName']] = msg['User']['RemarkName']return u'[主人比较懒,早早的去撸代码(shuijiao)去了]机器人助理带主人对您说:{}'.format(you_blessing)elif check_msg(msg):returnelse:continuereturn u'[Medivh的机器人助理]说:{}'.format(tuling(msg['Text']))@itchat.msg_register(TEXT, isGroupChat=True)def group_reply(msg):# 只有群里@自己的时候回复,其他忽视,包括@allif msg['IsAt']:itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),msg['User']['NickName'],msg['Text']), 'filehelper')return u'[Medivh的机器人助理]说:{}'.format(tuling(msg['Text']))def send_msg(msg):# 如果都到你设置的时间了,还是没有人给你祝福,我看还是洗洗睡吧friends = itchat.get_friends(update=True)for name in friends[1:]:if check_msg(msg):returnif name.NickName not in send_me_friends:print('正在给{}发消息~'.format(name.NickName))itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime'])),'name.NickName', #msg['Text']), 'filehelper')return u'{}'.format(you_blessing)else:passreturndef tuling(info):appkey = "e5ccc9c7c8834ec3b08940e290ff1559"url = "/openapi/api?key=%s&info=%s" % (appkey, info)req = requests.get(url)content = req.textdata = json.loads(content)answer = data['text']return answerdef get_sys_time():sys_time = time.time()return sys_timedef set_stamp():# 将其转换为时间数组time_array = time.strptime(set_time, '%Y-%m-%d %H:%M:%S')# 转换为时间戳time_stamp = int(time.mktime(time_array))return time_stampdef check_msg(msg):if msg['Text'] == '消息已发出,但被对方拒收了。':blacklist_dict[msg['User']['NickName']] = msg['User']['RemarkName']return Trueelse:return Falseif __name__ == '__main__':itchat.auto_login(hotReload=True)# 获取自己的UserNamemyUserName = itchat.get_friends(update=True)[0]["UserName"]itchat.run()print('今年主动给你发送半年消息的有{}个人,名单如下:\n {}'.format(len(send_me_friends), send_me_friends))print('今年被拉黑了{}次,名单如下:\n {}'.format(len(blacklist_dict), blacklist_dict))

群里被@的效果

小窗口聊天效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。