Add year support to anime folder names

- Add year property to Serie entity with name_with_year
- Add year column to AnimeSeries database model
- Add get_year() method to AniworldLoader provider
- Extract year from folder names before fetching from API
- Update SerieScanner to populate year during rescan
- Update add_series endpoint to fetch and store year
- Optimize: check folder name for year before API call
This commit is contained in:
2026-01-11 19:47:47 +01:00
parent ccbd9768a2
commit 40ffb99c97
7 changed files with 241 additions and 28 deletions

View File

@@ -73,6 +73,10 @@ class AnimeSeries(Base, TimestampMixin):
String(1000), nullable=False,
doc="Filesystem folder name - METADATA ONLY, not for lookups"
)
year: Mapped[Optional[int]] = mapped_column(
Integer, nullable=True,
doc="Release year of the series"
)
# Relationships
episodes: Mapped[List["Episode"]] = relationship(

View File

@@ -64,6 +64,7 @@ class AnimeSeriesService:
name: str,
site: str,
folder: str,
year: int | None = None,
) -> AnimeSeries:
"""Create a new anime series.
@@ -73,6 +74,7 @@ class AnimeSeriesService:
name: Series name
site: Provider site URL
folder: Local filesystem path
year: Release year (optional)
Returns:
Created AnimeSeries instance
@@ -85,11 +87,12 @@ class AnimeSeriesService:
name=name,
site=site,
folder=folder,
year=year,
)
db.add(series)
await db.flush()
await db.refresh(series)
logger.info(f"Created anime series: {series.name} (key={series.key})")
logger.info(f"Created anime series: {series.name} (key={series.key}, year={year})")
return series
@staticmethod