Updated regex for show series name matching, faster matching.

This commit is contained in:
echel0n 2014-06-24 18:42:03 -07:00
parent 7d2f7c8233
commit f16ee09501

View file

@ -110,7 +110,7 @@ class NameParser(object):
if not self.showObj and not self.naming_pattern: if not self.showObj and not self.naming_pattern:
# Regex pattern to return the Show / Series Name regardless of the file pattern tossed at it, matched 53 show name examples from regexes.py # Regex pattern to return the Show / Series Name regardless of the file pattern tossed at it, matched 53 show name examples from regexes.py
show_pattern = '''((\[.*?\])|(\d+[\.-]))*[ _\.]?(?P<series_name>.*?([ ._-](\d{4}))?)((([ ._-]+\d+)|([ ._-]+s\d{2}))|(\W+(?:(?:S\d[\dE._ -])|(?:\d\d?x)|(?:\d{4}\W\d\d\W\d\d)|(?:(?:part|pt)[\._ -]?(\d|[ivx]))|Season\W+\d+\W+|E\d+\W+|(?:\d{1,3}.+\d{1,}[a-zA-Z]{2}\W+[a-zA-Z]{3,}\W+\d{4}.+))))''' show_pattern = '''(?:(?:\[.*?\])|(?:\d{3}[\.-]))*[ _\.]?(?P<series_name>.*?(?:[ ._-](\d{4}))?)(?:(?:(?:[ ._-]+\d+)|(?:[ ._-]+s\d{2}))|(?:\W+(?:(?:S\d[\dE._ -])|(?:\d\d?x)|(?:\d{4}\W\d\d\W\d\d)|(?:(?:part|pt)[\._ -]?(?:\d|[ivx]))|Season\W+\d+\W+|E\d+\W+|(?:\d{1,3}.+\d{1,}[a-zA-Z]{2}\W+[a-zA-Z]{3,}\W+\d{4}.+))))'''
try: try:
show_regex = re.compile(show_pattern, re.VERBOSE | re.IGNORECASE) show_regex = re.compile(show_pattern, re.VERBOSE | re.IGNORECASE)
except re.error, errormsg: except re.error, errormsg:
@ -125,6 +125,9 @@ class NameParser(object):
# Do we have recognize this show? # Do we have recognize this show?
series_name = self.clean_series_name(seriesname_match.group('series_name')) series_name = self.clean_series_name(seriesname_match.group('series_name'))
self.showObj = helpers.get_show_by_name(series_name, useIndexer=self.useIndexers) self.showObj = helpers.get_show_by_name(series_name, useIndexer=self.useIndexers)
if not self.showObj:
series_name = re.sub('^(?:(?:\[.*?\])|(?:\d{3}[\.-]))*[ _\.]?', '', series_name)
self.showObj = helpers.get_show_by_name(series_name, useIndexer=self.useIndexers)
if not self.showObj: if not self.showObj:
return return