From 460be9d5814de82a2c5a5abe772872baca192207 Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Sat, 22 May 2021 18:14:54 +0000 Subject: [PATCH] Add _type attribute on all JSON objects, remove separate attribute on Twitter media --- snscrape/base.py | 3 +++ snscrape/modules/twitter.py | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/snscrape/base.py b/snscrape/base.py index f3cce0b..829bb69 100644 --- a/snscrape/base.py +++ b/snscrape/base.py @@ -36,11 +36,14 @@ def _json_serialise_datetime(obj): def _json_dataclass_to_dict(obj): if isinstance(obj, _JSONDataclass) or dataclasses.is_dataclass(obj): out = {} + out['_type'] = f'{type(obj).__module__}.{type(obj).__name__}' for field in dataclasses.fields(obj): + assert field.name != '_type' out[field.name] = _json_dataclass_to_dict(getattr(obj, field.name)) # Add in (non-deprecated) properties for k in dir(obj): if isinstance(getattr(type(obj), k, None), property): + assert k != '_type' out[k] = _json_dataclass_to_dict(getattr(obj, k)) return out elif isinstance(obj, (tuple, list)): diff --git a/snscrape/modules/twitter.py b/snscrape/modules/twitter.py index 1955363..ca45be8 100644 --- a/snscrape/modules/twitter.py +++ b/snscrape/modules/twitter.py @@ -60,7 +60,6 @@ class Medium: class Photo(Medium): previewUrl: str fullUrl: str - type: str = 'photo' @dataclasses.dataclass @@ -75,14 +74,12 @@ class Video(Medium): thumbnailUrl: str variants: typing.List[VideoVariant] duration: float - type: str = 'video' @dataclasses.dataclass class Gif(Medium): thumbnailUrl: str variants: typing.List[VideoVariant] - type: str = 'gif' @dataclasses.dataclass