mirror of
https://github.com/Benexl/FastAnime.git
synced 2026-01-10 04:05:13 -08:00
doc:Added typing to the Anilist module
This commit is contained in:
@@ -5,30 +5,31 @@ from kivy.cache import Cache
|
||||
from Model import AnimeScreenModel
|
||||
from View import AnimeScreenView
|
||||
|
||||
Cache.register("data.anime",limit=20,timeout=600)
|
||||
Cache.register("data.anime", limit=20, timeout=600)
|
||||
|
||||
|
||||
class AnimeScreenController:
|
||||
def __init__(self, model:AnimeScreenModel):
|
||||
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 update_anime_view(self,id:int,caller_screen_name:str):
|
||||
def update_anime_view(self, id: int, caller_screen_name: str):
|
||||
if self.model.anime_id != id:
|
||||
if cached_anime_data:=Cache.get("data.anime",f"{id}"):
|
||||
if cached_anime_data := Cache.get("data.anime", f"{id}"):
|
||||
data = cached_anime_data
|
||||
else:
|
||||
data = self.model.get_anime_data(id)
|
||||
|
||||
if data[0]:
|
||||
d = data[1]["data"]["Page"]["media"][0]
|
||||
|
||||
self.model.anime_id = id
|
||||
Clock.schedule_once(lambda _:self.view.update_layout(d,caller_screen_name))
|
||||
Clock.schedule_once(
|
||||
lambda _: self.view.update_layout(
|
||||
data[1]["data"]["Page"]["media"][0], caller_screen_name
|
||||
)
|
||||
)
|
||||
Logger.info(f"Anime Screen:Success in opening anime of id: {id}")
|
||||
Cache.append("data.anime",f"{id}",data)
|
||||
|
||||
def update_my_list(self,*args):
|
||||
self.model.update_user_anime_list(*args)
|
||||
|
||||
Cache.append("data.anime", f"{id}", data)
|
||||
|
||||
@@ -23,7 +23,7 @@ class HomeScreenController:
|
||||
def __init__(self, model:HomeScreenModel):
|
||||
self.model = model # Model.main_screen.MainScreenModel
|
||||
self.view = HomeScreenView(controller=self, model=self.model)
|
||||
if self.view.app.config.get("Preferences","is_startup_anime_enable")=="1":
|
||||
if self.view.app.config.get("Preferences","is_startup_anime_enable")=="1": # type: ignore
|
||||
Clock.schedule_once(lambda _:self.populate_home_screen())
|
||||
def get_view(self) -> HomeScreenView:
|
||||
return self.view
|
||||
|
||||
@@ -5,39 +5,39 @@ from kivy.logger import Logger
|
||||
|
||||
from View import SearchScreenView
|
||||
from Model import SearchScreenModel
|
||||
from Utility import show_notification
|
||||
|
||||
|
||||
class SearchScreenController:
|
||||
|
||||
def __init__(self, model:SearchScreenModel):
|
||||
self.model = model # Model.main_screen.MainScreenModel
|
||||
def __init__(self, model: SearchScreenModel):
|
||||
self.model = model
|
||||
self.view = SearchScreenView(controller=self, model=self.model)
|
||||
|
||||
def get_view(self) -> SearchScreenView:
|
||||
return self.view
|
||||
|
||||
|
||||
def update_trending_anime(self):
|
||||
trending_cards_generator = self.model.get_trending_anime()
|
||||
if isgenerator(trending_cards_generator):
|
||||
self.view.trending_anime_sidebar.clear_widgets()
|
||||
for card in trending_cards_generator:
|
||||
card.screen = self.view
|
||||
card.pos_hint = {'center_x': 0.5}
|
||||
card.pos_hint = {"center_x": 0.5}
|
||||
self.view.update_trending_sidebar(card)
|
||||
else:
|
||||
Logger.error("Home Screen:Failed to load trending anime")
|
||||
self.populate_errors.append("trending Anime")
|
||||
|
||||
def requested_search_for_anime(self,anime_title,**kwargs):
|
||||
def requested_search_for_anime(self, anime_title, **kwargs):
|
||||
self.view.is_searching = True
|
||||
search_Results = self.model.search_for_anime(anime_title,**kwargs)
|
||||
search_Results = self.model.search_for_anime(anime_title, **kwargs)
|
||||
if isgenerator(search_Results):
|
||||
for result_card in search_Results:
|
||||
result_card.screen = self.view
|
||||
self.view.update_layout(result_card)
|
||||
Clock.schedule_once(lambda _:self.view.update_pagination(self.model.pagination_info))
|
||||
Clock.schedule_once(lambda _:self.update_trending_anime())
|
||||
Clock.schedule_once(
|
||||
lambda _: self.view.update_pagination(self.model.pagination_info)
|
||||
)
|
||||
Clock.schedule_once(lambda _: self.update_trending_anime())
|
||||
else:
|
||||
Logger.error(f"Home Screen:Failed to search for {anime_title}")
|
||||
show_notification("Failed to search",f"{search_Results.get('Error')}")
|
||||
self.view.is_searching = False
|
||||
|
||||
Reference in New Issue
Block a user