Merge pull request #5089 from wikrin/fix

This commit is contained in:
jxxghp
2025-11-01 18:27:35 +08:00
committed by GitHub
11 changed files with 17 additions and 17 deletions

View File

@@ -14,7 +14,7 @@ from app.db.models import User
from app.db.models.downloadhistory import DownloadHistory
from app.db.models.transferhistory import TransferHistory
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()
@@ -70,7 +70,7 @@ async def transfer_history(title: Optional[str] = None,
return schemas.Response(success=True,
data={
"list": result,
"list": [item.to_dict() for item in result],
"total": total,
})

View File

@@ -1116,6 +1116,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
file_meta=file_meta)
if begin_ep is not None:
file_meta.begin_episode = begin_ep
if part is not None:
file_meta.part = part
if end_ep is not None:
file_meta.end_episode = end_ep
@@ -1125,10 +1126,10 @@ class TransferChain(ChainBase, metaclass=Singleton):
downloadhis = DownloadHistoryOper()
if bluray_dir:
# 蓝光原盘,按目录名查询
download_history = downloadhis.get_by_path(str(file_path))
download_history = downloadhis.get_by_path(file_path.as_posix())
else:
# 按文件全路径查询
download_file = downloadhis.get_file_by_fullpath(str(file_path))
download_file = downloadhis.get_file_by_fullpath(file_path.as_posix())
if download_file:
download_history = downloadhis.get_by_hash(download_file.download_hash)
@@ -1441,7 +1442,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
for keyword in exclude_words:
if keyword and re.search(r"%s" % keyword, file_path, re.IGNORECASE):
logger.debug(f"{file_path} 命中屏蔽词 {keyword}")
logger.warn(f"{file_path} 命中屏蔽词 {keyword}")
return True
return False
@@ -1477,7 +1478,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
file_path = save_path / file.name
# 如果存在未被屏蔽的媒体文件,则不删除种子
if (file_path.suffix in self.all_exts
and not self._is_blocked_by_exclude_words(str(file_path), transfer_exclude_words)
and not self._is_blocked_by_exclude_words(file_path.as_posix(), transfer_exclude_words)
and file_path.exists()):
return False

View File

@@ -621,7 +621,7 @@ class Settings(BaseSettings, ConfigModel, LogConfigModel):
return False, f"配置项 '{key}' 不存在"
try:
field = self.__fields__[key]
field = Settings.model_fields[key]
original_value = getattr(self, key)
if field.name == "API_TOKEN":
converted_value, needs_update = self.validate_api_token(value, original_value)

View File

@@ -257,7 +257,7 @@ class MediaInfo:
# 评价数量
vote_count: int = None
# 流行度
popularity: int = None
popularity: float = None
# 时长
runtime: int = None
# 下一集

View File

@@ -367,7 +367,6 @@ class TemplateHelper(metaclass=SingletonClass):
return rendered
return None
except Exception as e:
logger.error(f"模板处理失败: {str(e)}")
raise ValueError(f"模板处理失败: {str(e)}") from e
@staticmethod

View File

@@ -640,7 +640,7 @@ class Emby:
item_type=item.get("Type"),
title=item.get("Name"),
original_title=item.get("OriginalTitle"),
year=item.get("ProductionYear"),
year=str(item.get("ProductionYear")),
tmdbid=int(tmdbid) if tmdbid else None,
imdbid=item.get("ProviderIds", {}).get("Imdb"),
tvdbid=item.get("ProviderIds", {}).get("Tvdb"),

View File

@@ -732,7 +732,7 @@ class Jellyfin:
item_type=item.get("Type"),
title=item.get("Name"),
original_title=item.get("OriginalTitle"),
year=item.get("ProductionYear"),
year=str(item.get("ProductionYear")),
tmdbid=int(tmdbid) if tmdbid else None,
imdbid=item.get("ProviderIds", {}).get("Imdb"),
tvdbid=item.get("ProviderIds", {}).get("Tvdb"),

View File

@@ -437,7 +437,7 @@ class Plex:
@staticmethod
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)。"""
try:
int_value = int(value)
@@ -509,7 +509,7 @@ class Plex:
item_type=item.type,
title=item.title,
original_title=item.originalTitle,
year=item.year,
year=str(item.year),
tmdbid=ids.get("tmdb_id"),
imdbid=ids.get("imdb_id"),
tvdbid=ids.get("tvdb_id"),

View File

@@ -437,7 +437,7 @@ class TrimeMedia:
item_type=item_type,
title=item.title,
original_title=item.original_title,
year=year,
year=str(year),
tmdbid=item.tmdb_id,
imdbid=item.imdb_id,
user_state=user_state,

View File

@@ -86,7 +86,7 @@ class MediaInfo(BaseModel):
# IMDB ID
imdb_id: Optional[str] = None
# TVDB ID
tvdb_id: Optional[str] = None
tvdb_id: Optional[int] = None
# 豆瓣ID
douban_id: Optional[str] = None
# Bangumi ID
@@ -167,7 +167,7 @@ class MediaInfo(BaseModel):
# 评价数量
vote_count: Optional[int] = 0
# 流行度
popularity: Optional[int] = 0
popularity: Optional[float] = 0.0
# 时长
runtime: Optional[int] = None
# 下一集

View File

@@ -24,7 +24,7 @@ class Subscribe(BaseModel):
# 背景图
backdrop: Optional[str] = None
# 评分
vote: Optional[int] = 0
vote: Optional[float] = 0
# 描述
description: Optional[str] = None
# 过滤规则