为什么 Tweepy 说转发是引用?

Why is Tweepy saying a retweet is a quote?

这是重现问题的简化代码版本:

import tweepy
from tweepy import OAuthHandler

consumer_key    = '...'
consumer_secret = '...'
access_token    = '...'
access_secret   = '...'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
tweepy_api = tweepy.API(auth)

status_id = 999280226994671616
status = tweepy_api.get_status(status_id, tweet_mode='extended')

print(status.user.screen_name) # Prints 'VP' as it should

if status.retweeted: # Is false, even though it's a retweet
    print('RETWEET:', status.retweeted_status.full_text)
elif status.is_quote_status: # Is true
    qstatus = tweepy_api.get_status(status.quoted_status_id, tweet_mode='extended')
    print(status.full_text, '\nQUOTE:', qstatus.full_text) # Doesn't print full text for either status
else:
    print(status.full_text)

我想知道 is_quote_status 的原因是否正确是因为转推包含引用。那么如何检测状态是否为转发呢?

这是次要问题,但正如我的评论所指出的,它也没有显示全文(当状态不是转推或引用时它就很好)。我做错了什么?

转推就是一条推文,一条推文可以引用另一条推文,所以转推可以引用一条推文。

你的情况:

推文 ID 999280226994671616 来自@vp。

这是对来自@SecondLady (https://twitter.com/SecondLady/status/999275458796687360) 的推文 id 999275458796687360 的转发。

这条推文引用了来自@SenEvanBayh (https://twitter.com/SenEvanBayh/status/999013390528937991)

的推文 ID 999013390528937991

要知道推文是否为 RT,请检查状态是否具有属性 retweeted_status。

这个:

status_id = 999280226994671616
status = tweepy_api.get_status(status_id, tweet_mode='extended')

print ('status.id_str:' + status.id_str)
print ('status.user.screen_name:@' + status.user.screen_name)
print()

if hasattr(status, 'retweeted_status'):
    print ('status.retweeted_status.user.screen_name:' + status.retweeted_status.user.screen_name)
    print ('status.retweeted_status.id_str:' + status.retweeted_status.id_str)
    print()

    qstatus = tweepy_api.get_status(status.retweeted_status.quoted_status_id, tweet_mode='extended')
    print ('qstatus.id_str:' + qstatus.id_str)
    print ('qstatus.user.screen_name:@' + qstatus.user.screen_name)
    print()

将打印:

status.id_str:999280226994671616
status.user.screen_name:@VP

status.retweeted_status.user.screen_name:SecondLady
status.retweeted_status.id_str:999275458796687360

qstatus.id_str:999013390528937991
qstatus.user.screen_name:@SenEvanBayh

希望对您有所帮助。