Add basic Python API

This commit is contained in:
Pavle Portic 2021-08-02 01:41:35 +02:00
parent b2d4a2789d
commit da0414f9ba
Signed by: TheEdgeOfRage
GPG Key ID: F2AB38285780DE3D
3 changed files with 32 additions and 1 deletions

View File

@ -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,

View File

@ -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',
)

21
ytrssil/api.py Normal file
View File

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