小鲸鱼( @Mr.Greeting )是一个早晚安问候机器人。
请确保了你看了前面两个 Demo,有些知识在前面学习过而在这里直接使用。为了简化,Demo 中只进行了晚上的问候。
下面我们直接看代码:
import time
import random
import shelve
import fanfou
# 请修改为你的 Consumer
consumer = {'key': 'consumer key', 'secret': 'consumer secret'}
# 请修改为你的 ID 和密码
client = fanfou.XAuth(consumer, 'username', 'password')
fanfou.bound(client)
db = shelve.open('greet.dbm')
kw_words = ['晚安', '好梦', 'Good night', 'Good Night',
'good night', 'お休みなさい', 'おやすみなさい']
reply_words = ['Good night~', 'Sweet dream~',
'おやすみなさい~', '晚安~', '晚安哦~']
resp = client.statuses.home_timeline()
for item in resp.json():
status_id = item['id']
if status_id in db.keys():
continue
for kw in kw_words:
if kw in item['text']:
reply = random.choice(reply_words)
status = '%s 转@%s %s' % (reply, item['user']['name'], item['text'])
body = {'status': status, 'repost_status_id': status_id}
try:
client.statuses.update(body)
break
except:
pass
db[status_id] = True
上面的代码都是我们学习过的,需要提的一点是,已经转发了的消息我们把需要把 id 加入 db 中,这样才不会造成重复转发。完整的代码可以点击 greeting.py 查看。
教程中的 Demo 机器人简化了一些情况,这是为了方便讲解。现在正在运行的诗词君和小鲸鱼的代码可在 fanfou-bot 中找到,你会发现并没有复杂多少,大体结构和我们的 Demo 很相似。
去动手写你的机器人吧,写好记得告诉我喔 ^_^ 。