Rozszerzone Tweety
This supplements Twitter’s Tweet updates documentation and repository.
Wprowadzenie
24 maja 2016, Twitter ogłosił zmiany w sposobie obsługi odpowiedzi i URL oraz opublikował plany co do wsparcia tych zmian w API Twittera oraz wstępną dokumentację techniczną opisującą aktualizacje dla obiektów Tweet oraz opcji API. [#]__ 26 września 2017 Twitter zaczął testować 280 znaków dla wybranych języków,1 a 7 listopada 2017 oglosił, że limit znaków zotanie rozszerzony dla tweetów w językach, w których zapchanie jest problemem.2
Standardowe metody API
Każda metoda tweepy API
, która zwraca obiekt Status akceptuje nowy parametr tweet_mode
. Poprawne wartości dla tego parametru to compat
oraz extened
, które dają odpowiednio tryb kompatybilności oraz tryb rozszerzony. Domyślny tryb (gdy nie ma podanego parametru) to tryb kompatybilności.
Tryb kompatybilności
Domyślnie, używając trybu kompatybilności, atrybut text
obiektu Status zwrócony przez metody tweepy API
jest obcięty do 140 znaków, tak jak jest to wymagane. Gdy zachodzi obcinanie, atrybut truncated
obiektu Status jest True
i tylko jednostki, które są całkowicie zawarte w dostępnych 140 znakach będa zawarte w atrybucie entities
. Zostanie także zaobserwowane to, że atrybut ``text` obiektu Satus jest obcięty, ponieważ będzie on zakończony elipsą, spacją oraz skróconym permamentnym URL do tweeta.
Tryb rozszerzony
Używając trybu rozszerzonego, atrybut text
obiektu Status zwrócony przez metody tweepy API
jest zastąpiony przez atrybut full_text
, który zawiera cały, nieobcięty tekst tweeta. Atrybut truncated
obiektu Status jest False
a atrybut entities
zawiera wszystkie jednostki. Dodatkowo, obiekt Status będzie posiadał atrybut display_text_range
, szyk dwóch indeksów wskaźników kodu Unicode, które identyfikują włączny start i wyłączny koniec wyświetlanej zawartości tweeta.
Obsługa retweetów
Używając rozszerzonego trybu dla retweetów, atrybut full_text
obiektu Status może być skrócony poprzez elipsę zamiast zawierania całości tekstu retweeta. Jednakże, ponieważ atrybut retweeted_status
(dla obiektu Status, który jest retweetem) jest sam w sobie obiektem Statusu, to atrybut full_text
dla obiektu Status retweeta, może być użyty zamiennie.
Example
Given an existing API
object and id
for a Tweet, the following
can be used to print the full text of the Tweet, or if it’s a Retweet, the
full text of the Retweeted Tweet:
status = api.get_status(id, tweet_mode="extended")
try:
print(status.retweeted_status.full_text)
except AttributeError: # Not a Retweet
print(status.full_text)
Jeżeli status
to retweet to status.full_text
może być obcięty.
Przypisy