馬上就要過年了,好多小伙伴都已經(jīng)順利到家。在這提前祝大家:新年快樂。
昨天發(fā)現(xiàn)自己的 itchat 終于可以登陸了(差不多被封了兩個(gè)月),馬上就要過年了,必須用 itchat 搞點(diǎn)事情--實(shí)現(xiàn)自動(dòng)回復(fù)微信好友新年祝福。當(dāng)然除了這個(gè)還可以做個(gè)祝福語(yǔ)群發(fā)助手,但是比較慫怕再次被封,畢竟上次就是因?yàn)槿喊l(fā)被封的。話不多說,來看今天的程序。
先上圖讓大家感受一下
這是第三次寫關(guān)于 itchat 的文章了,沒什么技術(shù)含量,照著 API 寫就可以,程序的功能簡(jiǎn)單地說就是當(dāng)微信好友給你發(fā)新年祝福時(shí),你隨機(jī)回復(fù)一條祝福語(yǔ),同時(shí),自動(dòng)回復(fù)過的好友不再回復(fù),祝福語(yǔ)前面會(huì)加上微信好友的備注/昵稱,這樣看起來不是特別像自動(dòng)回復(fù)。用到的模塊:itchat 模塊、requests 模塊以及一些 Python 自帶的模塊。
獲取新年祝福語(yǔ)
也許大家會(huì)有疑問自動(dòng)回復(fù)的祝福語(yǔ)從哪獲取呢?給大家推薦一個(gè)神奇的網(wǎng)站愛集合數(shù)據(jù)。
傳送門:
http://www.xjihe.com/home/api
我們用到的祝福語(yǔ)就是通過這個(gè)網(wǎng)站來獲取。
具體獲取哪種數(shù)據(jù),網(wǎng)站已經(jīng)做了很詳細(xì)的說明,大家照著實(shí)現(xiàn)就可以,然后 apiKey 需要自己注冊(cè)獲取。
1# 獲取新年祝福語(yǔ)
2def GetRandomGreeting():
3 res = requests.get('http://www.xjihe.com/api/life/greetings?festival=新年&page=10', headers = {'apiKey':'sQS2ylErlfm9Ao2oNPqw6TqMYbJjbs4g'})
4 results = res.json()['result']
5 return results[random.randrange(len(results))]['words']
通過 requests 進(jìn)行請(qǐng)求,獲取新春祝福語(yǔ),使用 random 隨機(jī)生成。
發(fā)送新年祝福語(yǔ)
# 發(fā)送新年祝福語(yǔ)
2def SendGreeting(msg):
3 global replied
4 friend = itchat.search_friends(userName=msg['FromUserName'])
5 if friend['RemarkName']:
6 itchat.send((friend['RemarkName']+','+GetRandomGreeting()), msg['FromUserName'])
7 else:
8 itchat.send((friend['NickName']+','+GetRandomGreeting()), msg['FromUserName'])
9 replied.append(msg['FromUserName'])
信息的發(fā)送通過 itchat 來實(shí)現(xiàn),關(guān)于 itchat 之前做過很多次介紹,消息的發(fā)送在智障機(jī)器人的文章已經(jīng)做了詳細(xì)介紹,這一模塊比較簡(jiǎn)單,大家也可以參照 API 來實(shí)現(xiàn)。
API:
https://pypi.org/project/itchat/1.0.11/
# 文本消息
2@itchat.msg_register([TEXT])
3def text_reply(msg):
4 if '年' in msg['Text'] and msg['FromUserName'] not in replied:
5 SendGreeting(msg)
6
7
8# 其他消息
9@itchat.msg_register([PICTURE, RECORDING, VIDEO, SHARING])
10def others_reply(msg):
11 if msg['FromUserName'] not in replied:
12 SendGreeting(msg)
這里做了一個(gè)簡(jiǎn)單的判斷,如果對(duì)方給你發(fā)送的消息中含有【年】,就認(rèn)為是對(duì)方給你發(fā)送新春祝福,實(shí)現(xiàn)自動(dòng)回復(fù),當(dāng)然你也可以將這個(gè)判斷條件設(shè)置的更加準(zhǔn)確。如果收到圖片,語(yǔ)音,視頻,表情包等消息,則不會(huì)自動(dòng)回復(fù)。
項(xiàng)目地址:
https://github.com/AhabWang/AhabCode
(本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系作者。)
聯(lián)系客服