Skip to content

Commit

Permalink
Improve subtitles pack extraction
Browse files Browse the repository at this point in the history
  • Loading branch information
vitiko98 committed May 4, 2022
1 parent 7423c80 commit ce33b4f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
18 changes: 10 additions & 8 deletions libs/subliminal_patch/providers/utils.py
Expand Up @@ -20,27 +20,29 @@

def _get_matching_sub(sub_names, forced=False, episode=None):
matching_sub = None
for sub_name in sub_names:
guess = guessit(sub_name, options={"single_value": True})
is_movie = not guess.get("episode") or not episode

guess_options = {"single_value": True}
if episode is not None:
guess_options["type"] = "episode" # type: ignore

for sub_name in sub_names:
if not forced and os.path.splitext(sub_name.lower())[0].endswith("forced"):
logger.debug("Ignoring forced subtitle: %s", sub_name)
continue

# If it's a movie then get the first subtitle
if is_movie:
if episode is None:
logger.debug("Movie subtitle found: %s", sub_name)
matching_sub = sub_name
break

# Get episode info
guess_episode = guess.get("episode")
if guess_episode is None:
guess = guessit(sub_name, options=guess_options)

if guess.get("episode") is None:
logger.debug("No episode info found in file: %s", sub_name)
continue

if episode == guess_episode:
if episode == guess["episode"]:
logger.debug("Episode matched: %s", sub_name)
matching_sub = sub_name
break
Expand Down
2 changes: 1 addition & 1 deletion tests/subliminal_patch/test_utils.py
Expand Up @@ -19,7 +19,7 @@
1,
"breaking.bad.s01e01.srt",
),
(("dummy.forced.srt",), True, 1, "dummy.forced.srt"),
(("dummy.forced.srt",), True, None, "dummy.forced.srt"),
(("dummy.forced.srt",), False, 1, None),
],
)
Expand Down

0 comments on commit ce33b4f

Please sign in to comment.