1
0
mirror of https://github.com/moparisthebest/SickRage synced 2024-11-11 03:45:01 -05:00

Merge remote-tracking branch 'origin/dev'

This commit is contained in:
echel0n 2014-06-21 17:15:46 -07:00
commit 26d578c671

View File

@ -47,6 +47,17 @@ class NameParser(object):
self.convert = convert self.convert = convert
self.naming_pattern = naming_pattern self.naming_pattern = naming_pattern
self.regexMode = self.ALL_REGEX
if self.showObj and self.showObj.is_anime:
self.regexMode = self.ANIME_REGEX
elif self.showObj and self.showObj.is_sports:
self.regexMode = self.SPORTS_REGEX
elif self.showObj and not self.showObj.is_anime and not self.showObj.is_sports:
self.regexMode = self.NORMAL_REGEX
self.compiled_regexes = {}
self._compile_regexes(self.regexMode)
def clean_series_name(self, series_name): def clean_series_name(self, series_name):
"""Cleans up series name by removing any . and _ """Cleans up series name by removing any . and _
characters, along with any trailing hyphens. characters, along with any trailing hyphens.
@ -106,29 +117,6 @@ class NameParser(object):
if not name: if not name:
return return
if not self.naming_pattern:
if not self.showObj:
for curShow in self.showList:
if sickbeard.show_name_helpers.isGoodResult(name, curShow, False):
self.showObj = curShow
break
time.sleep(cpu_presets[sickbeard.CPU_PRESET])
if not self.showObj:
return
regexMode = self.ALL_REGEX
if self.showObj and self.showObj.is_anime:
regexMode = self.ANIME_REGEX
elif self.showObj and self.showObj.is_sports:
regexMode = self.SPORTS_REGEX
elif self.showObj and not self.showObj.is_anime and not self.showObj.is_sports:
regexMode = self.NORMAL_REGEX
self.compiled_regexes = {}
self._compile_regexes(regexMode)
matches = [] matches = []
result = None result = None
for (cur_regex_type, cur_regex_name), cur_regex in self.compiled_regexes.items(): for (cur_regex_type, cur_regex_name), cur_regex in self.compiled_regexes.items():
@ -149,6 +137,22 @@ class NameParser(object):
result.series_name = self.clean_series_name(result.series_name) result.series_name = self.clean_series_name(result.series_name)
result.score += 1 result.score += 1
if not self.showObj:
self.showObj = helpers.get_show_by_name(result.series_name, useIndexer=self.useIndexers)
if self.showObj:
result.show = self.showObj
if getattr(self.showObj, 'air_by_date', None) and not self.regexMode == self.NORMAL_REGEX:
continue
elif getattr(self.showObj, 'sports', None) and not self.regexMode == self.SPORTS_REGEX:
continue
elif getattr(self.showObj, 'anime', None) and not self.regexMode == self.ANIME_REGEX:
continue
# don't continue parsing if we don't have a show object by now, try next regex pattern
if not self.showObj and not self.naming_pattern:
continue
if 'season_num' in named_groups: if 'season_num' in named_groups:
tmp_season = int(match.group('season_num')) tmp_season = int(match.group('season_num'))
if not (cur_regex_name == 'bare' and tmp_season in (19, 20)): if not (cur_regex_name == 'bare' and tmp_season in (19, 20)):
@ -220,21 +224,12 @@ class NameParser(object):
result.release_group = match.group('release_group') result.release_group = match.group('release_group')
result.score += 1 result.score += 1
# if not self.showObj: if getattr(self.showObj, 'air_by_date', None) and result.air_date:
# self.showObj = helpers.get_show_by_name(result.series_name, useIndexer=self.useIndexers) result.score += 1
elif getattr(self.showObj, 'sports', None) and result.sports_event_date:
if self.showObj: result.score += 1
if self.showObj.air_by_date and result.air_date: elif getattr(self.showObj, 'anime', None) and len(result.ab_episode_numbers):
result.score += 1 result.score += 1
elif self.showObj.sports and result.sports_event_date:
result.score += 1
elif self.showObj.anime and len(result.ab_episode_numbers):
result.score += 1
else:
matches.append(result)
continue
result.show = self.showObj
if self.convert: if self.convert:
result = result.convert() result = result.convert()