Remove Shikimori API, use AnimeThemes only, switch to WebM format

- Remove ShikimoriService, use AnimeThemes API for search
- Replace shikimori_id with animethemes_slug as primary identifier
- Remove FFmpeg MP3 conversion, download WebM directly
- Add .webm support in storage and upload endpoints
- Update frontend to use animethemes_slug

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-12 11:22:46 +03:00
parent 333de65fbd
commit cc11f0b773
12 changed files with 138 additions and 263 deletions

View File

@@ -5,14 +5,12 @@ from pydantic import BaseModel, Field
from .db_models import ThemeType, DownloadStatus
# ============== Shikimori Search ==============
# ============== AnimeThemes Search ==============
class AnimeSearchResult(BaseModel):
"""Single anime search result from Shikimori."""
shikimori_id: int
title_russian: Optional[str] = None
"""Single anime search result from AnimeThemes."""
animethemes_slug: str
title_english: Optional[str] = None
title_japanese: Optional[str] = None
year: Optional[int] = None
poster_url: Optional[str] = None
@@ -48,10 +46,8 @@ class ThemeInfo(BaseModel):
class AnimeDetailResponse(BaseModel):
"""Detailed anime info with themes."""
id: int
shikimori_id: int
title_russian: Optional[str] = None
animethemes_slug: str
title_english: Optional[str] = None
title_japanese: Optional[str] = None
year: Optional[int] = None
poster_url: Optional[str] = None
themes: List[ThemeInfo]