sagan / ptool

自用的 PT (private tracker) 全自动刷流、辅种、辅助工具
GNU Affero General Public License v3.0
215 stars 24 forks source link

判断是否添加种子的时候,将未完成的部分也计算在硬盘占用里 #42

Open JarmoHu opened 3 months ago

JarmoHu commented 3 months ago

我就写着玩的,不知道是不是这个思路?

sagan commented 3 months ago

感谢pr。

有个问题是 FreeSpaceOnDisk 有可能为 -1,表示剩余空间未知,原因见 #6 。需要特别处理

JarmoHu commented 3 months ago

-1直接保留可以吗?你看看我现在的代码

JarmoHu commented 3 months ago

我简单研究了一下,显示为-1也不知道该怎么解释。 #https://github.com/qbittorrent/qBittorrent/blob/master/src/base/utils/fs.cpp 用到了函数return QStorageInfo(path.data()).bytesAvailable(); QStorageInfo()的参考文档https://doc.qt.io/qt-6/qstorageinfo.html#bytesAvailable 也就是当这个对象不是 isvalid()的时候就返回-1,但是为啥会这样呢?

sagan commented 3 months ago

freespace = freespace - clientStatus.UnfinishedDownloadingSize : 这个结果可能为负值的。原来的代码没有考虑这种情形,后面使用到 freespace 的地方应该都是将 < 0 作为“硬盘剩余空间未知”处理了。需要相应修改这些地方。

刷流那段代码是我当时拍脑袋写的。写出来之后基本上从来没动过。。