From f22aa20d292461c2a4de3d39a3dea8bee2c0f062 Mon Sep 17 00:00:00 2001 From: Max Treskin Date: Thu, 4 Feb 2021 01:20:57 +0300 Subject: [PATCH] Add ability to query extended tweet --- twitter_dl/downloader.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/twitter_dl/downloader.py b/twitter_dl/downloader.py index dde79b8..d11ec32 100644 --- a/twitter_dl/downloader.py +++ b/twitter_dl/downloader.py @@ -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}")