begin cleaning subscription

This commit is contained in:
jbannon 2022-03-30 22:20:37 +00:00
parent 43cc4cd4c7
commit f887b56729
2 changed files with 23 additions and 25 deletions

View file

@ -3,8 +3,11 @@ from typing import Optional
import yaml
from mergedeep import mergedeep
from ytdl_subscribe.enums import SubscriptionSource
from ytdl_subscribe.enums import YAMLSection
from ytdl_subscribe.subscriptions.soundcloud import SoundcloudSubscription
from ytdl_subscribe.subscriptions.subscription import Subscription
from ytdl_subscribe.subscriptions.youtube import YoutubeSubscription
def _set_config_variables(config):
@ -80,7 +83,26 @@ def parse_subscriptions(yaml_dict: dict, presets: dict, subscriptions: Optional[
if subscription.get("preset") in presets:
preset = presets[subscription["preset"]]
subscription = mergedeep.merge({}, preset, subscription)
parsed_subscriptions.append(Subscription.from_dict(name, subscription))
if SubscriptionSource.SOUNDCLOUD in subscription:
subscription_source = SubscriptionSource.SOUNDCLOUD
subscription_class = SoundcloudSubscription
elif SubscriptionSource.YOUTUBE in subscription:
subscription_source = SubscriptionSource.YOUTUBE
subscription_class = YoutubeSubscription
else:
raise ValueError("dne")
parsed_subscriptions.append(
subscription_class(
name=name,
options=subscription[subscription_source],
ytdl_opts=subscription["ytdl_opts"],
post_process=subscription["post_process"],
overrides=subscription["overrides"],
output_path=subscription["output_path"],
)
)
# Filter subscriptions if present
if subscriptions:

View file

@ -8,7 +8,6 @@ from PIL import Image
from sanitize_filename import sanitize
from ytdl_subscribe.entries.entry import Entry
from ytdl_subscribe.enums import SubscriptionSource
class Subscription(object):
@ -140,26 +139,3 @@ class Subscription(object):
if "nfo" in self.post_process:
self._post_process_nfo(entry)
@classmethod
def from_dict(cls, name, d):
# TODO: Make sure there is only one source, verify url
if SubscriptionSource.SOUNDCLOUD in d:
from ytdl_subscribe.subscriptions.soundcloud import SoundcloudSubscription
dclass = SoundcloudSubscription
elif SubscriptionSource.YOUTUBE in d:
from ytdl_subscribe.subscriptions.youtube import YoutubeSubscription
dclass = YoutubeSubscription
else:
raise ValueError("dne")
return dclass(
name=name,
options=d[dclass.source],
ytdl_opts=d["ytdl_opts"],
post_process=d["post_process"],
overrides=d["overrides"],
output_path=d["output_path"],
)