diff --git a/buganime/buganime.py b/buganime/buganime.py index dc1660f..1d0557e 100644 --- a/buganime/buganime.py +++ b/buganime/buganime.py @@ -109,16 +109,16 @@ def parse_filename(input_path: str) -> TVShow | Movie: if match := re.match(r'^(?P.+?)[ -]+S(?P\d{1,2})E(?P\d{1,3})(?:[ -]+.*)?$', input_name): return TVShow(name=match.group('name'), season=int(match.group('season')), episode=int(match.group('episode'))) - # Other standalone TV Shows - if match := re.match(r'^(?P.+?)[ -]* (?:S(?:eason ?)?(?P\d{1,2})[ -]*)?E?(?P\d{1,3})(?:v\d+)?(?:[ -].*)?$', input_name): - return TVShow(name=match.group('name'), season=int(match.group('season') or '1'), episode=int(match.group('episode'))) - # Structured TV Shows dir_re = r'(?P[^\\]+?)[ -]+S(?:eason ?)?\d{1,2}(?:[ -][^\\]*)?' file_re = r'[^\\]*S(?P\d{1,2})E(?P\d{1,3})(?:[ -][^\\]*)?' if match := re.match(fr'^.*\\{dir_re}(?:\\.*)?\\{file_re}$', input_path): return TVShow(name=match.group('name'), season=int(match.group('season')), episode=int(match.group('episode'))) + # Other standalone TV Shows + if match := re.match(r'^(?P.+?)[ -]* (?:S(?:eason ?)?(?P\d{1,2})[ -]*)?E?(?P\d{1,3})(?:v\d+)?(?:[ -].*)?$', input_name): + return TVShow(name=match.group('name'), season=int(match.group('season') or '1'), episode=int(match.group('episode'))) + return Movie(name=input_name) diff --git a/tests/test_buganime.py b/tests/test_buganime.py index 8dd3be0..355a2be 100644 --- a/tests/test_buganime.py +++ b/tests/test_buganime.py @@ -63,13 +63,17 @@ (r'C:\Monogatari Series\15. Zoku Owarimonogatari\Zoku Owarimonogatari 01 - Koyomi Reverse, Part 1.mkv', buganime.TVShow(name='Zoku Owarimonogatari', season=1, episode=1)), - (r'C:\SNAFU S01-S03+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\SNAFU S02+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\Series\S02E01-Nobody Knows' + (r'C:\SNAFU S01-S03+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\SNAFU S02+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\Series\S02E01-Nobody Knows ' r'Why They Came to the Service Club [7CE95AC0].mkv', buganime.TVShow(name='SNAFU', season=2, episode=1)), (r'C:\Temp\Torrents\SNAFU S01-S03+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\SNAFU S02+OVA 1080p Dual Audio BDRip 10 bits DD x265-EMBER\OVA\S02E14 ' r'[OVA]-Undoubtedly, Girls Are Made of Sugar, Spice, and Everything Nice [7E9E8A1F].mkv', buganime.TVShow(name='SNAFU', season=2, episode=14)), + + (r'C:\Temp\Torrents\Mushoku Tensei S01+SP 1080p Dual Audio BDRip 10 bits DDP x265-EMBER\Mushoku Tensei S01P01 1080p Dual Audio BDRip 10 bits DD ' + r'x265-EMBER\S01E08-Turning Point 1 V2 [87C2150F].mkv', + buganime.TVShow(name='Mushoku Tensei', season=1, episode=8)), ]