diff --git a/ytdl_subscribe/subscriptions/soundcloud.py b/ytdl_subscribe/subscriptions/soundcloud.py index 7d6ebb8c..76b74385 100644 --- a/ytdl_subscribe/subscriptions/soundcloud.py +++ b/ytdl_subscribe/subscriptions/soundcloud.py @@ -5,12 +5,12 @@ from ytdl_subscribe.entries.soundcloud import SoundcloudAlbum from ytdl_subscribe.entries.soundcloud import SoundcloudTrack from ytdl_subscribe.subscriptions.subscription import Subscription from ytdl_subscribe.validators.config.source_options.soundcloud_validators import ( - SoundcloudAlbumsAndSinglesDownloadValidator, + SoundcloudAlbumsAndSinglesSourceValidator, ) class SoundcloudAlbumsAndSinglesSubscription( - Subscription[SoundcloudAlbumsAndSinglesDownloadValidator] + Subscription[SoundcloudAlbumsAndSinglesSourceValidator] ): def extract_info(self): tracks: List[SoundcloudTrack] = [] diff --git a/ytdl_subscribe/subscriptions/subscription.py b/ytdl_subscribe/subscriptions/subscription.py index 4b6d2981..8fe2200f 100644 --- a/ytdl_subscribe/subscriptions/subscription.py +++ b/ytdl_subscribe/subscriptions/subscription.py @@ -26,11 +26,11 @@ from ytdl_subscribe.validators.config.overrides.overrides_validator import Overr from ytdl_subscribe.validators.config.preset_validator import PresetValidator from ytdl_subscribe.validators.config.source_options.source_validators import SourceValidator -T = TypeVar("T", bound=SourceValidator) -U = TypeVar("U", bound=Downloader) +S = TypeVar("S", bound=SourceValidator) +D = TypeVar("D", bound=Downloader) -class Subscription(Generic[T], ABC): +class Subscription(Generic[S], ABC): def __init__( self, name: str, @@ -50,11 +50,11 @@ class Subscription(Generic[T], ABC): self.__preset_options = preset_options @property - def source_options(self) -> T: + def source_options(self) -> S: """Returns the source options defined for this subscription""" return self.__preset_options.subscription_source - def get_downloader(self, downloader_type: Type[U]) -> U: + def get_downloader(self, downloader_type: Type[D]) -> D: """Returns the downloader that will be used to download media for this subscription""" return downloader_type( output_directory=self.working_directory, diff --git a/ytdl_subscribe/subscriptions/youtube.py b/ytdl_subscribe/subscriptions/youtube.py index fc7afcc6..9e5cea20 100644 --- a/ytdl_subscribe/subscriptions/youtube.py +++ b/ytdl_subscribe/subscriptions/youtube.py @@ -1,11 +1,11 @@ from ytdl_subscribe.downloaders.youtube_downloader import YoutubeDownloader from ytdl_subscribe.subscriptions.subscription import Subscription from ytdl_subscribe.validators.config.source_options.youtube_validators import ( - YoutubePlaylistDownloadValidator, + YoutubePlaylistSourceValidator, ) -class YoutubePlaylistSubscription(Subscription[YoutubePlaylistDownloadValidator]): +class YoutubePlaylistSubscription(Subscription[YoutubePlaylistSourceValidator]): def extract_info(self): entries = self.get_downloader(YoutubeDownloader).download_playlist( playlist_id=self.source_options.playlist_id.value diff --git a/ytdl_subscribe/validators/config/source_options/download_strategy_validators.py b/ytdl_subscribe/validators/config/source_options/download_strategy_validators.py index 845b2a4b..b7b69b74 100644 --- a/ytdl_subscribe/validators/config/source_options/download_strategy_validators.py +++ b/ytdl_subscribe/validators/config/source_options/download_strategy_validators.py @@ -7,11 +7,11 @@ from typing import Type from ytdl_subscribe.validators.base.strict_dict_validator import StrictDictValidator from ytdl_subscribe.validators.base.validators import StringValidator from ytdl_subscribe.validators.config.source_options.soundcloud_validators import ( - SoundcloudAlbumsAndSinglesDownloadValidator, + SoundcloudAlbumsAndSinglesSourceValidator, ) from ytdl_subscribe.validators.config.source_options.source_validators import SourceValidator from ytdl_subscribe.validators.config.source_options.youtube_validators import ( - YoutubePlaylistDownloadValidator, + YoutubePlaylistSourceValidator, ) @@ -56,9 +56,9 @@ class DownloadStrategyValidator(StrictDictValidator, ABC): class SoundcloudDownloadStrategyValidator(DownloadStrategyValidator): _download_strategy_to_source_mapping = { - "albums_and_singles": SoundcloudAlbumsAndSinglesDownloadValidator + "albums_and_singles": SoundcloudAlbumsAndSinglesSourceValidator } class YoutubeDownloadStrategyValidator(DownloadStrategyValidator): - _download_strategy_to_source_mapping = {"playlist": YoutubePlaylistDownloadValidator} + _download_strategy_to_source_mapping = {"playlist": YoutubePlaylistSourceValidator} diff --git a/ytdl_subscribe/validators/config/source_options/soundcloud_validators.py b/ytdl_subscribe/validators/config/source_options/soundcloud_validators.py index e01d5944..6bc589f3 100644 --- a/ytdl_subscribe/validators/config/source_options/soundcloud_validators.py +++ b/ytdl_subscribe/validators/config/source_options/soundcloud_validators.py @@ -4,7 +4,7 @@ from ytdl_subscribe.validators.config.source_options.source_validators import ( ) -class SoundcloudAlbumsAndSinglesDownloadValidator(SoundcloudSourceValidator): +class SoundcloudAlbumsAndSinglesSourceValidator(SoundcloudSourceValidator): _required_keys = {"username"} def __init__(self, name, value): diff --git a/ytdl_subscribe/validators/config/source_options/youtube_validators.py b/ytdl_subscribe/validators/config/source_options/youtube_validators.py index ce8a64d8..75d163bf 100644 --- a/ytdl_subscribe/validators/config/source_options/youtube_validators.py +++ b/ytdl_subscribe/validators/config/source_options/youtube_validators.py @@ -2,7 +2,7 @@ from ytdl_subscribe.validators.base.validators import StringValidator from ytdl_subscribe.validators.config.source_options.source_validators import YoutubeSourceValidator -class YoutubePlaylistDownloadValidator(YoutubeSourceValidator): +class YoutubePlaylistSourceValidator(YoutubeSourceValidator): _required_keys = {"playlist_id"} def __init__(self, name, value): diff --git a/ytdl_subscribe/validators/config/subscription_validator.py b/ytdl_subscribe/validators/config/subscription_validator.py index d01da34f..cec19449 100644 --- a/ytdl_subscribe/validators/config/subscription_validator.py +++ b/ytdl_subscribe/validators/config/subscription_validator.py @@ -16,10 +16,10 @@ from ytdl_subscribe.validators.config.preset_validator import PRESET_OPTIONAL_KE from ytdl_subscribe.validators.config.preset_validator import PRESET_REQUIRED_KEYS from ytdl_subscribe.validators.config.preset_validator import PresetValidator from ytdl_subscribe.validators.config.source_options.soundcloud_validators import ( - SoundcloudAlbumsAndSinglesDownloadValidator, + SoundcloudAlbumsAndSinglesSourceValidator, ) from ytdl_subscribe.validators.config.source_options.youtube_validators import ( - YoutubePlaylistDownloadValidator, + YoutubePlaylistSourceValidator, ) @@ -65,9 +65,9 @@ class SubscriptionValidator(StrictDictValidator): ) def to_subscription(self) -> Subscription: - if isinstance(self.preset.subscription_source, SoundcloudAlbumsAndSinglesDownloadValidator): + if isinstance(self.preset.subscription_source, SoundcloudAlbumsAndSinglesSourceValidator): subscription_class = SoundcloudAlbumsAndSinglesSubscription - elif isinstance(self.preset.subscription_source, YoutubePlaylistDownloadValidator): + elif isinstance(self.preset.subscription_source, YoutubePlaylistSourceValidator): subscription_class = YoutubePlaylistSubscription else: raise ValueError("subscription source class not found")