From 7e0df73933feb01f90dbbb335f1ce885b08a6011 Mon Sep 17 00:00:00 2001 From: Augusto Gunsch Date: Fri, 19 Nov 2021 19:23:03 -0300 Subject: [PATCH] Improve error codes --- setup.cfg | 2 +- src/fsub/fsub.py | 51 ++++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/setup.cfg b/setup.cfg index 16c1099..834d1bc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = fsub -version = 1.0.1 +version = 1.0.2 author = Augusto Lenz Gunsch author_email = augustogunsch@tutanota.com description = CLI SubRip editor diff --git a/src/fsub/fsub.py b/src/fsub/fsub.py index d09dc0b..c9c9b77 100755 --- a/src/fsub/fsub.py +++ b/src/fsub/fsub.py @@ -44,22 +44,22 @@ class TimeStamp: h, m, s, ms = map(int, m.groups()) self.time = h * 3600000 + m * 60000 + s * 1000 + ms - def getmilliseconds(self): + def get_milliseconds(self): return self.time % 1000 - def getseconds(self): + def get_seconds(self): return int((self.time % 60000) / 1000) - def getminutes(self): + def get_minutes(self): return int((self.time / 60000) % 60) - def gethours(self): + def get_hours(self): return int(self.time / 3600000) - millisecods = property(getmilliseconds) - seconds = property(getseconds) - minutes = property(getminutes) - hours = property(gethours) + millisecods = property(get_milliseconds) + seconds = property(get_seconds) + minutes = property(get_minutes) + hours = property(get_hours) def __int__(self): return self.time @@ -104,7 +104,7 @@ class SectionMarker: try: self.marker = int(arg) except Exception: - panic('Invalid section marker argument', 1) + panic('Invalid section marker argument', 65) def include_after(self, other): if type(self.marker) is TimeStamp: @@ -132,7 +132,7 @@ class Subtitle: assert self.number > 0 except Exception: panic('Invalid line number detected ({}:{})' - .format(file_name, line_number), 1) + .format(file_name, line_number), 65) line_number += 1 @@ -140,18 +140,18 @@ class Subtitle: time_span = lines.pop(0).split(' --> ') except Exception: panic('Invalid time span format detected ({}:{})' - .format(file_name, line_number), 1) + .format(file_name, line_number), 65) try: self.time_start = TimeStamp(time_span[0]) self.time_end = TimeStamp(time_span[1]) except Exception: panic('Invalid time stamp detected ({}:{})' - .format(file_name, line_number), 1) + .format(file_name, line_number), 65) if self.time_start >= self.time_end: panic('End time must be greater than start time ({}:{})' - .format(file_name, line_number), 1) + .format(file_name, line_number), 65) self.content = lines @@ -204,7 +204,7 @@ class ConfigFile: file = self.file_path.open(mode='r') except PermissionError: panic('Can\'t access file {}: Permission denied' - .format(self.file_path), 1) + .format(self.file_path), 77) else: self.file_path = Path(file.name) @@ -218,7 +218,7 @@ class SubripFile: def read_file(file): # Check extension if file.name[-4:] != '.srt': - panic('File {} is not a SubRip file'.format(file.name), 1) + panic('File {} is not a SubRip file'.format(file.name), 64) # Read the input file contents = file.read() @@ -227,7 +227,7 @@ class SubripFile: # Decode the file contents encoding = chardet.detect(contents)['encoding'] if encoding is None: - panic('Corrupt or empty file ({})'.format(file.name), 1) + panic('Corrupt or empty file ({})'.format(file.name), 66) return contents.decode(encoding) # This method parses the file @@ -456,7 +456,7 @@ def parse_args(args): # Flags that require section if args.cut_out: if not args.begin and not args.end: - panic('You must specify a section to work with', 1) + panic('You must specify a section to work with', 64) # Make sure --clean is the default if not any((args.shift, args.no_html, args.join, args.cut_out)): @@ -464,7 +464,7 @@ def parse_args(args): # Validate options if not args.clean and args.config: - panic('-f requires -c', 1) + panic('-f requires -c', 64) if args.begin: args.begin = SectionMarker(args.begin) @@ -494,14 +494,13 @@ def run(args): if args.join: first = parsed_files.pop(0) - while True: - try: - file = parsed_files.pop(0) - first += file - if args.replace: - file.delete() - except IndexError: - break + + for file in parsed_files: + first += file + if args.replace: + file.delete() + + parsed_files.clear() parsed_files.append(first) for file in parsed_files: