feat: dont pass obj to providers

This commit is contained in:
Benex254
2024-09-22 21:25:52 +03:00
parent 139193ce29
commit 8555edb521
8 changed files with 32 additions and 24 deletions

View File

@@ -92,7 +92,8 @@ class AnimeProvider:
def get_episode_streams(
self,
anime,
anime_id,
anime_title,
episode: str,
translation_type: str,
) -> "Iterator[Server] | None":
@@ -108,5 +109,7 @@ class AnimeProvider:
[TODO:return]
"""
anime_provider = self.anime_provider
results = anime_provider.get_episode_streams(anime, episode, translation_type)
results = anime_provider.get_episode_streams(
anime_id, anime_title, episode, translation_type
)
return results

View File

@@ -284,7 +284,7 @@ def download(
with Progress() as progress:
progress.add_task("Fetching Episode Streams...", total=None)
streams = anime_provider.get_episode_streams(
anime, episode, config.translation_type
anime["id"], anime["title"], episode, config.translation_type
)
if not streams:
print("No streams skipping")

View File

@@ -217,7 +217,7 @@ def grab(
if episode not in episodes:
continue
streams = anime_provider.get_episode_streams(
anime, episode, config.translation_type
anime["id"], anime["title"], episode, config.translation_type
)
if not streams:
continue

View File

@@ -247,7 +247,7 @@ def search(config: "Config", anime_titles: str, episode_range: str):
anilist_anime_info = get_basic_anime_info_by_title(anime["title"])
def stream_anime():
def stream_anime(anime: "Anime"):
clear()
episode = None
@@ -283,7 +283,7 @@ def search(config: "Config", anime_titles: str, episode_range: str):
with Progress() as progress:
progress.add_task("Fetching Episode Streams...", total=None)
streams = anime_provider.get_episode_streams(
anime, episode, config.translation_type
anime["id"], anime["title"], episode, config.translation_type
)
if not streams:
print("Failed to get streams")
@@ -298,13 +298,13 @@ def search(config: "Config", anime_titles: str, episode_range: str):
if not server:
print("Sth went wrong when fetching the episode")
input("Enter to continue")
stream_anime()
stream_anime(anime)
return
stream_link = filter_by_quality(config.quality, server["links"])
if not stream_link:
print("Quality not found")
input("Enter to continue")
stream_anime()
stream_anime(anime)
return
link = stream_link["link"]
subtitles = server["subtitles"]
@@ -334,7 +334,7 @@ def search(config: "Config", anime_titles: str, episode_range: str):
if not stream_link:
print("Quality not found")
input("Enter to continue")
stream_anime()
stream_anime(anime)
return
link = stream_link["link"]
stream_headers = servers[server]["headers"]
@@ -380,6 +380,6 @@ def search(config: "Config", anime_titles: str, episode_range: str):
except IndexError as e:
print(e)
input("Enter to continue")
stream_anime()
stream_anime(anime)
stream_anime()
stream_anime(anime)

View File

@@ -387,7 +387,8 @@ def provider_anime_episode_servers_menu(
with Progress() as progress:
progress.add_task("Fetching Episode Streams...", total=None)
episode_streams_generator = anime_provider.get_episode_streams(
provider_anime,
provider_anime["id"],
provider_anime["title"],
current_episode_number,
translation_type,
)

View File

@@ -153,7 +153,9 @@ class AllAnimeAPI(AnimeProvider):
return episode["episode"]
@debug_provider("ALLANIME")
def get_episode_streams(self, anime, episode_number: str, translation_type="sub"):
def get_episode_streams(
self, anime_id, anime_title, episode_number: str, translation_type="sub"
):
"""get the streams of an episode
Args:
@@ -164,7 +166,6 @@ class AllAnimeAPI(AnimeProvider):
Yields:
[TODO:description]
"""
anime_id = anime["id"]
allanime_episode = self._get_anime_episode(
anime_id, episode_number, translation_type
)
@@ -202,7 +203,7 @@ class AllAnimeAPI(AnimeProvider):
if "tools.fast4speed.rsvp" in url:
return {
"server": "Yt",
"episode_title": f'{anime["title"]}; Episode {episode_number}',
"episode_title": f"{anime_title}; Episode {episode_number}",
"headers": {"Referer": f"https://{ALLANIME_BASE}/"},
"subtitles": [],
"links": [
@@ -229,7 +230,7 @@ class AllAnimeAPI(AnimeProvider):
"headers": {},
"subtitles": [],
"episode_title": (
allanime_episode["notes"] or f'{anime["title"]}'
allanime_episode["notes"] or f"{anime_title}"
)
+ f"; Episode {episode_number}",
"links": give_random_quality(resp.json()["links"]),
@@ -241,7 +242,7 @@ class AllAnimeAPI(AnimeProvider):
"headers": {},
"subtitles": [],
"episode_title": (
allanime_episode["notes"] or f'{anime["title"]}'
allanime_episode["notes"] or f"{anime_title}"
)
+ f"; Episode {episode_number}",
"links": give_random_quality(resp.json()["links"]),
@@ -253,7 +254,7 @@ class AllAnimeAPI(AnimeProvider):
"headers": {},
"subtitles": [],
"episode_title": (
allanime_episode["notes"] or f'{anime["title"]}'
allanime_episode["notes"] or f"{anime_title}"
)
+ f"; Episode {episode_number}",
"links": give_random_quality(resp.json()["links"]),
@@ -265,7 +266,7 @@ class AllAnimeAPI(AnimeProvider):
"headers": {},
"subtitles": [],
"episode_title": (
allanime_episode["notes"] or f'{anime["title"]}'
allanime_episode["notes"] or f"{anime_title}"
)
+ f"; Episode {episode_number}",
"links": give_random_quality(resp.json()["links"]),
@@ -277,7 +278,7 @@ class AllAnimeAPI(AnimeProvider):
"headers": {},
"subtitles": [],
"episode_title": (
allanime_episode["notes"] or f'{anime["title"]}'
allanime_episode["notes"] or f"{anime_title}"
)
+ f"; Episode {episode_number}",
"links": give_random_quality(resp.json()["links"]),

View File

@@ -147,7 +147,9 @@ class AnimePaheApi(AnimeProvider):
}
@debug_provider("ANIMEPAHE")
def get_episode_streams(self, anime, episode_number: str, translation_type, *args):
def get_episode_streams(
self, anime_id, anime_title, episode_number: str, translation_type, *args
):
# extract episode details from memory
episode = [
episode
@@ -160,7 +162,6 @@ class AnimePaheApi(AnimeProvider):
return []
episode = episode[0]
anime_id = anime["id"]
# fetch the episode page
url = f"{ANIMEPAHE_BASE}/play/{anime_id}/{episode['session']}"
response = self.session.get(url)
@@ -175,7 +176,7 @@ class AnimePaheApi(AnimeProvider):
# get the episode title
episode_title = (
f"{episode['title'] or anime['title']}; Episode {episode['episode']}"
f"{episode['title'] or anime_title}; Episode {episode['episode']}"
)
# get all links
streams = {

View File

@@ -139,7 +139,9 @@ class HiAnimeApi(AnimeProvider):
}
@debug_provider("ANIWATCH")
def get_episode_streams(self, anime, episode, translation_type, *args):
def get_episode_streams(
self, anime_id, anime_title, episode, translation_type, *args
):
episode_details = [
episode_details
for episode_details in self.episodes_info