Skip to content

Commit 8fea9cb

Browse files
committed
fix(qbittorrent): 规范下载任务年份类型
1 parent aac184a commit 8fea9cb

2 files changed

Lines changed: 38 additions & 1 deletion

File tree

app/modules/qbittorrent/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ def __build_torrent(downloader_name: str, torrent_data: dict) -> DownloaderTorre
273273
downloader=downloader_name,
274274
title=torrent_data.get('name'),
275275
name=meta.name,
276-
year=meta.year,
276+
year=str(meta.year) if meta.year is not None else None,
277277
season_episode=meta.season_episode,
278278
path=Path(self.normalize_return_path(torrent_path, downloader_name)),
279279
save_path=self.normalize_return_path(

tests/test_qbittorrent_compat.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,43 @@ def test_completed_status_includes_qbittorrent_finished_upload_states():
417417
server.get_torrents.assert_called_once_with(tags="moviepilot-tag")
418418

419419

420+
def test_list_torrents_normalizes_parsed_year_to_string(monkeypatch):
421+
"""种子名称解析出的整数年份应按下载任务契约转换为字符串。"""
422+
server = MagicMock()
423+
server.get_torrents.return_value = (
424+
[
425+
{
426+
"name": "Movie.Name.2026.1080p",
427+
"content_path": "/downloads/Movie.Name.2026.1080p",
428+
"hash": "hash-with-year",
429+
"total_size": 1024,
430+
"completed": 1024,
431+
"progress": 1,
432+
"state": "stalledUP",
433+
"dlspeed": 0,
434+
"upspeed": 0,
435+
}
436+
],
437+
False,
438+
)
439+
monkeypatch.setattr(
440+
qbittorrent_package_module,
441+
"MetaInfo",
442+
lambda _name: types.SimpleNamespace(
443+
name="Movie Name",
444+
year=2026,
445+
season_episode="",
446+
),
447+
)
448+
module = QbittorrentModule.__new__(QbittorrentModule)
449+
module.get_instances = MagicMock(return_value={"qb": server})
450+
module.normalize_return_path = MagicMock(side_effect=lambda path, _name: str(path))
451+
452+
torrents = module.list_torrents(include_all_tags=True)
453+
454+
assert torrents[0].year == "2026"
455+
456+
420457
def test_get_completed_torrents_includes_finished_stopped_tasks():
421458
"""
422459
已完成但不再做种的 qBittorrent 任务仍应进入待整理列表。

0 commit comments

Comments
 (0)