ytdl-sub/ytdl_subscribe/parse.py
2021-09-10 23:15:24 -07:00

31 lines
929 B
Python

import yaml
from mergedeep import mergedeep
from ytdl_subscribe.subscriptions.subscription import Subscription
from ytdl_subscribe.enums import YAMLSection
def _set_config_variables(config):
Subscription.WORKING_DIRECTORY = config.get("working_directory", "")
def parse_subscriptions(subscription_yaml_path):
with open(subscription_yaml_path, "r") as f:
yaml_dict = yaml.safe_load(f)
config = yaml_dict[YAMLSection.CONFIG_KEY]
_set_config_variables(config)
presets = yaml_dict[YAMLSection.PRESET_KEY]
subscriptions = []
for name, subscription in yaml_dict[YAMLSection.SUBSCRIPTIONS_KEY].items():
preset = {}
if subscription.get("preset") in presets:
preset = presets[subscription["preset"]]
subscription = mergedeep.merge({}, preset, subscription)
subscriptions.append(Subscription.from_dict(name, subscription))
return subscriptions