Add ability to query extended tweet

pull/4/head
Max Treskin 2021-02-04 01:20:57 +03:00
rodzic 7da314aa05
commit f22aa20d29
1 zmienionych plików z 10 dodań i 7 usunięć

Wyświetl plik

@ -55,11 +55,11 @@ class Downloader:
raise RuntimeError("Bearer TokenNot Fetched")
def download_media_of_tweet(self, tid, save_dest, size="large", include_video=False,
include_photo=True):
include_photo=True, is_extended=False):
''' '''
save_dest = ensure_dir(save_dest)
tweet = self.get_tweet(tid)
tweet = self.get_tweet(tid, is_extended)
self.process_tweet(tweet, save_dest, size, include_video, include_photo)
def download_media_of_user(self, user, save_dest, size="large", limit=3200, rts=False,
@ -165,25 +165,28 @@ class Downloader:
return self.api_fetch_tweets(apiurl, payload, start, count, rts, since_id)
def get_tweet(self, id):
def get_tweet(self, tid, is_extended=False):
"""Download single tweet
Args:
id: Tweet ID.
tid: Tweet ID.
is_extended: extended tweet mode
"""
bearer_token = self.bearer_token
url = "https://api.twitter.com/1.1/statuses/show.json"
headers = {"Authorization": f"Bearer {bearer_token}"}
payload = {"id": id, "include_entities": "true"}
payload = {"id": tid, "include_entities": "true"}
if is_extended:
self.log.info("Extended mode")
payload["tweet_mode"] = "extended"
# get the request
r = requests.get(url, headers=headers, params=payload)
# check the response
if r.status_code == 200:
tweet = r.json()
self.log.info(f"Got tweet with id {id} of user @{tweet['user']['name']}")
self.log.info(f"Got tweet with id {tid} of user @{tweet['user']['name']}")
return tweet
else:
self.log.error(f"{url} error, code was {r.status_code}")