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())