def main(): slogging.setupLogging() if PY2: import codecs import locale import sys # see http://bugs.python.org/issue2128 if os.name == "nt": for i, a in enumerate(sys.argv): sys.argv[i] = a.decode(locale.getpreferredencoding()) # see https://github.com/wackou/guessit/issues/43 # and http://stackoverflow.com/questions/4545661/unicodedecodeerror-when-redirecting-to-file # Wrap sys.stdout into a StreamWriter to allow writing unicode. sys.stdout = codecs.getwriter(locale.getpreferredencoding())(sys.stdout) parser = OptionParser(usage="usage: %prog [options] file1 [file2...]") parser.add_option( "-v", "--verbose", action="store_true", dest="verbose", default=False, help="display debug output" ) parser.add_option( "-p", "--properties", dest="properties", action="store_true", default=False, help="Display properties that can be guessed by the filename matcher.", ) parser.add_option( "-i", "--info", dest="info", default="filename", help="the desired information type: filename, hash_mpc or a hash from python's " "hashlib module, such as hash_md5, hash_sha1, ...; or a list of any of " "them, comma-separated", ) parser.add_option( "-t", "--type", dest="filetype", default="autodetect", help="the suggested file type: movie, episode or autodetect", ) parser.add_option( "-a", "--advanced", dest="advanced", action="store_true", default=False, help="display advanced information for filename guesses, as json output", ) parser.add_option( "-d", "--demo", action="store_true", dest="demo", default=False, help="run a few builtin tests instead of analyzing a file", ) options, args = parser.parse_args() if options.verbose: logging.getLogger().setLevel(logging.DEBUG) transformers.load() if options.properties: display_properties() if options.demo: run_demo(episodes=True, movies=True, advanced=options.advanced) else: if args: for filename in args: detect_filename( filename, filetype=options.filetype, info=options.info.split(","), advanced=options.advanced ) else: parser.print_help()
def currentPath(): '''Returns the path in which the calling file is located.''' return dirname(join(os.getcwd(), sys._getframe(1).f_globals['__file__'])) def addImportPath(path): '''Function that adds the specified path to the import path. The path can be absolute or relative to the calling file.''' importPath = abspath(join(currentPath(), path)) sys.path = [importPath] + sys.path setupLogging() transformers.load() logging.getLogger().setLevel(MAIN_LOGGING_LEVEL) log = logging.getLogger(__name__) import guessit from guessit import * from guessit.matcher import * from guessit.fileutils import * def allTests(testClass): return TestLoader().loadTestsFromTestCase(testClass) class TestGuessit(TestCase):