add verbosity, no color

This commit is contained in:
oskvr37
2024-07-30 20:33:24 +02:00
parent 2fc1f14f02
commit 4dfd15e434
2 changed files with 61 additions and 17 deletions
+35 -17
View File
@@ -8,25 +8,43 @@ from .download import downloadTrack
from .parser import QUALITY_ARGS, parser
from .types import TRACK_QUALITY, TrackQuality
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
# TODO: add option to suppress color output ✨
colored_stream_format = (
"\033[1;34m%(levelname)s\033[0m \033[1;95m%(module)s\033[0m %(message)s"
)
stream_handler.setFormatter(logging.Formatter(colored_stream_format))
file_handler = logging.FileHandler("tiddl.log", "w", "utf-8")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(
logging.Formatter("%(levelname)s\t%(name)s.%(module)s.%(funcName)s :: %(message)s")
)
logging.basicConfig(handlers=[file_handler, stream_handler], level=logging.DEBUG)
def main():
args = parser.parse_args()
if args.silent:
log_level = logging.ERROR
elif args.verbose:
log_level = logging.DEBUG
else:
log_level = logging.INFO
stream_handler = logging.StreamHandler()
stream_handler.setLevel(log_level)
stream_handler.setFormatter(
logging.Formatter(
"\033[1;34m%(levelname)s\033[0m \033[1;95m%(module)s\033[0m %(message)s"
)
)
if args.no_color:
stream_handler.setFormatter(
logging.Formatter("[ %(levelname)s %(module)s ] %(message)s")
)
file_handler = logging.FileHandler("tiddl.log", "w", "utf-8")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(
logging.Formatter(
"%(levelname)s\t%(name)s.%(module)s.%(funcName)s :: %(message)s"
)
)
logging.basicConfig(
level=logging.DEBUG,
handlers=[file_handler, stream_handler],
)
config = Config()
download_path = args.download_path or config["settings"]["download_path"]
@@ -98,7 +116,7 @@ def main():
track_id: str = args.input
if not track_id:
logging.info("no ID nor URL provided...")
logging.warning("no ID nor URL provided")
return
api = TidalApi(
+26
View File
@@ -1,8 +1,15 @@
import os
import argparse
from .types import TRACK_QUALITY, TrackQuality
def shouldNotColor() -> bool:
# TODO: add more checks ✨
checks = ["NO_COLOR" in os.environ]
return any(checks)
parser = argparse.ArgumentParser(
description="\033[4mTIDDL\033[0m - Tidal Downloader",
epilog="options defaults will be fetched from your config file.",
@@ -52,3 +59,22 @@ parser.add_argument(
dest="save_options",
action="store_true",
)
parser.add_argument(
"--silent",
help="silent mode",
action="store_true",
)
parser.add_argument(
"--verbose",
help="show debug logs",
action="store_true",
)
parser.add_argument(
"--no-color",
help="suppress output colors",
action="store_true",
default=shouldNotColor(),
)