From 0e407ced6005d2e626d46e353699a09d8914beb8 Mon Sep 17 00:00:00 2001 From: meisnate12 Date: Thu, 16 Dec 2021 14:16:08 -0500 Subject: [PATCH] adds Collection --- VERSION | 2 +- arrapi/objs/base.py | 2 ++ arrapi/objs/reload.py | 1 + arrapi/objs/simple.py | 19 +++++++++++++++++++ docs/objs.rst | 7 +++++++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 434dcac..589268e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.9 \ No newline at end of file +1.3.0 \ No newline at end of file diff --git a/arrapi/objs/base.py b/arrapi/objs/base.py index cddf2f6..2ffd533 100644 --- a/arrapi/objs/base.py +++ b/arrapi/objs/base.py @@ -113,6 +113,8 @@ def _parse(self, data: Any = None, attrs: Optional[Union[str, list]] = None, val return default elif value_type == "date": return datetime.strptime(value[:-1].split(".")[0], "%Y-%m-%dT%H:%M:%S") + elif value_type == "collection": + return arrapi.objs.simple.Collection(self._arr, value) elif value_type == "image": return arrapi.objs.simple.Image(self._arr, value) elif value_type == "season": diff --git a/arrapi/objs/reload.py b/arrapi/objs/reload.py index 6792f20..0e3586d 100644 --- a/arrapi/objs/reload.py +++ b/arrapi/objs/reload.py @@ -286,6 +286,7 @@ def _load(self, data): self.added = self._parse(attrs="added", value_type="date") self.rating_votes = self._parse(attrs=["rating", "votes"], value_type="int") self.rating_value = self._parse(attrs=["rating", "value"], value_type="float") + self.collection = self._parse(attrs="collection", value_type="collection") self.id = self._parse(attrs="id", value_type="int", default_is_none=True) if self._raw.v3: self.originalTitle = self._parse(attrs="originalTitle") diff --git a/arrapi/objs/simple.py b/arrapi/objs/simple.py index 7227f13..721c456 100644 --- a/arrapi/objs/simple.py +++ b/arrapi/objs/simple.py @@ -8,6 +8,25 @@ def _load(self, data): super()._load(data) +class Collection(SimpleObj): + """ Represents a single Collection. + + Attributes: + name (str): Name of the Collection. + tmdbId (int): TMDb Collection ID of the Collection. + """ + + def _load(self, data): + super()._load(data) + self.name = self._parse(attrs="name") + self.tmdbId = self._parse(attrs="tmdbId", value_type="int") + self._finish(self.name) + + def get_url(self): + """ URL of the Collection on TMDb""" + return f"https://www.themoviedb.org/collection/{self.tmdbId}" + + class Image(SimpleObj): """ Represents a single Image. diff --git a/docs/objs.rst b/docs/objs.rst index cc5f676..1fd5f45 100644 --- a/docs/objs.rst +++ b/docs/objs.rst @@ -75,6 +75,13 @@ Command :members: +Collection +-------------------- + +.. autoclass:: arrapi.objs.simple.Collection + :members: + + Remote Path Mapping --------------------