From d18f059c921ee1f4ce68384fb22a1ac48fa588be Mon Sep 17 00:00:00 2001 From: Pavle Portic Date: Sun, 30 Oct 2022 12:03:05 +0100 Subject: [PATCH] Add api.py with functions to use as a python lib --- ytrssil/__init__.py | 10 ++++++++++ ytrssil/api.py | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 ytrssil/api.py diff --git a/ytrssil/__init__.py b/ytrssil/__init__.py index e69de29..c9984c4 100644 --- a/ytrssil/__init__.py +++ b/ytrssil/__init__.py @@ -0,0 +1,10 @@ +from collections.abc import Sequence + +from ytrssil.api import get_new_video_count, get_new_videos +from ytrssil.datatypes import Video + +__all__: Sequence[str] = ( + 'Video', + 'get_new_video_count', + 'get_new_videos', +) diff --git a/ytrssil/api.py b/ytrssil/api.py new file mode 100644 index 0000000..65fd778 --- /dev/null +++ b/ytrssil/api.py @@ -0,0 +1,21 @@ +from typing import cast + +from inject import autoparams + +from ytrssil.bindings import setup_dependencies +from ytrssil.datatypes import Video +from ytrssil.protocols import Client + + +def get_new_videos() -> list[Video]: + setup_dependencies() + + @autoparams() + def _get_new_videos(client: Client) -> list[Video]: + return client.get_new_videos() + + return cast(list[Video], _get_new_videos()) + + +def get_new_video_count() -> int: + return len(get_new_videos())