mirror of
https://github.com/zoriya/guessit.git
synced 2026-06-07 12:15:13 +00:00
Update to latest Rebulk changes
This commit is contained in:
@@ -31,6 +31,8 @@ class GuessitEncoder(json.JSONEncoder):
|
||||
ret['start'] = o.start
|
||||
ret['end'] = o.end
|
||||
return ret
|
||||
elif hasattr(o, 'name'): # Babelfish languages/countries long name
|
||||
return o.name
|
||||
else:
|
||||
return str(o)
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ BONUS = Rebulk().regex_defaults(flags=re.IGNORECASE)
|
||||
|
||||
BONUS.regex(r'x(\d+)', name='bonusNumber', private_parent=True, children=True, formatter=int,
|
||||
validator={'__parent__': lambda match: seps_surround},
|
||||
conflict_solver=lambda match, conflicting: conflicting
|
||||
if match.name in ['videoCodec', 'episodeNumber'] else None)
|
||||
conflict_solver=lambda match, conflicting: match
|
||||
if conflicting.name in ['videoCodec', 'episodeNumber'] else '__default__')
|
||||
|
||||
|
||||
class BonusTitleRule(AppendMatchRule):
|
||||
|
||||
@@ -14,4 +14,8 @@ EPISODES.regex(r'(?P<season>\d+)x(?P<episodeNumber>\d+)',
|
||||
r'S(?P<season>\d+)[ex](?P<episodeNumber>\d+)',
|
||||
formatter=int,
|
||||
children=True,
|
||||
private_parent=True)
|
||||
private_parent=True,
|
||||
conflict_solver=lambda match, other: match
|
||||
if match.name in ['season', 'episodeNumber']
|
||||
and other.name == 'screenSize'
|
||||
else '__default__')
|
||||
|
||||
@@ -18,7 +18,7 @@ UNDETERMINED = babelfish.Language('und')
|
||||
SYN = {('und', None): ['unknown', 'inconnu', 'unk', 'un'],
|
||||
('ell', None): ['gr', 'greek'],
|
||||
('spa', None): ['esp', 'español'],
|
||||
('fra', None): ['français', 'vf', 'vff', 'vfi'],
|
||||
('fra', None): ['français', 'vf', 'vff', 'vfi', 'vfq'],
|
||||
('swe', None): ['se'],
|
||||
('por', 'BR'): ['po', 'pb', 'pob', 'br', 'brazilian'],
|
||||
('cat', None): ['català'],
|
||||
@@ -158,7 +158,7 @@ LNG_COMMON_WORDS = frozenset([
|
||||
'la', 'el', 'del', 'por', 'mar', 'al',
|
||||
# other
|
||||
'ind', 'arw', 'ts', 'ii', 'bin', 'chan', 'ss', 'san', 'oss', 'iii',
|
||||
'vi', 'ben', 'da', 'lt', 'ch', 'sr', 'ps', 'cx',
|
||||
'vi', 'ben', 'da', 'lt', 'ch', 'sr', 'ps', 'cx', 'vo',
|
||||
# new from babelfish
|
||||
'mkv', 'avi', 'dmd', 'the', 'dis', 'cut', 'stv', 'des', 'dia', 'and',
|
||||
'cab', 'sub', 'mia', 'rim', 'las', 'une', 'par', 'srt', 'ano', 'toy',
|
||||
|
||||
@@ -38,6 +38,8 @@ for value in ('Screener', 'Remux', '3D', 'HD', 'mHD', 'HDLight', 'HQ', 'DDC', 'H
|
||||
for value in ('Limited', 'Complete', 'Classic', 'Unrated', 'LiNE', 'Bonus', 'Trailer'):
|
||||
OTHER.string(value, value=value, tags='other.has-neighbor')
|
||||
|
||||
OTHER.string('VO', 'OV', value='OV', tags='other.has-neighbor')
|
||||
|
||||
OTHER.regex('Scr(?:eener)?', value='Screener', validator=None, tags='other.validate.screener')
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ from rebulk import Rebulk
|
||||
import regex as re
|
||||
|
||||
from ..common.validators import seps_surround
|
||||
from guessit.rules.common import dash
|
||||
|
||||
SCREEN_SIZE = Rebulk().regex_defaults(flags=re.IGNORECASE)
|
||||
SCREEN_SIZE.defaults(name="screenSize", validator=seps_surround)
|
||||
@@ -21,5 +22,13 @@ SCREEN_SIZE.regex(r"(?:\d{3,}(?:\\|\/|x|\*))?1080i", value="1080i")
|
||||
SCREEN_SIZE.regex(r"(?:\d{3,}(?:\\|\/|x|\*))?1080p?x?", value="1080p")
|
||||
SCREEN_SIZE.regex(r"(?:\d{3,4}(?:\\|\/|x|\*))?2160(?:i|p?x?)", value="4K")
|
||||
|
||||
|
||||
_digits_re = re.compile(r'\d+')
|
||||
|
||||
|
||||
SCREEN_SIZE.regex(r'\d{3,4}-?[x\*]-?\d{3,4}', abbreviations=[dash],
|
||||
formatter=lambda value: 'x'.join(_digits_re.findall(value)),
|
||||
conflict_solver=lambda match, other: match if other.name == 'screenSize' else other)
|
||||
|
||||
# TODO: implement validators from guessit 1
|
||||
# validator=ChainedValidator(DefaultValidator(), OnlyOneValidator()))
|
||||
|
||||
+132
-1
@@ -646,4 +646,135 @@
|
||||
: title: Dr LiNE The Lorax
|
||||
screenSize: 720p
|
||||
videoCodec: h264
|
||||
format: BluRay
|
||||
format: BluRay
|
||||
|
||||
#TODO: Camelcase implementation
|
||||
#? BeatdownFrenchDVDRip.mkv
|
||||
#: options: -c
|
||||
# title: Beatdown
|
||||
# language: French
|
||||
# format: DVD
|
||||
|
||||
#? YvesSaintLaurent2013FrenchDVDScrXvid.avi
|
||||
#: options: -c
|
||||
# format: DVD
|
||||
# language: French
|
||||
# other: Screener
|
||||
# title: Yves saint laurent
|
||||
# videoCodec: XviD
|
||||
# year: 2013
|
||||
|
||||
|
||||
? Elle.s.en.va.720p.mkv
|
||||
: screenSize: 720p
|
||||
title: Elle s en va
|
||||
|
||||
? FooBar.7.PDTV-FlexGet
|
||||
: format: DVB
|
||||
releaseGroup: FlexGet
|
||||
title: FooBar 7
|
||||
|
||||
? h265 - HEVC Riddick Unrated Director Cut French 1080p DTS.mkv
|
||||
: audioCodec: DTS
|
||||
edition: Director's cut
|
||||
language: fr
|
||||
screenSize: 1080p
|
||||
title: Riddick
|
||||
other: Unrated
|
||||
videoCodec: h265
|
||||
|
||||
? "[h265 - HEVC] Riddick Unrated Director Cut French [1080p DTS].mkv"
|
||||
: audioCodec: DTS
|
||||
edition: Director's cut
|
||||
language: fr
|
||||
screenSize: 1080p
|
||||
title: Riddick
|
||||
other: Unrated
|
||||
videoCodec: h265
|
||||
|
||||
? Barbecue-2014-French-mHD-1080p
|
||||
: options: -n
|
||||
language: fr
|
||||
other: mHD
|
||||
screenSize: 1080p
|
||||
title: Barbecue
|
||||
year: 2014
|
||||
|
||||
? Underworld Quadrilogie VO+VFF+VFQ 1080p HDlight.x264~Tonyk~Monde Infernal
|
||||
: options: -n
|
||||
language: fr
|
||||
other:
|
||||
- HDLight
|
||||
- OV
|
||||
screenSize: 1080p
|
||||
title: Underworld Quadrilogie
|
||||
videoCodec: h264
|
||||
|
||||
? A Bout Portant (The Killers).PAL.Multi.DVD-R-KZ
|
||||
: options: -n
|
||||
format: DVD
|
||||
language: mul
|
||||
releaseGroup: KZ
|
||||
title: A Bout Portant
|
||||
|
||||
? "Mise à Sac (Alain Cavalier, 1967) [Vhs.Rip.Vff]"
|
||||
: format: VHS
|
||||
language: fr
|
||||
title: "Mise à Sac"
|
||||
year: 1967
|
||||
|
||||
? A Bout Portant (The Killers).PAL.Multi.DVD-R-KZ
|
||||
: format: DVD
|
||||
other: PAL
|
||||
language: mul
|
||||
releaseGroup: KZ
|
||||
title: A Bout Portant
|
||||
|
||||
? Youth.In.Revolt.(Be.Bad).2009.MULTI.1080p.LAME3*92-MEDIOZZ
|
||||
: audioCodec: MP3
|
||||
language: mul
|
||||
releaseGroup: MEDIOZZ
|
||||
screenSize: 1080p
|
||||
title: Youth In Revolt
|
||||
year: 2009
|
||||
|
||||
? La Defense Lincoln (The Lincoln Lawyer) 2011 [DVDRIP][Vostfr]
|
||||
: format: DVD
|
||||
subtitleLanguage: fr
|
||||
title: La Defense Lincoln
|
||||
year: 2011
|
||||
|
||||
? '[h265 - HEVC] Fight Club French 1080p DTS.'
|
||||
: audioCodec: DTS
|
||||
language: fr
|
||||
screenSize: 1080p
|
||||
title: Fight Club
|
||||
videoCodec: h265
|
||||
|
||||
? Love Gourou (Mike Myers) - FR
|
||||
: language: fr
|
||||
title: Love Gourou
|
||||
|
||||
? '[h265 - hevc] transformers 2 1080p french ac3 6ch.'
|
||||
: audioChannels: '5.1'
|
||||
audioCodec: AC3
|
||||
language: fr
|
||||
screenSize: 1080p
|
||||
title: transformers 2
|
||||
videoCodec: h265
|
||||
|
||||
? 1.Angry.Man.1957.mkv
|
||||
: title: 1 Angry Man
|
||||
year: 1957
|
||||
|
||||
? 12.Angry.Men.1957.mkv
|
||||
: title: 12 Angry Men
|
||||
year: 1957
|
||||
|
||||
? 123.Angry.Men.1957.mkv
|
||||
: title: 123 Angry Men
|
||||
year: 1957
|
||||
|
||||
? "Looney Tunes 1444x866 Porky's Last Stand.mkv"
|
||||
: screenSize: 1444x866
|
||||
title: Looney Tunes
|
||||
Reference in New Issue
Block a user