chore: better logging

This commit is contained in:
Lukas Pupka-Lipinski 2025-05-18 12:15:35 +02:00
parent 32cffc3079
commit c250e679f8

28
main.py
View File

@ -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: