From 94fc3ae8dd437f268999b36477fb3f04de8c8f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Louis=20V=C3=A9zina?= <5130500+morpheus65535@users.noreply.github.com> Date: Mon, 6 Jul 2020 18:34:52 -0400 Subject: [PATCH] Fix for #915 --- libs/subliminal_patch/providers/zimuku.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libs/subliminal_patch/providers/zimuku.py b/libs/subliminal_patch/providers/zimuku.py index 5e3b917e3..a8564cca1 100644 --- a/libs/subliminal_patch/providers/zimuku.py +++ b/libs/subliminal_patch/providers/zimuku.py @@ -36,25 +36,29 @@ class ZimukuSubtitle(Subtitle): provider_name = "zimuku" - def __init__(self, language, page_link, version, session): + def __init__(self, language, page_link, version, session, year): super(ZimukuSubtitle, self).__init__(language, page_link=page_link) self.version = version + self.release_info = version self.hearing_impaired = False self.encoding = "utf-8" self.session = session + self.year = year @property def id(self): - return self.version + return self.page_link def get_matches(self, video): matches = set() + if video.year == self.year: + matches.add('year') + # episode if isinstance(video, Episode): # always make year a match info = guessit(self.version, {"type": "episode"}) - info["year"] = video.year # other properties matches |= guess_matches(video, info, partial=True) # movie @@ -90,7 +94,7 @@ class ZimukuProvider(Provider): def terminate(self): self.session.close() - def _parse_episode_page(self, link): + def _parse_episode_page(self, link, year): r = self.session.get(link) bs_obj = ParserBeautifulSoup( r.content.decode("utf-8", "ignore"), ["html.parser"] @@ -118,7 +122,7 @@ class ZimukuProvider(Provider): backup_session.headers["Referer"] = link subs.append( - self.subtitle_class(language, sub_page_link, name, backup_session) + self.subtitle_class(language, sub_page_link, name, backup_session, year) ) return subs @@ -150,6 +154,7 @@ class ZimukuProvider(Provider): logger.debug("enter a non-shooter page") for item in soup.find_all("div", {"class": "item"}): title_a = item.find("p", class_="tt clearfix").find("a") + subs_year = re.findall(r"\d{4}", title_a.text) or None if season: title = title_a.text season_cn1 = re.search("第(.*)季", title) @@ -161,7 +166,7 @@ class ZimukuProvider(Provider): if season_cn1 != season_cn2: continue episode_link = self.server_url + title_a.attrs["href"] - new_subs = self._parse_episode_page(episode_link) + new_subs = self._parse_episode_page(episode_link, subs_year) subtitles += new_subs # NOTE: shooter result pages are ignored due to the existence of assrt provider @@ -331,7 +336,6 @@ def _extract_name(name): end += 1 if end - start > result[1] - result[0]: result = [start, end] - print(result) start = end end += 1 new_name = name[result[0] : result[1]]