From ee5d719f377032a373c445628b12ac94480d0deb Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 11 Jun 2026 08:02:27 +0200 Subject: [PATCH] fix(scheduler): add to_dict to AnimeSeries for auto-download AnimeSeries objects returned by SerieList.GetMissingEpisode() lacked to_dict(), causing AttributeError when _run_auto_download() called series.get("episodeDict"). --- src/server/database/models.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/server/database/models.py b/src/server/database/models.py index d8bcc60..228f0c4 100644 --- a/src/server/database/models.py +++ b/src/server/database/models.py @@ -13,7 +13,7 @@ from __future__ import annotations from datetime import datetime, timezone from enum import Enum -from typing import List, Optional +from typing import Any, Dict, List, Optional from sqlalchemy import Boolean, DateTime, ForeignKey, Index, Integer, String, Text, func from sqlalchemy.orm import Mapped, mapped_column, relationship, validates @@ -247,6 +247,21 @@ class AnimeSeries(Base, TimestampMixin): except ValueError: return sanitize_folder_name(self.key) + def to_dict(self) -> Dict[str, Any]: + """Convert to dictionary for cache serialization. + + Returns: + Dictionary with series data including episodeDict for + auto-download functionality. + """ + return { + "key": self.key, + "name": self.name, + "site": self.site, + "folder": self.folder, + "episodeDict": self.episodeDict, + } + class Episode(Base, TimestampMixin): """SQLAlchemy model for anime episodes.