mirror of
https://github.com/Benexl/FastAnime.git
synced 2026-02-04 11:07:48 -08:00
feat: dont pass obj to providers
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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"]),
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user