mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-29 14:13:22 -08:00
doc and style: formatted the whole codebase to pep8 plus added documentation where necessary
This commit is contained in:
@@ -9,6 +9,8 @@ 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)
|
||||
@@ -17,6 +19,12 @@ class AnimeScreenController:
|
||||
return self.view
|
||||
|
||||
def update_anime_view(self, id: int, caller_screen_name: str):
|
||||
"""method called to update the anime screen when a new
|
||||
|
||||
Args:
|
||||
id (int): the anilst id of the anime
|
||||
caller_screen_name (str): the screen thats calling this method; used internally to switch back to this screen
|
||||
"""
|
||||
if self.model.anime_id != id:
|
||||
if cached_anime_data := Cache.get("data.anime", f"{id}"):
|
||||
data = cached_anime_data
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
|
||||
from inspect import isgenerator
|
||||
from View import CrashLogScreenView
|
||||
from Model import CrashLogScreenModel
|
||||
from View.components import MediaCardsContainer
|
||||
from Utility import show_notification
|
||||
from kivy.clock import Clock
|
||||
|
||||
|
||||
|
||||
class CrashLogScreenController:
|
||||
"""The crash log screen controller
|
||||
"""
|
||||
def __init__(self, model:CrashLogScreenModel):
|
||||
self.model = model
|
||||
self.view = CrashLogScreenView(controller=self, model=self.model)
|
||||
|
||||
@@ -1,28 +1,15 @@
|
||||
|
||||
from inspect import isgenerator
|
||||
from View import DownloadsScreenView
|
||||
from Model import DownloadsScreenModel
|
||||
from View.components import MediaCardsContainer
|
||||
from Utility import show_notification
|
||||
from kivy.clock import Clock
|
||||
|
||||
|
||||
class DownloadsScreenController:
|
||||
"""The controller for the download screen
|
||||
"""
|
||||
def __init__(self, model:DownloadsScreenModel):
|
||||
self.model = model
|
||||
self.view = DownloadsScreenView(controller=self, model=self.model)
|
||||
# self.update_anime_view()
|
||||
|
||||
def get_view(self) -> DownloadsScreenView:
|
||||
return self.view
|
||||
|
||||
# def requested_update_my_list_screen(self):
|
||||
# user_anime_list = user_data_helper.get_user_anime_list()
|
||||
# if animes_to_add:=difference(user_anime_list,self.model.already_in_user_anime_list):
|
||||
# Logger.info("My List Screen:User anime list change;updating screen")
|
||||
# anime_cards = self.model.update_my_anime_list_view(animes_to_add)
|
||||
# self.model.already_in_user_anime_list = user_anime_list
|
||||
# if isgenerator(anime_cards):
|
||||
# for result_card in anime_cards:
|
||||
# result_card.screen = self.view
|
||||
# self.view.update_layout(result_card)
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
|
||||
from inspect import isgenerator
|
||||
from View import HelpScreenView
|
||||
from Model import HelpScreenModel
|
||||
from View.components import MediaCardsContainer
|
||||
from Utility import show_notification
|
||||
from kivy.clock import Clock
|
||||
|
||||
|
||||
class HelpScreenController:
|
||||
"""The help screen controller
|
||||
"""
|
||||
def __init__(self, model:HelpScreenModel):
|
||||
self.model = model
|
||||
self.view = HelpScreenView(controller=self, model=self.model)
|
||||
# self.update_anime_view()
|
||||
|
||||
def get_view(self) -> HelpScreenView:
|
||||
return self.view
|
||||
|
||||
@@ -13,7 +13,7 @@ from Utility import show_notification
|
||||
# TODO:Move the update home screen to homescreen.py
|
||||
class HomeScreenController:
|
||||
"""
|
||||
The `MainScreenController` class represents a controller implementation.
|
||||
The `HomeScreenController` class represents a controller implementation.
|
||||
Coordinates work of the view with the model.
|
||||
The controller implements the strategy pattern. The controller connects to
|
||||
the view to control its actions.
|
||||
@@ -25,6 +25,7 @@ class HomeScreenController:
|
||||
self.view = HomeScreenView(controller=self, model=self.model)
|
||||
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
|
||||
|
||||
@@ -108,16 +109,13 @@ class HomeScreenController:
|
||||
|
||||
def populate_home_screen(self):
|
||||
self.populate_errors = []
|
||||
self.trending_anime()
|
||||
self.highest_scored_anime()
|
||||
self.popular_anime()
|
||||
self.favourite_anime()
|
||||
self.recently_updated_anime()
|
||||
self.upcoming_anime()
|
||||
Clock.schedule_once(lambda _:self.trending_anime())
|
||||
Clock.schedule_once(lambda _:self.highest_scored_anime())
|
||||
Clock.schedule_once(lambda _:self.popular_anime())
|
||||
Clock.schedule_once(lambda _: self.favourite_anime())
|
||||
Clock.schedule_once(lambda _:self.recently_updated_anime())
|
||||
Clock.schedule_once(lambda _:self.upcoming_anime())
|
||||
|
||||
if self.populate_errors:
|
||||
show_notification(f"Failed to fetch all home screen data",f"Theres probably a problem with your internet connection or anilist servers are down.\nFailed include:{', '.join(self.populate_errors)}")
|
||||
|
||||
def update_my_list(self,*args):
|
||||
self.model.update_user_anime_list(*args)
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
from inspect import isgenerator
|
||||
|
||||
from kivy.logger import Logger
|
||||
from kivy.clock import Clock
|
||||
# from kivy.clock import Clock
|
||||
from kivy.utils import difference
|
||||
|
||||
from View import MyListScreenView
|
||||
from Model import MyListScreenModel
|
||||
from Utility import show_notification,user_data_helper
|
||||
from Utility import user_data_helper
|
||||
|
||||
class MyListScreenController:
|
||||
"""
|
||||
The `MainScreenController` class represents a controller implementation.
|
||||
The `MyListScreenController` class represents a controller implementation.
|
||||
Coordinates work of the view with the model.
|
||||
The controller implements the strategy pattern. The controller connects to
|
||||
the view to control its actions.
|
||||
@@ -20,6 +20,7 @@ class MyListScreenController:
|
||||
self.model = model
|
||||
self.view = MyListScreenView(controller=self, model=self.model)
|
||||
self.requested_update_my_list_screen()
|
||||
|
||||
def get_view(self) -> MyListScreenView:
|
||||
return self.view
|
||||
|
||||
@@ -33,5 +34,3 @@ class MyListScreenController:
|
||||
for result_card in anime_cards:
|
||||
result_card.screen = self.view
|
||||
self.view.update_layout(result_card)
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ from Model import SearchScreenModel
|
||||
|
||||
|
||||
class SearchScreenController:
|
||||
"""The search screen controller
|
||||
"""
|
||||
|
||||
def __init__(self, model: SearchScreenModel):
|
||||
self.model = model
|
||||
@@ -17,6 +19,8 @@ class SearchScreenController:
|
||||
return self.view
|
||||
|
||||
def update_trending_anime(self):
|
||||
"""Gets and adds the trending anime to the search screen
|
||||
"""
|
||||
trending_cards_generator = self.model.get_trending_anime()
|
||||
if isgenerator(trending_cards_generator):
|
||||
self.view.trending_anime_sidebar.clear_widgets()
|
||||
@@ -37,7 +41,7 @@ class SearchScreenController:
|
||||
Clock.schedule_once(
|
||||
lambda _: self.view.update_pagination(self.model.pagination_info)
|
||||
)
|
||||
Clock.schedule_once(lambda _: self.update_trending_anime())
|
||||
self.update_trending_anime()
|
||||
else:
|
||||
Logger.error(f"Home Screen:Failed to search for {anime_title}")
|
||||
self.view.is_searching = False
|
||||
|
||||
Reference in New Issue
Block a user