我正在尝试编写一个机器人,有时似乎它创建了 - 有时候 - 重复的消息。
我收到此错误
{
u'message': u'Status is a duplicate.', u'code': 187
}
我需要验证上次更新的状态是否与我要编写的消息类似。有没有办法提取最后一次更新?我正在检查,但无法找到解决方案,是否有任何pythonic tweepy guru周围提供一些提示?
答案 0 :(得分:0)
这应该很简单,首先,您需要在时间轴上提取最新的推文,并确保它不是 RT ,用于获取时间轴,您可以使用:
api.user_timeline()
一次从用户时间轴返回20条最新帖子,实际上您可以将名为page
(默认值1 )的参数传递为1,2,3,4。 ..如果你想获取更多的帖子。因此,我们会从时间线中获取帖子,直到我们到达不是RT的帖子,获取所需的帖子,我们会检查它是否与您当前的帖子匹配,所以让我们说你当前的帖子是:
new_post = "It's mourning Monday, mourn over the fun of Sunday."
def check_last_post(new_post):
page_num = 1
while True:
timeline = api.user_timeline(page = page_num)
for post in timeline:
post = (post.text).encode('utf-8')
if (not (post.startswith("RT"))):
if not post == new_post:
print "Yes, I can update the status."
return True
else:
print "Sorry the last post was the same!"
return False
page_num+=1
所以这是一个函数,如果最后一个帖子与False
相同则返回一个布尔值new_post
,否则返回True,它将继续搜索用户的时间线,直到找到一个帖子,但是如果您定期更新帖子,您将获得第1页本身的最新帖子,但如果您正在进行大量转发,那么它将搜索更多帖子。