chore: apply pending code updates

This commit is contained in:
2026-03-17 11:39:27 +01:00
parent e5fae0a0a2
commit 92bd55ada1
45 changed files with 2236 additions and 2130 deletions

View File

@@ -121,11 +121,11 @@ class SerieList:
def load_series(self) -> None:
"""Populate the in-memory map with metadata discovered on disk."""
logging.info("Scanning anime folders in %s", self.directory)
logger.info("Scanning anime folders in %s", self.directory)
try:
entries: Iterable[str] = os.listdir(self.directory)
except OSError as error:
logging.error(
logger.error(
"Unable to scan directory %s: %s",
self.directory,
error,
@@ -145,7 +145,7 @@ class SerieList:
for anime_folder in entries:
anime_path = os.path.join(self.directory, anime_folder, "data")
if os.path.isfile(anime_path):
logging.debug("Found data file for folder %s", anime_folder)
logger.debug("Found data file for folder %s", anime_folder)
serie = self._load_data(anime_folder, anime_path)
if serie:
@@ -159,7 +159,7 @@ class SerieList:
nfo_stats["with_nfo"] += 1
else:
nfo_stats["without_nfo"] += 1
logging.debug(
logger.debug(
"Series '%s' (key: %s) is missing tvshow.nfo",
serie.name,
serie.key
@@ -173,7 +173,7 @@ class SerieList:
media_stats["with_poster"] += 1
else:
media_stats["without_poster"] += 1
logging.debug(
logger.debug(
"Series '%s' (key: %s) is missing poster.jpg",
serie.name,
serie.key
@@ -184,7 +184,7 @@ class SerieList:
media_stats["with_logo"] += 1
else:
media_stats["without_logo"] += 1
logging.debug(
logger.debug(
"Series '%s' (key: %s) is missing logo.png",
serie.name,
serie.key
@@ -195,7 +195,7 @@ class SerieList:
media_stats["with_fanart"] += 1
else:
media_stats["without_fanart"] += 1
logging.debug(
logger.debug(
"Series '%s' (key: %s) is missing fanart.jpg",
serie.name,
serie.key
@@ -203,20 +203,20 @@ class SerieList:
continue
logging.warning(
logger.warning(
"Skipping folder %s because no metadata file was found",
anime_folder,
)
# Log summary statistics
if nfo_stats["total"] > 0:
logging.info(
logger.info(
"NFO scan complete: %d series total, %d with NFO, %d without NFO",
nfo_stats["total"],
nfo_stats["with_nfo"],
nfo_stats["without_nfo"]
)
logging.info(
logger.info(
"Media scan complete: Poster (%d/%d), Logo (%d/%d), Fanart (%d/%d)",
media_stats["with_poster"],
nfo_stats["total"],
@@ -241,14 +241,14 @@ class SerieList:
serie = Serie.load_from_file(data_path)
# Store by key, not folder
self.keyDict[serie.key] = serie
logging.debug(
logger.debug(
"Successfully loaded metadata for %s (key: %s)",
anime_folder,
serie.key
)
return serie
except (OSError, JSONDecodeError, KeyError, ValueError) as error:
logging.error(
logger.error(
"Failed to load metadata for folder %s from %s: %s",
anime_folder,
data_path,

View File

@@ -64,6 +64,16 @@ class Serie:
f"episodeDict={self.episodeDict}{year_str})"
)
def __repr__(self):
"""Concise developer representation of Serie object."""
season_count = len(self.episodeDict)
episode_count = sum(len(eps) for eps in self.episodeDict.values())
year_str = f", year={self.year}" if self.year else ""
return (
f"Serie(key={self.key!r}, name={self.name!r}"
f"{year_str}, seasons={season_count}, episodes={episode_count})"
)
@property
def key(self) -> str:
"""