From ac0a66f37ad612ca0fae99a209ff93ed8636cf08 Mon Sep 17 00:00:00 2001 From: Rato Date: Sun, 23 Apr 2017 13:40:19 +0200 Subject: [PATCH] Fixes #429: Disable weak episode if type is movie --- guessit/rules/properties/episodes.py | 12 ++++++++---- guessit/test/movies.yml | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/guessit/rules/properties/episodes.py b/guessit/rules/properties/episodes.py index 9cd257d..3455222 100644 --- a/guessit/rules/properties/episodes.py +++ b/guessit/rules/properties/episodes.py @@ -231,14 +231,16 @@ def episodes(): formatter={'season': int, 'other': lambda match: 'Complete'}) # 12, 13 - rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode'], formatter={'episode': int, 'version': int}) \ + rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode'], formatter={'episode': int, 'version': int}, + disabled=lambda context: context.get('type') == 'movie') \ .defaults(validator=None) \ .regex(r'(?P\d{2})') \ .regex(r'v(?P\d+)').repeater('?') \ .regex(r'(?P[x-])(?P\d{2})').repeater('*') # 012, 013 - rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode'], formatter={'episode': int, 'version': int}) \ + rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode'], formatter={'episode': int, 'version': int}, + disabled=lambda context: context.get('type') == 'movie') \ .defaults(validator=None) \ .regex(r'0(?P\d{1,2})') \ .regex(r'v(?P\d+)').repeater('?') \ @@ -246,7 +248,8 @@ def episodes(): # 112, 113 rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode'], formatter={'episode': int, 'version': int}, - disabled=lambda context: not context.get('episode_prefer_number', False)) \ + disabled=lambda context: (not context.get('episode_prefer_number', False) or + context.get('type') == 'movie')) \ .defaults(validator=None) \ .regex(r'(?P\d{3,4})') \ .regex(r'v(?P\d+)').repeater('?') \ @@ -287,7 +290,8 @@ def episodes(): rebulk.chain(tags=['bonus-conflict', 'weak-movie', 'weak-episode', 'weak-duplicate'], formatter={'season': int, 'episode': int, 'version': int}, conflict_solver=lambda match, other: match if other.name == 'year' else '__default__', - disabled=lambda context: context.get('episode_prefer_number', False)) \ + disabled=lambda context: (context.get('episode_prefer_number', False) or + context.get('type') == 'movie')) \ .defaults(validator=None) \ .regex(r'(?P\d{1,2})(?P\d{2})') \ .regex(r'v(?P\d+)').repeater('?') \ diff --git a/guessit/test/movies.yml b/guessit/test/movies.yml index 316a106..770d82f 100644 --- a/guessit/test/movies.yml +++ b/guessit/test/movies.yml @@ -1082,3 +1082,18 @@ format: BluRay screen_size: 1080p type: movie + +? 10 Cloverfield Lane.[Blu-Ray 1080p].[MULTI] +: options: --type movie + title: 10 Cloverfield Lane + format: BluRay + screen_size: 1080p + language: Multiple languages + type: movie + +? 007.Spectre.[HDTC.MD].[TRUEFRENCH] +: options: --type movie + title: 007 Spectre + format: HDTC + language: French + type: movie