diff options
Diffstat (limited to 'gallery_dl/extractor/twitter.py')
| -rw-r--r-- | gallery_dl/extractor/twitter.py | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/gallery_dl/extractor/twitter.py b/gallery_dl/extractor/twitter.py index c928507..c919cb8 100644 --- a/gallery_dl/extractor/twitter.py +++ b/gallery_dl/extractor/twitter.py @@ -471,21 +471,35 @@ class TwitterExtractor(Extractor): except KeyError: pass + admin = creator = banner = None + try: + if results := com.get("admin_results"): + admin = results["result"]["core"]["screen_name"] + except Exception: + pass + try: + if results := com.get("creator_results"): + creator = results["result"]["core"]["screen_name"] + except Exception: + pass + try: + if results := com.get("custom_banner_media"): + banner = results["media_info"]["original_img_url"] + except Exception: + pass + self._user_cache[f"C#{cid}"] = cdata = { "id": text.parse_int(cid), - "name": com["name"], - "description": com["description"], - "date": text.parse_timestamp(com["created_at"] // 1000), - "nsfw": com["is_nsfw"], - "role": com["role"], - "member_count": com["member_count"], - "rules": [rule["name"] for rule in com["rules"]], - "admin": (admin := com.get("admin_results")) and - admin["result"]["core"]["screen_name"], # noqa: E131 - "creator": (creator := com.get("creator_results")) and - creator["result"]["core"]["screen_name"], # noqa: E131 - "banner": (banner := com.get("custom_banner_media")) and - banner["media_info"]["original_img_url"], # noqa: E131 + "name": com.get("name"), + "description": com.get("description"), + "date": text.parse_timestamp(com.get("created_at", 0) // 1000), + "nsfw": com.get("is_nsfw"), + "role": com.get("role"), + "member_count": com.get("member_count"), + "rules": [rule["name"] for rule in com.get("rules", ())], + "admin" : admin, + "creator": creator, + "banner" : banner, } return cdata @@ -512,8 +526,8 @@ class TwitterExtractor(Extractor): entities = legacy["entities"] self._user_cache[uid] = udata = { "id" : text.parse_int(uid), - "name" : core["screen_name"], - "nick" : core["name"], + "name" : core.get("screen_name"), + "nick" : core.get("name"), "location" : user["location"]["location"], "date" : text.parse_datetime( core["created_at"], "%a %b %d %H:%M:%S %z %Y"), |
