diff --git a/main.py b/main.py index 28d2746..9fb86c9 100644 --- a/main.py +++ b/main.py @@ -10,8 +10,18 @@ from aniworld.common import get_season_episode_count, get_movie_episode_count from aniworld.search import search_anime from Loader import download + # Configure logging -logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(funcName)s - %(message)s') +console_handler = logging.StreamHandler() +console_handler.setLevel(logging.INFO) +console_handler.setFormatter(logging.Formatter( + "%(asctime)s - %(levelname)s - %(funcName)s - %(message)s") +) +logging.getLogger().addHandler(console_handler) +logging.getLogger("urllib3.connectionpool").setLevel(logging.INFO) +logging.getLogger('charset_normalizer').setLevel(logging.INFO) +logging.getLogger().setLevel(logging.INFO) error_logger = logging.getLogger("ErrorLog") error_handler = logging.FileHandler("errors.log") @@ -23,6 +33,11 @@ noKeyFound_handler = logging.FileHandler("NoKeyFound.log") noKeyFound_handler.setLevel(logging.ERROR) noKeyFound_logger.addHandler(noKeyFound_handler) +noGerFound_logger = logging.getLogger("noGerFound") +noGerFound_handler = logging.FileHandler("noGerFound.log") +noGerFound_handler.setLevel(logging.ERROR) +noGerFound_logger.addHandler(noGerFound_handler) + class NoKeyFoundException(Exception): """Exception raised when an anime key cannot be found.""" pass @@ -132,7 +147,7 @@ class Loader: yield season, missing_episodes def LoadMissing(self): - logging.warning("Starting process to load missing episodes") + logging.info("Starting process to load missing episodes") result = self.__find_mp4_files() def download_episode(folder, season, episode, key): @@ -144,19 +159,22 @@ class Loader: language="German Dub", output_directory=folder_path ) - logging.warning(f"Downloading episode {episode} of season {season} for anime {key}") + logging.info(f"Downloading anime {key} season {season} episode {episode}") download(anime) + logging.info(f"Downloading completed anime {key} season {season} episode {episode}") + except KeyError as keye: + noGerFound_logger.error(f"Language not found for anime: {key} season: {season} episode: {episode}") except Exception as e: logging.error(f"Error downloading episode {episode} of season {season} for anime {key}: {e}") # Using ThreadPoolExecutor to run downloads in parallel - with ThreadPoolExecutor(max_workers=5) as executor: # Adjust number of workers as needed + with ThreadPoolExecutor(max_workers=1) as executor: # Adjust number of workers as needed for folder, mp4_files in result: try: key = self.__check_and_generate_key(folder) missings = self.__GetMissingEpisodesAndSeason(key, mp4_files) - logging.info("Missing episodes for {key} \n" + "\n".join(f"Season {str(k)}: {', '.join(str(v))}" for k, v in missings)) for season, missing_episodes in missings: + logging.info(f"Missing episodes for {key}\nSeason {str(season)}: Episodes: " + ",".join(f"{''.join(str(v))}" for v in missing_episodes)) for episode in missing_episodes: executor.submit(download_episode, folder, season, episode, key) except NoKeyFoundException as nkfe: