import sys import os import traceback import re import logging from concurrent.futures import ThreadPoolExecutor from collections import defaultdict from aniworld.models import Anime, Episode 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 - %(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") error_handler.setLevel(logging.ERROR) error_logger.addHandler(error_handler) noKeyFound_logger = logging.getLogger("NoKeyFound") 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 class MatchNotFoundError(Exception): """Exception raised when an anime key cannot be found.""" pass class ConsoleLoader: def __init__(self, basePath: str): self.directory = basePath logging.info(f"Initialized Loader with base path: {self.directory}") # Read the base directory from an environment variable directory_to_search = os.getenv("ANIME_DIRECTORY", "\\\\sshfs.r\\ubuntu@192.168.178.43\\media\\serien\\Serien") loader = Loader(directory_to_search) loader.LoadMissing()