mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-04 23:17:20 +08:00
fix(dashboard): 修复首页存储空间显示为 0
仪表板 _build_storage 原先仅按 library_storage 选取存储,用户只配置 本地下载目录而未填媒体库存储时存储集合为空,直接返回 0;而设置页经 LocalStorage.usage 同时统计下载目录与媒体库目录,故显示正常。 改为汇总下载目录的 storage 与媒体库目录的 library_storage,与 usage 口径对齐。存储名用 set 去重,同一存储只查询一次;磁盘层面 space_usage 已按 st_dev / Btrfs FSID 去重,相同磁盘的不同目录不会重复累加。 closes #6268
This commit is contained in:
@@ -64,7 +64,13 @@ def _build_storage() -> schemas.Storage:
|
||||
dirs = DirectoryHelper().get_dirs()
|
||||
if not dirs:
|
||||
return schemas.Storage(total_storage=total, used_storage=total - available)
|
||||
storages = set([d.library_storage for d in dirs if d.library_storage])
|
||||
# 下载目录按 storage、媒体库目录按 library_storage 汇总存储集合,
|
||||
# 用 set 去重存储名,避免同一存储被重复统计;
|
||||
# 各存储的 usage 内部已按磁盘(st_dev / Btrfs FSID)去重,相同磁盘的不同目录不会重复累加。
|
||||
storages = set(
|
||||
[d.storage for d in dirs if d.download_path and d.storage]
|
||||
+ [d.library_storage for d in dirs if d.library_path and d.library_storage]
|
||||
)
|
||||
for _storage in storages:
|
||||
_result = StorageChain().manage_storage(storage=_storage, action=StorageAction.USAGE.value)
|
||||
_usage = _result.get("data") if _result.get("success") else None
|
||||
|
||||
Reference in New Issue
Block a user