mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-08 17:08:35 +08:00
fix(api): keep src/dest fileitem fields in transfer history response
TransferHistory schema omitted src_fileitem, dest_fileitem and files which are emitted by to_dict, so the response_model filter stripped the file size the frontend reads from src_fileitem.size.
This commit is contained in:
@@ -73,6 +73,10 @@ class TransferHistory(OptionalMediaIdentityMixin, BaseModel):
|
|||||||
src_storage: Optional[str] = None
|
src_storage: Optional[str] = None
|
||||||
# 目标存储类型
|
# 目标存储类型
|
||||||
dest_storage: Optional[str] = None
|
dest_storage: Optional[str] = None
|
||||||
|
# 源文件项(含文件大小等运行时字段,与 to_dict 直出保持一致)
|
||||||
|
src_fileitem: Optional[JsonData] = None
|
||||||
|
# 目标文件项
|
||||||
|
dest_fileitem: Optional[JsonData] = None
|
||||||
# 源目录
|
# 源目录
|
||||||
src: Optional[str] = None
|
src: Optional[str] = None
|
||||||
# 目的目录
|
# 目的目录
|
||||||
@@ -121,6 +125,8 @@ class TransferHistory(OptionalMediaIdentityMixin, BaseModel):
|
|||||||
errmsg: Optional[str] = None
|
errmsg: Optional[str] = None
|
||||||
# 日期
|
# 日期
|
||||||
date: Optional[str] = None
|
date: Optional[str] = None
|
||||||
|
# 文件清单
|
||||||
|
files: Optional[JsonData] = None
|
||||||
|
|
||||||
model_config = ConfigDict(from_attributes=True)
|
model_config = ConfigDict(from_attributes=True)
|
||||||
|
|
||||||
|
|||||||
@@ -50,9 +50,15 @@ def test_stable_collections_serialize_without_changing_payload_shape():
|
|||||||
dest_storage="alist",
|
dest_storage="alist",
|
||||||
src="/downloads/demo.mkv",
|
src="/downloads/demo.mkv",
|
||||||
dest="/media/demo.mkv",
|
dest="/media/demo.mkv",
|
||||||
|
src_fileitem={"path": "/downloads/demo.mkv", "size": 1024},
|
||||||
|
dest_fileitem={"path": "/media/demo.mkv", "size": 1024},
|
||||||
|
files=[{"path": "/downloads/demo.mkv"}],
|
||||||
).model_dump()
|
).model_dump()
|
||||||
assert history["src_storage"] == "local"
|
assert history["src_storage"] == "local"
|
||||||
assert history["dest_storage"] == "alist"
|
assert history["dest_storage"] == "alist"
|
||||||
|
assert history["src_fileitem"]["size"] == 1024
|
||||||
|
assert history["dest_fileitem"]["size"] == 1024
|
||||||
|
assert history["files"][0]["path"] == "/downloads/demo.mkv"
|
||||||
assert episode.model_dump()["crew"][0]["job"] == "Writer"
|
assert episode.model_dump()["crew"][0]["job"] == "Writer"
|
||||||
assert episode.model_dump()["guest_stars"][0]["character"] == "Guest"
|
assert episode.model_dump()["guest_stars"][0]["character"] == "Guest"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user