Fix tests and const.py to hold options

This commit is contained in:
ritiek
2018-01-11 21:50:40 +05:30
parent 77dab0665d
commit fce2a1abcd
11 changed files with 132 additions and 147 deletions

8
core/const.py Normal file
View File

@@ -0,0 +1,8 @@
import logzero
_log_format = ("%(color)s%(levelname)s:%(end_color)s %(message)s")
formatter = logzero.LogFormatter(fmt=_log_format)
# options
log = logzero.setup_logger(formatter=formatter)
args = None

View File

@@ -1,6 +1,6 @@
import subprocess
import os
from core.logger import log
from core.const import log
"""What are the differences and similarities between ffmpeg, libav, and avconv?

View File

@@ -1,27 +1,38 @@
import logging
import argparse
import os
import sys
from core.logger import log_leveller, _LOG_LEVELS_STR
_LOG_LEVELS_STR = ['INFO', 'WARNING', 'ERROR', 'DEBUG']
def log_leveller(log_level_str):
loggin_levels = [logging.INFO, logging.WARNING, logging.ERROR, logging.DEBUG]
log_level_str_index = _LOG_LEVELS_STR.index(log_level_str)
loggin_level = loggin_levels[log_level_str_index]
return loggin_level
def get_arguments():
def get_arguments(to_group=False, raw_args=None):
parser = argparse.ArgumentParser(
description='Download and convert songs from Spotify, Youtube etc.',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
'-s', '--song', help='download song by spotify link or name')
group.add_argument(
'-l', '--list', help='download songs from a file')
group.add_argument(
'-p', '--playlist', help='load songs from playlist URL into <playlist_name>.txt')
group.add_argument(
'-b', '--album', help='load songs from album URL into <album_name>.txt')
group.add_argument(
'-u', '--username',
help="load songs from user's playlist into <playlist_name>.txt")
if to_group:
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument(
'-s', '--song', help='download song by spotify link or name')
group.add_argument(
'-l', '--list', help='download songs from a file')
group.add_argument(
'-p', '--playlist', help='load songs from playlist URL into <playlist_name>.txt')
group.add_argument(
'-b', '--album', help='load songs from album URL into <album_name>.txt')
group.add_argument(
'-u', '--username',
help="load songs from user's playlist into <playlist_name>.txt")
parser.add_argument(
'-m', '--manual', default=False,
help='choose the song to download manually', action='store_true')
@@ -59,10 +70,7 @@ def get_arguments():
type=str.upper,
help='set log verbosity')
parsed = parser.parse_args()
parsed = parser.parse_args(raw_args)
parsed.log_level = log_leveller(parsed.log_level)
return parsed
parsed = get_arguments()

View File

@@ -1,5 +1,5 @@
from slugify import SLUG_OK, slugify
from core.logger import log
from core.const import log
import os

View File

@@ -1,16 +0,0 @@
import logzero
import logging
_LOG_LEVELS_STR = ['INFO', 'WARNING', 'ERROR', 'DEBUG']
def log_leveller(log_level_str):
loggin_levels = [logging.INFO, logging.WARNING, logging.ERROR, logging.DEBUG]
log_level_str_index = _LOG_LEVELS_STR.index(log_level_str)
loggin_level = loggin_levels[log_level_str_index]
return loggin_level
log_format = ("%(color)s%(levelname)s:%(end_color)s %(message)s")
formatter = logzero.LogFormatter(fmt=log_format)
# create a default logger
log = logzero.setup_logger(formatter=formatter)

View File

@@ -1,7 +1,7 @@
from mutagen.easyid3 import EasyID3
from mutagen.id3 import ID3, APIC
from mutagen.mp4 import MP4, MP4Cover
from core.logger import log
from core.const import log
import urllib.request

View File

@@ -4,9 +4,7 @@ from titlecase import titlecase
import pprint
from core import internals
from core import logger
log = logger.log
from core.const import log
def generate_token():

View File

@@ -1,13 +1,12 @@
import pafy
from core import internals
from core import arguments
from core.logger import log
from core import const
import os
import pprint
args = arguments.parsed
log = const.log
def go_pafy(raw_song, meta_tags=None):
@@ -36,15 +35,15 @@ def get_youtube_title(content, number=None):
def download_song(file_name, content):
""" Download the audio file from YouTube. """
if args.input_ext in (".webm", ".m4a"):
link = content.getbestaudio(preftype=args.input_ext[1:])
if const.args.input_ext in (".webm", ".m4a"):
link = content.getbestaudio(preftype=const.args.input_ext[1:])
else:
return False
if link:
log.debug('Downloading from URL: ' + link.url)
filepath = '{0}{1}'.format(os.path.join(args.folder, file_name),
args.input_ext)
filepath = '{0}{1}'.format(os.path.join(const.args.folder, file_name),
const.args.input_ext)
log.debug('Saving to: ' + filepath)
link.download(filepath=filepath)
return True
@@ -63,7 +62,7 @@ def generate_youtube_url(raw_song, meta_tags, tries_remaining=5):
'maxResults' : 50,
'type' : 'video' }
if args.music_videos_only:
if const.args.music_videos_only:
query['videoCategoryId'] = '10'
if not meta_tags:
@@ -97,7 +96,7 @@ def generate_youtube_url(raw_song, meta_tags, tries_remaining=5):
log.debug(pprint.pformat(videos))
if args.manual:
if const.args.manual:
log.info(song)
log.info('0. Skip downloading this song.\n')
# fetch all video links on first page on YouTube