From 6b8553cbee0238392ed315613cbcdff8d5cb7a97 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Fri, 22 Apr 2022 12:26:11 -0400 Subject: [PATCH] Prevent crashes when a non-FLAC file is found --- bin/flac2pod-flacgain | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/bin/flac2pod-flacgain b/bin/flac2pod-flacgain index f4b5286..20e3ae2 100755 --- a/bin/flac2pod-flacgain +++ b/bin/flac2pod-flacgain @@ -1,6 +1,9 @@ #!/bin/python3 from argparse import ArgumentParser + +import mutagen.flac + from flac2pod import scan_source from mutagen.flac import FLAC from os import listdir, system @@ -29,13 +32,17 @@ if __name__ == "__main__": std_album = album.replace(' ', '\\ ').replace("'", "\\'").replace(')', '\\)') \ .replace('(', '\\(').replace('&', '\\&').replace('`', '\\`').replace('$', '\\$') for song in listdir(album): - audio = FLAC(f"{album}/{song}") - if audio.get('replaygain_track_gain') or audio.get('REPLAYGAIN_TRACK_GAIN'): - gain = 1 - else: - gain = 0 - break - if args.force or gain == 0: + try: + audio = FLAC(f"{album}/{song}") + if audio.get('replaygain_track_gain') or audio.get('REPLAYGAIN_TRACK_GAIN'): + gain = 1 + else: + gain = 0 + break + except mutagen.flac.FLACNoHeaderError: + print(f"[{album}/*] Contains non-FLAC files, skipping album...") + gain = 2 + if gain != 2 and (args.force or gain == 0): print(f"[{album}/*] Adding ReplayGain data...") system(f"metaflac --remove-replay-gain {std_album}/*") command = f"metaflac --add-replay-gain {std_album}/*"