From d83ad24d5dd6c374503fa43921c1636e0eee20ff Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sun, 18 Sep 2022 16:41:55 +0200 Subject: [PATCH] Add wait for dvd device --- ripper/rip_dvd.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ripper/rip_dvd.py b/ripper/rip_dvd.py index 68e8d03..7d7e66b 100755 --- a/ripper/rip_dvd.py +++ b/ripper/rip_dvd.py @@ -17,6 +17,7 @@ NOTIFICATION_SOUND = "bell.oga" SERIES_TITLE_REGEX = r"S\d+[ _]?E(\d+)-(\d+)$" MAX_FILENAME_LEN_IN_TMP = 30 # dvdbackup cuts name of output files at 33 chars +WAIT_FOR_DEVICE_TIME_SECONDS = 1 def main(): @@ -35,6 +36,9 @@ def main(): ) exit(1) + if args.wait: + wait_for_dev_to_exist(args) + success = rip_to_tmp_dir(args) program_execution_time_str = get_program_execution_time_str(program_start_time) if success: @@ -66,6 +70,10 @@ def parse_args(): default=DEFAULT_DVD_DEVICE, ) + parser.add_argument( + "--wait", help=f"Wait for dvd device to exist.", action="store_true" + ) + return parser.parse_args() @@ -109,6 +117,14 @@ def write_to_logfile(args, tag): file.write(log_line + "\n") +def wait_for_dev_to_exist(args): + while not os.path.exists(args.dev): + print( + f"Device {args.dev} not found. Waiting {WAIT_FOR_DEVICE_TIME_SECONDS} sec..." + ) + time.sleep(WAIT_FOR_DEVICE_TIME_SECONDS) + + def rip_to_tmp_dir(args) -> bool: """Returns: success of command""" command = create_rip_command(args, TMP_DIR) @@ -119,7 +135,7 @@ def rip_to_tmp_dir(args) -> bool: def create_rip_command(args, dest): shortened_title = args.title[:MAX_FILENAME_LEN_IN_TMP] - return f"dvdbackup -v -p -i '{args.dev}' -o '{dest}' -M -n {shortened_title}" + return f"dvdbackup -v -p -i '{args.dev}' -o '{dest}' -M -n \"{shortened_title}\"" def get_program_execution_time_str(program_start_time):