Files
FastAnime/fastanime/Controller/anime_screen.py
2024-08-05 09:46:58 +03:00

36 lines
1.2 KiB
Python

from kivy.cache import Cache
from ..Model import AnimeScreenModel
from ..View import AnimeScreenView
Cache.register("data.anime", limit=20, timeout=600)
class AnimeScreenController:
"""The controller for the anime screen"""
def __init__(self, model: AnimeScreenModel):
self.model = model
self.view = AnimeScreenView(controller=self, model=self.model)
def get_view(self) -> AnimeScreenView:
return self.view
def fetch_streams(self, anime_title, is_dub=False, episode="1"):
if self.view.is_dub:
is_dub = self.view.is_dub.active
if anime_data := self.model.get_anime_data_from_provider(
anime_title, is_dub
):
self.view.current_anime_data = anime_data
if current_links := self.model.get_episode_streams(episode, is_dub):
self.view.current_links = current_links
# TODO: add auto start
#
# self.view.current_link = self.view.current_links[0]["gogoanime"][0]
def update_anime_view(self, id, title, caller_screen_name):
self.fetch_streams(title)
self.view.current_title = title
self.view.caller_screen_name = caller_screen_name