diff --git a/comictagger.py b/comictagger.py index c4fdc23..c13f8a8 100755 --- a/comictagger.py +++ b/comictagger.py @@ -193,7 +193,7 @@ def process_file_cli( filename, opts, settings ): if result == ii.ResultNoMatches: pass elif result == ii.ResultFoundMatchButBadCoverScore: - #low_confidence = True + low_confidence = True found_match = True elif result == ii.ResultFoundMatchButNotFirstPage : found_match = True @@ -208,7 +208,7 @@ def process_file_cli( filename, opts, settings ): if choices: print "Online search: Multiple matches. Save aborted" return - if low_confidence: + if low_confidence and opts.abortOnLowConfidence: print "Online search: Low confidence match. Save aborted" return if not found_match: @@ -228,7 +228,7 @@ def process_file_cli( filename, opts, settings ): # ok, done building our metadata. time to save #HACK - opts.dryrun = True + #opts.dryrun = True #HACK if not opts.dryrun: @@ -293,17 +293,23 @@ def process_file_cli( filename, opts, settings ): elif ca.isRar(): new_name += ".cbr" + if new_name == os.path.basename(filename): + print "Filename is already good!" + return + + folder = os.path.dirname( os.path.abspath( filename ) ) + new_abs_path = utils.unique_file( os.path.join( folder, new_name ) ) + #HACK - opts.dryrun = True + #opts.dryrun = True #HACK if not opts.dryrun: - # write out the new data - #ca.rename() - pass + # rename the file + os.rename( filename, new_abs_path ) else: print "dry-run option was set, so nothing was changed, but here is the proposed filename:" - print "'{0}'".format(new_name) + print "'{0}'".format(new_abs_path) @@ -324,9 +330,9 @@ def main(): signal.signal(signal.SIGINT, signal.SIG_DFL) - if not qt_available: + if not qt_available and not opts.no_gui: opts.no_gui = True - print "QT is not available. Running in text mode" + print "QT is not available." if opts.no_gui: cli_mode( opts, settings ) diff --git a/options.py b/options.py index 1967e16..a005249 100644 --- a/options.py +++ b/options.py @@ -69,7 +69,7 @@ If no options are given, {0} will run in windowed mode Some names that can be used: series, issue, issueCount, year, publisher, title -r, --rename Rename the file based on specified tag style. - -a, --abort Abort save operation when online match is of low confidence TBD! + --noabort Don't abort save operation when online match is of low confidence -v, --verbose Be noisy when doing what it does -h, --help Display this message """ @@ -85,6 +85,7 @@ If no options are given, {0} will run in windowed mode self.delete_tags = False self.search_online = False self.dryrun = False + self.abortOnLowConfidence = True self.save_tags = False self.parse_filename = False self.raw = False @@ -159,7 +160,8 @@ If no options are given, {0} will run in windowed mode try: opts, args = getopt.getopt( input_args, "hpdt:fm:vonsr", - [ "help", "print", "delete", "type=", "parsefilename", "metadata=", "verbose", "online", "dryrun", "save", "rename" , "raw" ]) + [ "help", "print", "delete", "type=", "parsefilename", "metadata=", "verbose", + "online", "dryrun", "save", "rename" , "raw", "noabort" ]) except getopt.GetoptError as err: self.display_help_and_quit( str(err), 2 ) @@ -188,6 +190,8 @@ If no options are given, {0} will run in windowed mode self.parse_filename = True if o in ("--raw"): self.raw = True + if o in ("--noabort"): + self.abortOnLowConfidence = False if o in ("-t", "--type"): if a.lower() == "cr": self.data_style = MetaDataStyle.CIX diff --git a/todo.txt b/todo.txt index 522aa87..583634f 100644 --- a/todo.txt +++ b/todo.txt @@ -16,10 +16,7 @@ Better volume icon for Mac ----------------------------------------------------- Bugs ----------------------------------------------------- -Enable write and rename on command-line -Rename - check for existence, and add (#) -Fix QT not available message -Add abort/not abort + ----------------------------------------------------- Future diff --git a/utils.py b/utils.py index a022af1..782051c 100644 --- a/utils.py +++ b/utils.py @@ -73,6 +73,16 @@ def removearticles( text ): return newText +def unique_file(file_name): + counter = 1 + file_name_parts = os.path.splitext(file_name) # returns ('/path/file', '.ext') + while 1: + if not os.path.lexists( file_name): + return file_name + file_name = file_name_parts[0] + '_' + str(counter) + file_name_parts[1] + counter += 1 + + # -o- coding: utf-8 -o- # ISO639 python dict # oficial list in http://www.loc.gov/standards/iso639-2/php/code_list.php