Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Made all subf2m test pass #2645

Merged
merged 4 commits into from
Sep 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions custom_libs/subliminal_patch/providers/subf2m.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@ def id(self):
class Subf2mProvider(Provider):
provider_name = "subf2m"

_movie_title_regex = re.compile(r"^(.+?)( \((\d{4})\))?$")
_movie_title_regex = re.compile(r"^(.+?)(\s+\((\d{4})\))?$")
_tv_show_title_regex = re.compile(
r"^(.+?) [-\(]\s?(.*?) (season|series)\)?( \((\d{4})\))?$"
r"^(.+?)\s+[-\(]\s?(.*?)\s+(season|series)\)?(\s+\((\d{4})\))?$"
)
_tv_show_title_alt_regex = re.compile(r"(.+)\s(\d{1,2})(?:\s|$)")
_supported_languages = {}
Expand Down
8 changes: 5 additions & 3 deletions custom_libs/subliminal_patch/providers/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,13 @@ def _get_matching_sub(
return None


def _analize_sub_name(sub_name: str, title_):
titles = re.split(r"[.-]", os.path.splitext(sub_name)[0])
def _analize_sub_name(sub_name: str, title_: str):
titles = re.split(r"[\s_\.\+]?[.-][\s_\.\+]?", os.path.splitext(sub_name)[0])

for title in titles:
title = title.strip()
ratio = SequenceMatcher(None, title, title_).ratio()
ratio = SequenceMatcher(None, title.lower(), title_.lower()).ratio()

if ratio > 0.85:
logger.debug(
"Episode title matched: '%s' -> '%s' [%s]", title, sub_name, ratio
Expand Down
2 changes: 1 addition & 1 deletion custom_libs/subliminal_patch/subtitle.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ def guess_encoding(self):
return encoding

def is_valid(self):
"""Check if a :attr:`text` is a valid SubRip format. Note that orignal format will pypass the checking
"""Check if a :attr:`text` is a valid SubRip format. Note that original format will bypass the checking
:return: whether or not the subtitle is valid.
:rtype: bool
Expand Down
33 changes: 27 additions & 6 deletions tests/subliminal_patch/test_subf2m.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,15 +184,36 @@ def test_download_subtitle_episode(provider, subtitle_episode):
assert subtitle_episode.is_valid()


def test_download_subtitle_episode_with_title(provider):
@pytest.mark.parametrize(
"language,page_link,release_info,episode_number,episode_title",
[
(
"en",
"https://subf2m.co/subtitles/courage-the-cowardly-dog/english/2232402",
"Season 3 complete.",
13,
"Feast of the Bullfrogs",
),
(
"en",
"https://subf2m.co/subtitles/rick-and-morty-sixth-season/english/3060783",
"Used Subtitle Tools to convert from SUP to SRT, then ran the cleaner to remove HI. Grabbed subs from Rick.and.Morty.S06.1080p.BluRay.x264-STORiES.",
7,
"Full Meta Jackrick",
),
],
)
def test_download_subtitle_episode_with_title(
provider, language, page_link, release_info, episode_number, episode_title
):
sub = Subf2mSubtitle(
Language.fromalpha2("en"),
"https://subf2m.co/subtitles/courage-the-cowardly-dog/english/2232402",
"Season 3 complete.",
13,
Language.fromalpha2(language),
page_link,
release_info,
episode_number,
)

sub.episode_title = "Feast of the Bullfrogs"
sub.episode_title = episode_title
provider.download_subtitle(sub)
assert sub.is_valid()

Expand Down