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

1

https://twittercommunity.com/t/upcoming-changes-to-simplify-replies-and-links-in-tweets/67497

2

https://twittercommunity.com/t/testing-280-characters-for-certain-languages/94126

3

https://twittercommunity.com/t/updating-the-character-limit-and-the-twitter-text-library/96425