Browse Source

Fix anime name parser tests failing on assumed season number 1.

tags/release_0.22.16^2
JackDandy 5 years ago
parent
commit
bd53b15aff
  1. 7
      CHANGES.md
  2. 8
      sickbeard/name_parser/parser.py
  3. 34
      sickbeard/name_parser/regexes.py
  4. 22
      tests/name_parser_tests.py

7
CHANGES.md

@ -1,4 +1,9 @@
### 0.21.15 (2020-11-09 14:10:00 UTC)
### 0.21.16 (2020-11-10 20:15:00 UTC)
* Fix anime name parser tests failing on assumed season number 1
### 0.21.15 (2020-11-09 14:10:00 UTC)
* Fix IMDb cards not always displayed as `in library`

8
sickbeard/name_parser/parser.py

@ -628,11 +628,9 @@ class NameParser(object):
and not final_result.ab_episode_numbers and not final_result.series_name:
raise InvalidNameException('Unable to parse %s' % name.encode(sickbeard.SYS_ENCODING, 'xmlcharrefreplace'))
if final_result.show_obj and final_result.show_obj.is_anime:
if None is final_result.season_number:
final_result.season_number = 1 # assign season number or finish_find_search_results will fail
if not final_result.release_group:
final_result.release_group = release_group # use provider id or pick_best_result fails
if final_result.show_obj and final_result.show_obj.is_anime \
and not final_result.release_group and None is not release_group:
final_result.release_group = release_group # use provider ID otherwise pick_best_result fails
if cache_result:
name_parser_cache.add(name, final_result)

34
sickbeard/name_parser/regexes.py

@ -295,6 +295,40 @@ anime_regexes = [
'''
),
('anime_ep_quality',
# Show Name 09 HD
# Show Name 09 HD1234
# Show Name 09 SD
r'''
^(\[(?P<release_group>.+?)\][ ._-]*)? (?# Release Group and separator)
(?P<series_name>.+?)[ ._-]+ (?# Show_Name and separator)
(?P<ep_ab_num>\d{1,3}) (?# E01)
(-(?P<extra_ab_ep_num>\d{1,3}))? (?# E02)
.*
(v(?P<version>[0-9]))? (?# version)
[ ._-]+(?P<extra_info>[sh]d\d{0,4}.*?) (?# Source_Quality_Etc-)
(\[(?P<crc>\w{8})\])? (?# CRC)
.*? (?# Separator and EOL)
'''
),
('anime_quality_ep',
# Show Name HD 09
# Show Name HD1234 09
# Show Name SD 09
r'''
^(\[(?P<release_group>.+?)\][ ._-]*)? (?# Release Group and separator)
(?P<series_name>.+?)[ ._-]+ (?# Show_Name and separator)
(?P<extra_info>[sh]d\d{0,4}.*?)[ ._-]+ (?# Source_Quality_Etc-)
(\[(?P<crc>\w{8})\])? (?# CRC)
(?P<ep_ab_num>\d{1,3}) (?# E01)
(-(?P<extra_ab_ep_num>\d{1,3}))? (?# E02)
.*
(v(?P<version>[0-9]))? (?# version)
.*? (?# Separator and EOL)
'''
),
('anime_slash',
# [SGKK] Bleach 312v1 [720p/MKV]
r'''

22
tests/name_parser_tests.py

@ -223,6 +223,20 @@ simple_test_cases = {
'Show.Name.123-11001001': parser.ParseResult(None, 'Show Name', None, [], None, None, None, [123]),
},
'anime_ep_quality': {
'Show Name 09 HD': parser.ParseResult(None, 'Show Name', None, [], 'HD', None, None, [9]),
'Show Name 09 SD': parser.ParseResult(None, 'Show Name', None, [], 'SD', None, None, [9]),
'Show Name 09 HD720': parser.ParseResult(None, 'Show Name', None, [], 'HD720', None, None, [9]),
'Show Name HD1080 09': parser.ParseResult(None, 'Show Name', None, [], 'HD1080', None, None, [9]),
},
'anime_quality_ep': {
'Show Name HD 09': parser.ParseResult(None, 'Show Name', None, [], 'HD', None, None, [9]),
'Show Name SD 09': parser.ParseResult(None, 'Show Name', None, [], 'SD', None, None, [9]),
'Show Name HD720 09': parser.ParseResult(None, 'Show Name', None, [], 'HD720', None, None, [9]),
'Show Name HD1080 09': parser.ParseResult(None, 'Show Name', None, [], 'HD1080', None, None, [9]),
},
'anime_ep_name': {
'[TzaTziki]_One_Piece_279_Chopper_Man_1_[720p][8AE5F25D]':
parser.ParseResult(None, 'One Piece', None, [], '720p', 'TzaTziki', None, [279]),
@ -647,6 +661,14 @@ class BasicTests(unittest.TestCase):
np = parser.NameParser(False, TVShowTest(is_anime=True), testing=True)
self._test_names(np, 'anime_standard')
def test_anime_ep_quality(self):
np = parser.NameParser(False, TVShowTest(is_anime=True), testing=True)
self._test_names(np, 'anime_ep_quality')
def test_anime_quality_ep(self):
np = parser.NameParser(False, TVShowTest(is_anime=True), testing=True)
self._test_names(np, 'anime_quality_ep')
def test_anime_ep_name(self):
np = parser.NameParser(False, TVShowTest(is_anime=True), testing=True)
self._test_names(np, 'anime_ep_name')

Loading…
Cancel
Save