From e3d21d8581d9be59888ad1e6c49bc279bb984b97 Mon Sep 17 00:00:00 2001 From: JackDandy Date: Wed, 30 Jun 2021 22:12:58 +0100 Subject: [PATCH] Fix parse correct anime during recent and backlog search. --- CHANGES.md | 7 ++++++- sickbeard/providers/generic.py | 11 ++++++++++- sickbeard/tvcache.py | 12 ++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 0e374e9..8831de7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,9 @@ -### 0.24.6 (2021-06-28 23:59:00 UTC) +### 0.24.7 (2021-06-30 22:10:00 UTC) + +* Fix parse correct animes during recent and backlog search + + +### 0.24.6 (2021-06-28 23:59:00 UTC) * Change allow Python 3.7.11, 3.8.11, and 3.9.6 diff --git a/sickbeard/providers/generic.py b/sickbeard/providers/generic.py index 73d2dba..1b67a80 100644 --- a/sickbeard/providers/generic.py +++ b/sickbeard/providers/generic.py @@ -1131,7 +1131,8 @@ class GenericProvider(object): parser = NameParser(False, show_obj=self.get_show(item, **kwargs), convert=True, indexer_lookup=False) # parse the file name try: - parse_result = parser.parse(title, release_group=self.get_id()) + cache_result = not (show_obj and show_obj.is_anime) + parse_result = parser.parse(title, cache_result=cache_result, release_group=self.get_id()) except InvalidNameException: logger.log(u'Unable to parse the filename %s into a valid episode' % title, logger.DEBUG) continue @@ -1139,6 +1140,14 @@ class GenericProvider(object): logger.log(u'No match for search criteria in the parsed filename ' + title, logger.DEBUG) continue + if parse_result.show_obj.is_anime: + t_show_obj = helpers.get_show(parse_result.show_obj.name, True) + post_parser = NameParser(False, show_obj=t_show_obj, convert=True, indexer_lookup=False) + try: + parse_result = post_parser.parse(title, release_group=self.get_id()) + except(BaseException, Exception): + continue + if not (parse_result.show_obj.tvid == show_obj.tvid and parse_result.show_obj.prodid == show_obj.prodid): logger.log(u'Parsed show [%s] is not show [%s] we are searching for' % (parse_result.show_obj.name, show_obj.name), logger.DEBUG) diff --git a/sickbeard/tvcache.py b/sickbeard/tvcache.py index c4e336f..dd882fb 100644 --- a/sickbeard/tvcache.py +++ b/sickbeard/tvcache.py @@ -292,8 +292,8 @@ class TVCache(object): return try: - np = NameParser(show_obj=show_obj, convert=True, indexer_lookup=False) - parse_result = np.parse(name) + parser = NameParser(show_obj=show_obj, convert=True, indexer_lookup=False) + parse_result = parser.parse(name) except InvalidNameException: logger.log('Unable to parse the filename %s into a valid episode' % name, logger.DEBUG) return @@ -303,6 +303,14 @@ class TVCache(object): if not parse_result or not parse_result.series_name: return + if None is show_obj and parse_result.show_obj.is_anime: + t_show_obj = helpers.get_show(parse_result.show_obj.name, True) + post_parser = NameParser(False, show_obj=t_show_obj, convert=True, indexer_lookup=False) + try: + parse_result = post_parser.parse(name, release_group=self.get_id()) + except(BaseException, Exception): + return + # if we made it this far then lets add the parsed result to cache for usage later on season_number = parse_result.season_number if parse_result.season_number else 1 episode_numbers = parse_result.episode_numbers