Guest User

Untitled

a guest
Jul 17th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 4.45 KB | None | 0 0
  1. diff --git a/flexget/utils/qualities.py b/flexget/utils/qualities.py
  2. index 815d429..d5fc4a9 100644
  3. --- a/flexget/utils/qualities.py
  4. +++ b/flexget/utils/qualities.py
  5. @@ -11,7 +11,7 @@ log = logging.getLogger('utils.qualities')
  6.  
  7.  class Quality(object):
  8.  
  9. -    def __init__(self, value, name, all_of=None, none_of=None):
  10. +    def __init__(self, value, name, all_of=None):
  11.          """
  12.          :param int value:
  13.            numerical value for quality, used for determining order
  14. @@ -20,8 +20,6 @@ class Quality(object):
  15.          :param list all_of:
  16.            list of regexps that all need to match when testing
  17.            whether or not given text matches this quality
  18. -        :param list none_of:
  19. -          list of regexps that cannot match to this quality
  20.          """
  21.          self.value = value
  22.          self.name = name
  23. @@ -33,9 +31,6 @@ class Quality(object):
  24.          # compile regexps
  25.          for r in all_of:
  26.              self.regexps.append(re.compile('(?<![^\W_])' + r + '(?![^\W_])', re.IGNORECASE))
  27. -        if none_of:
  28. -            for r in none_of:
  29. -                self.not_regexps.append(re.compile('(?<![^\W_])' + r + '(?![^\W_])', re.IGNORECASE))
  30.  
  31.      def matches(self, text):
  32.          """Test if quality matches to text.
  33. @@ -116,27 +111,27 @@ re_bluray = '(?:b[dr][\W_]?rip|bluray(?:[\W_]?rip)?)'
  34.  re_10bit = '(10.?bit|hi10p)'
  35.  
  36.  # TODO: this should be marked as private (_qualities), not sure if it used from other places though
  37. -qualities = [Quality(1200, '1080p bluray 10bit', [re_1080p, re_bluray, re_10bit], none_of=[re_region]),
  38. -             Quality(1100, '1080p bluray', [re_1080p, re_bluray], none_of=[re_region]),
  39. +qualities = [Quality(1200, '1080p bluray 10bit', [re_1080p, re_bluray, re_10bit]),
  40. +             Quality(1100, '1080p bluray', [re_1080p, re_bluray]),
  41.               Quality(1000, '1080p web-dl', [re_1080p, re_webdl]),
  42. -             Quality(850, '1080p 10bit', [re_1080p, re_10bit], none_of=[re_bluray, re_region]),
  43. -             Quality(800, '1080p', [re_1080p], none_of=[re_bluray, re_region]),
  44. +             Quality(850, '1080p 10bit', [re_1080p, re_10bit]),
  45. +             Quality(800, '1080p', [re_1080p]),
  46.               Quality(750, '1080i'),
  47. -             Quality(670, '720p bluray 10bit', [re_720p, re_bluray, re_10bit], none_of=[re_region]),
  48. -             Quality(650, '720p bluray', [re_720p, re_bluray], none_of=[re_region, re_10bit]),
  49. +             Quality(670, '720p bluray 10bit', [re_720p, re_bluray, re_10bit]),
  50. +             Quality(650, '720p bluray', [re_720p, re_bluray]),
  51.               Quality(600, '720p web-dl', [re_720p, re_webdl]),
  52. -             Quality(520, '720p 10bit', [re_720p, re_10bit], none_of=[re_bluray, re_region]),
  53. -             Quality(500, '720p', [re_720p], none_of=[re_bluray, re_region, re_10bit]),
  54. +             Quality(520, '720p 10bit', [re_720p, re_10bit]),
  55. +             Quality(500, '720p', [re_720p]),
  56.               Quality(450, '720i'),
  57.               Quality(430, '1080p bluray rc', [re_1080p, re_bluray, re_region]),
  58.               Quality(420, '720p bluray rc', [re_720p, re_bluray, re_region]),
  59.               Quality(400, 'hr'),
  60. -             Quality(380, 'bdrip', [re_bluray], none_of=[re_region]),
  61. -             Quality(350, 'dvdrip', ['dvd(?:[\W_]?rip)?'], none_of=[re_region]),
  62. +             Quality(380, 'bdrip', [re_bluray]),
  63. +             Quality(350, 'dvdrip', ['dvd(?:[\W_]?rip)?']),
  64.               Quality(320, 'web-dl', [re_webdl]),
  65.               Quality(315, '576p', ['576p?']),
  66.               Quality(310, '480p 10bit', ['480p?', re_10bit]),
  67. -             Quality(300, '480p', ['480p?'], none_of=[re_10bit]),
  68. +             Quality(300, '480p', ['480p?']),
  69.               Quality(290, '368p', ['368p?']),
  70.               Quality(280, '360p'), # I don't think we want to make trailing p optional here (ie. xbox 360)
  71.               Quality(270, 'hdtv', ['hdtv(?:[\W_]?rip)?']),
  72. @@ -152,6 +147,13 @@ qualities = [Quality(1200, '1080p bluray 10bit', [re_1080p, re_bluray, re_10bit]
  73.               Quality(20, 'cam'),
  74.               Quality(10, 'workprint')]
  75.  
  76. +# Higher qualities should exclude the patterns for lower qualities.
  77. +for idx, quality in enumerate(qualities[:-1]):
  78. +    for r in [r for r in (vars(quality)['regexps'] for quality in qualities[idx:])]:
  79. +        if r in vars(quality)['regexps']:
  80. +            continue
  81. +        vars(quality)['not_regexps'].append(r);
  82. +
  83.  registry = dict([(qual.name.lower(), qual) for qual in qualities])
  84.  registry['unknown'] = UNKNOWN
Add Comment
Please, Sign In to add comment