From dd9586a3d10aef49aebe1b449947f1da7004a0de Mon Sep 17 00:00:00 2001 From: Josef Haupt Date: Tue, 5 Nov 2024 15:22:29 +0100 Subject: [PATCH 1/2] added ascii logo to analyzer --- birdnet_analyzer/analyze.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/birdnet_analyzer/analyze.py b/birdnet_analyzer/analyze.py index c8899926..ece60552 100644 --- a/birdnet_analyzer/analyze.py +++ b/birdnet_analyzer/analyze.py @@ -25,6 +25,33 @@ ) CSV_HEADER = "Start (s),End (s),Scientific name,Common name,Confidence,File\n" SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) +ASCII_LOGO = r''' + . + .-=- + .:=++++. + ..-======#=:. + .-%%%#*+=-#+++:.. + .-+***======++++++=.. + .=====+==++++++++-. + .=+++====++++++++++=:. + .++++++++=======----===: + =+++++++====-----+++++++-. + .=++++==========-=++=====+=:. + -++======---:::::-=++++***+:. + ..---::::::::::::::::-=*****+-. + ..--------::::::::::::--+##-.:. + ++++=::::::... ..-------------::::::-::.::. + ..::-------:::.-=.:::::+-.... ....:--:.. + ..::-======--+::...... .:---:. + ..:--==+++++==-.. .-+==- + ......::----: **=-- + ..-=-:. *+=:= + ..-==== +++ =+** + ========+ + **===== + ***+== + ****+ +''' def loadCodes(): @@ -561,7 +588,7 @@ def analyzeFile(item): freeze_support() # Parse arguments - parser = argparse.ArgumentParser(description="Analyze audio files with BirdNET") + parser = argparse.ArgumentParser(description=ASCII_LOGO, formatter_class=argparse.RawDescriptionHelpFormatter, usage="python -m birdnet_analyzer.analyze [options]") parser.add_argument("--i", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to input file or folder.") parser.add_argument("--o", default=os.path.join(SCRIPT_DIR, "example/"), help="Path to output folder.") parser.add_argument("--lat", type=float, default=-1, help="Recording location latitude. Set -1 to ignore.") @@ -655,6 +682,8 @@ def __call__(self, parser, args, values, option_string=None): args = parser.parse_args() + print(ASCII_LOGO, flush=True) + # Set paths relative to script path (requested in #3) cfg.MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MODEL_PATH) cfg.LABELS_FILE = os.path.join(SCRIPT_DIR, cfg.LABELS_FILE) From 95f28f71db3a315addd43ef1b5d78897b95d22ad Mon Sep 17 00:00:00 2001 From: Josef Haupt Date: Mon, 11 Nov 2024 14:42:32 +0100 Subject: [PATCH 2/2] added condition to only display logo if terminal has enough space --- birdnet_analyzer/analyze.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/birdnet_analyzer/analyze.py b/birdnet_analyzer/analyze.py index ece60552..0380d1a0 100644 --- a/birdnet_analyzer/analyze.py +++ b/birdnet_analyzer/analyze.py @@ -682,7 +682,8 @@ def __call__(self, parser, args, values, option_string=None): args = parser.parse_args() - print(ASCII_LOGO, flush=True) + if os.get_terminal_size().columns >= 64: + print(ASCII_LOGO, flush=True) # Set paths relative to script path (requested in #3) cfg.MODEL_PATH = os.path.join(SCRIPT_DIR, cfg.MODEL_PATH)