mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-07-16 02:02:53 -07:00
updated libs to fix guessit and subliminal. Fixes #1080
This commit is contained in:
parent
319d418af8
commit
0625f7f3c0
263 changed files with 28711 additions and 12615 deletions
|
@ -1,7 +1,20 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Options
|
||||
"""
|
||||
from argparse import ArgumentParser
|
||||
import shlex
|
||||
|
||||
import six
|
||||
|
||||
|
||||
def build_opts(transformers=None):
|
||||
def build_argument_parser():
|
||||
"""
|
||||
Builds the argument parser
|
||||
:return: the argument parser
|
||||
:rtype: ArgumentParser
|
||||
"""
|
||||
opts = ArgumentParser()
|
||||
opts.add_argument(dest='filename', help='Filename or release name to guess', nargs='*')
|
||||
|
||||
|
@ -9,61 +22,67 @@ def build_opts(transformers=None):
|
|||
naming_opts.add_argument('-t', '--type', dest='type', default=None,
|
||||
help='The suggested file type: movie, episode. If undefined, type will be guessed.')
|
||||
naming_opts.add_argument('-n', '--name-only', dest='name_only', action='store_true', default=False,
|
||||
help='Parse files as name only. Disable folder parsing, extension parsing, and file content analysis.')
|
||||
naming_opts.add_argument('-c', '--split-camel', dest='split_camel', action='store_true', default=False,
|
||||
help='Split camel case part of filename.')
|
||||
help='Parse files as name only, considering "/" and "\\" like other separators.')
|
||||
naming_opts.add_argument('-Y', '--date-year-first', action='store_true', dest='date_year_first', default=None,
|
||||
help='If short date is found, consider the first digits as the year.')
|
||||
naming_opts.add_argument('-D', '--date-day-first', action='store_true', dest='date_day_first', default=None,
|
||||
help='If short date is found, consider the second digits as the day.')
|
||||
naming_opts.add_argument('-L', '--allowed-languages', action='append', dest='allowed_languages',
|
||||
help='Allowed language (can be used multiple times)')
|
||||
naming_opts.add_argument('-C', '--allowed-countries', action='append', dest='allowed_countries',
|
||||
help='Allowed country (can be used multiple times)')
|
||||
naming_opts.add_argument('-E', '--episode-prefer-number', action='store_true', dest='episode_prefer_number',
|
||||
default=False,
|
||||
help='Guess "serie.213.avi" as the episode 213. Without this option, '
|
||||
'it will be guessed as season 2, episode 13')
|
||||
naming_opts.add_argument('-T', '--expected-title', action='append', dest='expected_title',
|
||||
help='Expected title to parse (can be used multiple times)')
|
||||
naming_opts.add_argument('-G', '--expected-group', action='append', dest='expected_group',
|
||||
help='Expected release group (can be used multiple times)')
|
||||
|
||||
naming_opts.add_argument('-X', '--disabled-transformer', action='append', dest='disabled_transformers',
|
||||
help='Transformer to disable (can be used multiple time)')
|
||||
input_opts = opts.add_argument_group("Input")
|
||||
input_opts.add_argument('-f', '--input-file', dest='input_file', default=False,
|
||||
help='Read filenames from an input text file. File should use UTF-8 charset.')
|
||||
|
||||
output_opts = opts.add_argument_group("Output")
|
||||
output_opts.add_argument('-v', '--verbose', action='store_true', dest='verbose', default=False,
|
||||
help='Display debug output')
|
||||
output_opts.add_argument('-P', '--show-property', dest='show_property', default=None,
|
||||
help='Display the value of a single property (title, series, videoCodec, year, type ...)'),
|
||||
output_opts.add_argument('-u', '--unidentified', dest='unidentified', action='store_true', default=False,
|
||||
help='Display the unidentified parts.'),
|
||||
help='Display the value of a single property (title, series, video_codec, year, ...)')
|
||||
output_opts.add_argument('-a', '--advanced', dest='advanced', action='store_true', default=False,
|
||||
help='Display advanced information for filename guesses, as json output')
|
||||
output_opts.add_argument('-j', '--json', dest='json', action='store_true', default=False,
|
||||
help='Display information for filename guesses as json output')
|
||||
output_opts.add_argument('-y', '--yaml', dest='yaml', action='store_true', default=False,
|
||||
help='Display information for filename guesses as yaml output (like unit-test)')
|
||||
output_opts.add_argument('-f', '--input-file', dest='input_file', default=False,
|
||||
help='Read filenames from an input file.')
|
||||
output_opts.add_argument('-d', '--demo', action='store_true', dest='demo', default=False,
|
||||
help='Run a few builtin tests instead of analyzing a file')
|
||||
help='Display information for filename guesses as yaml output')
|
||||
|
||||
|
||||
|
||||
information_opts = opts.add_argument_group("Information")
|
||||
information_opts.add_argument('-p', '--properties', dest='properties', action='store_true', default=False,
|
||||
help='Display properties that can be guessed.')
|
||||
information_opts.add_argument('-V', '--values', dest='values', action='store_true', default=False,
|
||||
help='Display property values that can be guessed.')
|
||||
information_opts.add_argument('-s', '--transformers', dest='transformers', action='store_true', default=False,
|
||||
help='Display transformers that can be used.')
|
||||
information_opts.add_argument('--version', dest='version', action='store_true', default=False,
|
||||
help='Display the guessit version.')
|
||||
|
||||
webservice_opts = opts.add_argument_group("guessit.io")
|
||||
webservice_opts.add_argument('-b', '--bug', action='store_true', dest='submit_bug', default=False,
|
||||
help='Submit a wrong detection to the guessit.io service')
|
||||
|
||||
other_opts = opts.add_argument_group("Other features")
|
||||
other_opts.add_argument('-i', '--info', dest='info', default='filename',
|
||||
help='The desired information type: filename, video, 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')
|
||||
|
||||
if transformers:
|
||||
for transformer in transformers:
|
||||
transformer.register_arguments(opts, naming_opts, output_opts, information_opts, webservice_opts, other_opts)
|
||||
|
||||
return opts, naming_opts, output_opts, information_opts, webservice_opts, other_opts
|
||||
_opts, _naming_opts, _output_opts, _information_opts, _webservice_opts, _other_opts = None, None, None, None, None, None
|
||||
return opts
|
||||
|
||||
|
||||
def reload(transformers=None):
|
||||
global _opts, _naming_opts, _output_opts, _information_opts, _webservice_opts, _other_opts
|
||||
_opts, _naming_opts, _output_opts, _information_opts, _webservice_opts, _other_opts = build_opts(transformers)
|
||||
def parse_options(options):
|
||||
"""
|
||||
Parse given option string
|
||||
:param options:
|
||||
:type options:
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
if isinstance(options, six.string_types):
|
||||
args = shlex.split(options)
|
||||
options = vars(argument_parser.parse_args(args))
|
||||
if options is None:
|
||||
options = {}
|
||||
return options
|
||||
|
||||
|
||||
def get_opts():
|
||||
return _opts
|
||||
argument_parser = build_argument_parser()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue