mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-24 12:15:40 +01:00
77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
# ex:ts=4:sw=4:sts=4:et
|
|
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
|
import logging
|
|
import sys
|
|
|
|
import yaml
|
|
from svtplay_dl.service.cmore import Cmore
|
|
from svtplay_dl.utils.getmedia import get_media
|
|
from svtplay_dl.utils.getmedia import get_multiple_media
|
|
from svtplay_dl.utils.parser import parser
|
|
from svtplay_dl.utils.parser import parsertoconfig
|
|
from svtplay_dl.utils.parser import setup_defaults
|
|
|
|
from .__version__ import get_versions
|
|
|
|
__version__ = get_versions()["version"]
|
|
del get_versions
|
|
|
|
|
|
log = logging.getLogger("svtplay_dl")
|
|
|
|
|
|
def setup_log(silent, verbose=False):
|
|
logging.addLevelName(25, "INFO")
|
|
fmt = "%(levelname)s: %(message)s"
|
|
if silent:
|
|
stream = sys.stderr
|
|
level = 25
|
|
elif verbose:
|
|
stream = sys.stderr
|
|
level = logging.DEBUG
|
|
fmt = "%(levelname)s [%(created)s] %(pathname)s/%(funcName)s: %(message)s"
|
|
else:
|
|
stream = sys.stdout
|
|
level = logging.INFO
|
|
|
|
logging.basicConfig(level=level, format=fmt)
|
|
hdlr = logging.StreamHandler(stream)
|
|
log.addHandler(hdlr)
|
|
|
|
|
|
def main():
|
|
""" Main program """
|
|
parse, options = parser(__version__)
|
|
|
|
if options.flexibleq and not options.quality:
|
|
logging.error("flexible-quality requires a quality")
|
|
if options.only_audio and options.only_video:
|
|
logging.error("Only use one of them, not both at the same time")
|
|
sys.exit(2)
|
|
|
|
if len(options.urls) == 0:
|
|
parse.print_help()
|
|
sys.exit(0)
|
|
urls = options.urls
|
|
config = parsertoconfig(setup_defaults(), options)
|
|
if len(urls) < 1:
|
|
parse.error("Incorrect number of arguments")
|
|
setup_log(config.get("silent"), config.get("verbose"))
|
|
|
|
if options.cmoreoperatorlist:
|
|
config = parsertoconfig(setup_defaults(), options)
|
|
c = Cmore(config, urls)
|
|
c.operatorlist()
|
|
sys.exit(0)
|
|
|
|
try:
|
|
if len(urls) == 1:
|
|
get_media(urls[0], config, __version__)
|
|
else:
|
|
get_multiple_media(urls, config)
|
|
except KeyboardInterrupt:
|
|
print("")
|
|
except (yaml.YAMLError, yaml.MarkedYAMLError) as e:
|
|
logging.error(f"Your settings file(s) contain invalid YAML syntax! Please fix and restart!, {str(e)}")
|
|
sys.exit(2)
|