""" Contains Helper functions to read and write the user data files """ from kivy.storage.jsonstore import JsonStore from datetime import date, datetime from kivy.logger import Logger today = date.today() now = datetime.now() user_data = JsonStore("user_data.json") yt_cache = JsonStore("yt_cache.json") # Get the user data def get_user_anime_list() -> list: try: return user_data.get("user_anime_list")[ "user_anime_list" ] # returns a list of anime ids except Exception as e: Logger.warning(f"User Data:Read failure:{e}") return [] def update_user_anime_list(updated_list: list): try: updated_list_ = list(set(updated_list)) user_data.put("user_anime_list", user_anime_list=updated_list_) except Exception as e: Logger.warning(f"User Data:Update failure:{e}") # Get the user data def get_user_downloads() -> list: try: return user_data.get("user_downloads")[ "user_downloads" ] # returns a list of anime ids except Exception as e: Logger.warning(f"User Data:Read failure:{e}") return [] def update_user_downloads(updated_list: list): try: user_data.put("user_downloads", user_downloads=list(set(updated_list))) except Exception as e: Logger.warning(f"User Data:Update failure:{e}") # Yt persistent anime trailer cache t = 1 if now.hour <= 6: t = 1 elif now.hour <= 12: t = 2 elif now.hour <= 18: t = 3 else: t = 4 yt_anime_trailer_cache_name = f"{today}{t}" def get_anime_trailer_cache() -> list: try: return yt_cache["yt_stream_links"][f"{yt_anime_trailer_cache_name}"] except Exception as e: Logger.warning(f"User Data:Read failure:{e}") return [] def update_anime_trailer_cache(yt_stream_links: list): try: yt_cache.put( "yt_stream_links", **{f"{yt_anime_trailer_cache_name}": yt_stream_links} ) except Exception as e: Logger.warning(f"User Data:Update failure:{e}")