feat: adapt to Pydantic V2

This commit is contained in:
Attente
2025-11-01 17:56:37 +08:00
parent fcd0908032
commit c7f098771b
10 changed files with 12 additions and 13 deletions
+2 -2
View File
@@ -14,7 +14,7 @@ from app.db.models import User
from app.db.models.downloadhistory import DownloadHistory from app.db.models.downloadhistory import DownloadHistory
from app.db.models.transferhistory import TransferHistory from app.db.models.transferhistory import TransferHistory
from app.db.user_oper import get_current_active_superuser_async, get_current_active_superuser from app.db.user_oper import get_current_active_superuser_async, get_current_active_superuser
from app.schemas.types import EventType, MediaType from app.schemas.types import EventType
router = APIRouter() router = APIRouter()
@@ -70,7 +70,7 @@ async def transfer_history(title: Optional[str] = None,
return schemas.Response(success=True, return schemas.Response(success=True,
data={ data={
"list": result, "list": [item.to_dict() for item in result],
"total": total, "total": total,
}) })
+1 -1
View File
@@ -621,7 +621,7 @@ class Settings(BaseSettings, ConfigModel, LogConfigModel):
return False, f"配置项 '{key}' 不存在" return False, f"配置项 '{key}' 不存在"
try: try:
field = self.__fields__[key] field = Settings.model_fields[key]
original_value = getattr(self, key) original_value = getattr(self, key)
if field.name == "API_TOKEN": if field.name == "API_TOKEN":
converted_value, needs_update = self.validate_api_token(value, original_value) converted_value, needs_update = self.validate_api_token(value, original_value)
+1 -1
View File
@@ -257,7 +257,7 @@ class MediaInfo:
# 评价数量 # 评价数量
vote_count: int = None vote_count: int = None
# 流行度 # 流行度
popularity: int = None popularity: float = None
# 时长 # 时长
runtime: int = None runtime: int = None
# 下一集 # 下一集
-1
View File
@@ -367,7 +367,6 @@ class TemplateHelper(metaclass=SingletonClass):
return rendered return rendered
return None return None
except Exception as e: except Exception as e:
logger.error(f"模板处理失败: {str(e)}")
raise ValueError(f"模板处理失败: {str(e)}") from e raise ValueError(f"模板处理失败: {str(e)}") from e
@staticmethod @staticmethod
+1 -1
View File
@@ -640,7 +640,7 @@ class Emby:
item_type=item.get("Type"), item_type=item.get("Type"),
title=item.get("Name"), title=item.get("Name"),
original_title=item.get("OriginalTitle"), original_title=item.get("OriginalTitle"),
year=item.get("ProductionYear"), year=str(item.get("ProductionYear")),
tmdbid=int(tmdbid) if tmdbid else None, tmdbid=int(tmdbid) if tmdbid else None,
imdbid=item.get("ProviderIds", {}).get("Imdb"), imdbid=item.get("ProviderIds", {}).get("Imdb"),
tvdbid=item.get("ProviderIds", {}).get("Tvdb"), tvdbid=item.get("ProviderIds", {}).get("Tvdb"),
+1 -1
View File
@@ -732,7 +732,7 @@ class Jellyfin:
item_type=item.get("Type"), item_type=item.get("Type"),
title=item.get("Name"), title=item.get("Name"),
original_title=item.get("OriginalTitle"), original_title=item.get("OriginalTitle"),
year=item.get("ProductionYear"), year=str(item.get("ProductionYear")),
tmdbid=int(tmdbid) if tmdbid else None, tmdbid=int(tmdbid) if tmdbid else None,
imdbid=item.get("ProviderIds", {}).get("Imdb"), imdbid=item.get("ProviderIds", {}).get("Imdb"),
tvdbid=item.get("ProviderIds", {}).get("Tvdb"), tvdbid=item.get("ProviderIds", {}).get("Tvdb"),
+2 -2
View File
@@ -437,7 +437,7 @@ class Plex:
@staticmethod @staticmethod
def __get_ids(guids: List[Any]) -> dict: def __get_ids(guids: List[Any]) -> dict:
def parse_tmdb_id(value: str) -> (bool, int): def parse_tmdb_id(value: str) -> tuple[bool, int]:
"""尝试将TMDB ID字符串转换为整数。如果成功,返回(True, int),失败则返回(False, None)。""" """尝试将TMDB ID字符串转换为整数。如果成功,返回(True, int),失败则返回(False, None)。"""
try: try:
int_value = int(value) int_value = int(value)
@@ -509,7 +509,7 @@ class Plex:
item_type=item.type, item_type=item.type,
title=item.title, title=item.title,
original_title=item.originalTitle, original_title=item.originalTitle,
year=item.year, year=str(item.year),
tmdbid=ids.get("tmdb_id"), tmdbid=ids.get("tmdb_id"),
imdbid=ids.get("imdb_id"), imdbid=ids.get("imdb_id"),
tvdbid=ids.get("tvdb_id"), tvdbid=ids.get("tvdb_id"),
+1 -1
View File
@@ -437,7 +437,7 @@ class TrimeMedia:
item_type=item_type, item_type=item_type,
title=item.title, title=item.title,
original_title=item.original_title, original_title=item.original_title,
year=year, year=str(year),
tmdbid=item.tmdb_id, tmdbid=item.tmdb_id,
imdbid=item.imdb_id, imdbid=item.imdb_id,
user_state=user_state, user_state=user_state,
+2 -2
View File
@@ -86,7 +86,7 @@ class MediaInfo(BaseModel):
# IMDB ID # IMDB ID
imdb_id: Optional[str] = None imdb_id: Optional[str] = None
# TVDB ID # TVDB ID
tvdb_id: Optional[str] = None tvdb_id: Optional[int] = None
# 豆瓣ID # 豆瓣ID
douban_id: Optional[str] = None douban_id: Optional[str] = None
# Bangumi ID # Bangumi ID
@@ -167,7 +167,7 @@ class MediaInfo(BaseModel):
# 评价数量 # 评价数量
vote_count: Optional[int] = 0 vote_count: Optional[int] = 0
# 流行度 # 流行度
popularity: Optional[int] = 0 popularity: Optional[float] = 0.0
# 时长 # 时长
runtime: Optional[int] = None runtime: Optional[int] = None
# 下一集 # 下一集
+1 -1
View File
@@ -24,7 +24,7 @@ class Subscribe(BaseModel):
# 背景图 # 背景图
backdrop: Optional[str] = None backdrop: Optional[str] = None
# 评分 # 评分
vote: Optional[int] = 0 vote: Optional[float] = 0
# 描述 # 描述
description: Optional[str] = None description: Optional[str] = None
# 过滤规则 # 过滤规则