From da0414f9bad7df44a72730f1d22b9d1ef680a8a7 Mon Sep 17 00:00:00 2001 From: Pavle Portic Date: Mon, 2 Aug 2021 01:41:35 +0200 Subject: [PATCH] Add basic Python API --- setup.py | 2 +- ytrssil/__init__.py | 10 ++++++++++ ytrssil/api.py | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 ytrssil/api.py diff --git a/setup.py b/setup.py index 5d3b588..01498de 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ setup( homepage='https://gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil', repository='https://gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil', documentation='https://gitea.theedgeofrage.com/TheEdgeOfRage/ytrssil', - version='0.0.1', + version='0.1.0', packages=['ytrssil'], package_data={'': ['py.typed']}, include_package_data=True, diff --git a/ytrssil/__init__.py b/ytrssil/__init__.py index e69de29..defcd3d 100644 --- a/ytrssil/__init__.py +++ b/ytrssil/__init__.py @@ -0,0 +1,10 @@ +from collections.abc import Sequence + +from ytrssil.api import get_new_videos +from ytrssil.datatypes import Channel, Video + +__all__: Sequence[str] = ( + 'Channel', + 'Video', + 'get_new_videos', +) diff --git a/ytrssil/api.py b/ytrssil/api.py new file mode 100644 index 0000000..f9c2842 --- /dev/null +++ b/ytrssil/api.py @@ -0,0 +1,21 @@ +from inject import autoparams + +from ytrssil.bindings import setup_dependencies +from ytrssil.datatypes import Video +from ytrssil.fetch import Fetcher +from ytrssil.repository import ChannelRepository + + +def get_new_videos() -> list[Video]: + setup_dependencies() + + @autoparams() + def _get_new_videos( + repository_manager: ChannelRepository, + fetcher: Fetcher, + ) -> dict[str, Video]: + with repository_manager as _: + _, new_videos = fetcher.fetch_new_videos() + return new_videos + + return list(_get_new_videos().values())