Compare commits

..

2 Commits

Author SHA1 Message Date
76b849fc91 chore: bump version 2026-05-30 12:02:48 +02:00
00b26c8cbc fix: validate generated keys before creating Serie objects
- Add is_valid_key check in SerieScanner._read_data_from_file() to prevent
  passing invalid keys to Serie constructor (caused ValueError)
- Improve error message for key generation failures
- Add warning log before removing duplicate source folders in rename service
2026-05-30 11:42:19 +02:00
4 changed files with 19 additions and 4 deletions

View File

@@ -1 +1 @@
v1.2.1
v1.2.2

View File

@@ -1,6 +1,6 @@
{
"name": "aniworld-web",
"version": "1.2.1",
"version": "1.2.2",
"description": "Aniworld Anime Download Manager - Web Frontend",
"type": "module",
"scripts": {

View File

@@ -24,7 +24,7 @@ from src.config.settings import settings
from src.core.entities.series import Serie
from src.core.exceptions.Exceptions import MatchNotFoundError, NoKeyFoundException
from src.core.providers.base_provider import Loader
from src.core.utils.key_utils import generate_key_from_folder
from src.core.utils.key_utils import generate_key_from_folder, is_valid_key
from src.server.database.connection import get_sync_session
from src.server.database.service import AnimeSeriesService, EpisodeService
@@ -726,6 +726,16 @@ class SerieScanner:
try:
generated_key = generate_key_from_folder(folder_name)
year_from_folder = self._extract_year_from_folder_name(folder_name)
# Validate that the generated key is usable
if not generated_key or not is_valid_key(generated_key):
logger.warning(
"Serie key is invalid for folder '%s' (key='%s') - skipping",
folder_name,
generated_key
)
return None
logger.info(
"Generated key for folder '%s' -> key='%s'",
folder_name,
@@ -741,7 +751,7 @@ class SerieScanner:
)
except Exception as exc:
logger.warning(
"Failed to generate key for folder '%s': %s",
"Unexpected error generating key for folder '%s': %s",
folder_name,
exc
)

View File

@@ -602,6 +602,11 @@ async def validate_and_rename_series_folders(dry_run: bool = False) -> Dict[str,
try:
import shutil
logger.warning(
"Removing source duplicate folder '%s' — target '%s' already exists",
current_name,
expected_name,
)
shutil.rmtree(series_dir)
logger.info(
"Removed source folder '%s' — series already exists at target",