autoremove-torrents icon indicating copy to clipboard operation
autoremove-torrents copied to clipboard

希望增加“磁盘剩余空间”小于某个值时,删除“最后活动”最大值的条件。

Open sununs opened this issue 5 years ago • 15 comments

希望增加“磁盘剩余空间”小于某个值时,删除“最后活动”最大值的条件。 qb中两个数值都有。感觉这一个条件就够用了呢。

sununs avatar Sep 17 '19 14:09 sununs

每天来看一次,期待作者更新~

sununs avatar Oct 08 '19 02:10 sununs

感谢大佬更新,remove-inactive-seeds部分测试2天,工作正常

sununs avatar Jan 11 '20 02:01 sununs

感谢测试 😄 有问题请随时告知

如果没问题,很快我就会把这个功能合并到主分支中

jerrymakesjelly avatar Jan 11 '20 06:01 jerrymakesjelly

感谢测试 😄 有问题请随时告知

如果没问题,很快我就会把这个功能合并到主分支中

大佬,整理一下我的问题 ①1.4.9包含last_activity吗?我使用直接报错了。 ②remove-inactive-seeds是尽量删除时间最长的”最后活动“种子吗,我测试感觉好像是删除随机的非活动种子?

附上我的config: 微信截图_20200131062527

sununs avatar Jan 30 '20 22:01 sununs

@sununs 感谢您的支持和细心测试

①1.4.9包含last_activity吗?我使用直接报错了。

不包含,1.4.9只添加了剩余空间的这一个功能,这个分支由于涉及到架构的一点点变动所以还没合并

②remove-inactive-seeds是尽量删除时间最长的”最后活动“种子吗,我测试感觉好像是删除随机的非活动种子?

在删除的过程中,程序会按活动时间对种子进行排序,不过由于所用的删除策略的不同,AMT并不总是按照活动顺序去删除种子的

对于maximum_number,它直接取最不活跃的几个种子,这个就完全按照顺序去取了 https://github.com/jerrymakesjelly/autoremove-torrents/blob/06603788b9b7a6d9becd19cfaad47d23e4741a1a/autoremovetorrents/condition/torrentnumber.py#L11-L17

但对于seed_size,它在删除的时候还会考虑种子的大小,具体做法是先按活跃时间从近到远排列,然后依次挑选种子,当满足 这个种子的体积+已挑选种子的体积 < 设置的大小 这个条件时,这个种子才会被挑选并保留(因为留下来的话就超过限制了);否则它就会被删除,即使它确实比后面的种子更活跃一些 https://github.com/jerrymakesjelly/autoremove-torrents/blob/06603788b9b7a6d9becd19cfaad47d23e4741a1a/autoremovetorrents/condition/torrentsize.py#L15-L20

对于后面要在 free_space 中添加的 remove-active-seedsremove-inactive-seeds 也是如此 这也是为什么在描述中会写尽量删除活跃/不活跃种子的原因

jerrymakesjelly avatar Jan 31 '20 05:01 jerrymakesjelly

@jerrymakesjelly 感谢大佬百忙中的回复。 假如种子按活跃时间从近到远排列分别为2G,3G,1G,如果seed_size设置4G 我以为:保留2G种子,删除3G和1G的种子。 大佬的意思是:保留2G和1G的种子,删除3G的种子?

sununs avatar Jan 31 '20 06:01 sununs

大佬的意思是:保留2G和1G的种子,删除3G的种子?

@sununs 对的,就是这个意思 🐶 毕竟留下1G的种子也没有超出限制 其实是一个贪心算法

jerrymakesjelly avatar Jan 31 '20 07:01 jerrymakesjelly

大佬的意思是:保留2G和1G的种子,删除3G的种子?

@sununs 对的,就是这个意思 🐶 毕竟留下1G的种子也没有超出限制 其实是一个贪心算法 @jerrymakesjelly 这个算法优点很明显,每次处理后都更贴近设置的大小。 我测试中发现有个小小的问题,就是大量活跃时间很远的小种子,多次处理后仍会保留下来。

sununs avatar Jan 31 '20 07:01 sununs

@jerrymakesjelly 大佬,我把种子按照“最后活动”做了一个递减排序:1#种子为4天21小时前;306#种子为1分钟前。使用“remove-inactive-seeds”动作,我理解为应该尽量删除排序靠前的种子。实际测试为: 第一次删除为 43#,298# 第二此删除为 126#,132#,218#,227#,279# 第三次删除为 39#,217#,257#,275# 回头大佬给看看,谢谢了!

sununs avatar Feb 07 '20 11:02 sununs

@sunsuns 感谢你的细心测试,请问你用的是哪个条件呢?maximum_numberseed_size还是free_space?另外BT客户端的版本可不可以也提供一下

我在issue42分支中构建了一个非贪婪删除的版本,在这个版本里面的种子应该就是严格按照顺序删除的,如果可以的话你可以测试一下,不过需要手动安装:

git clone https://github.com/jerrymakesjelly/autoremove-torrents
git checkout issue42
python3 setup.py install

卸载的时候仍然可以使用pip卸载

jerrymakesjelly avatar Feb 10 '20 15:02 jerrymakesjelly

@jerrymakesjelly 已测试issue42分支完全正常,测试环境: qbittorrent4.2.1,free_space,remove-inactive-seeds,大佬辛苦了!

sununs avatar Feb 10 '20 20:02 sununs

@sununs 感谢测试,下一个版本我会添加一个是否启用贪婪模式的开关,满足用户的更多样化的需求

jerrymakesjelly avatar Feb 12 '20 15:02 jerrymakesjelly

这个主意不错,等新版本。:)

sununs avatar Feb 14 '20 01:02 sununs

remove-inactive-seeds 可以判断超过多少天前的种子吗。HR不够的也不活动的种子经常被删掉。 比如 remove-inactive-seeds 只删除做种超过5天并且不活动的种子。

ceozero avatar Mar 07 '20 07:03 ceozero

remove-inactive-seeds 可以判断超过多少天前的种子吗。HR不够的也不活动的种子经常被删掉。 比如 remove-inactive-seeds 只删除做种超过5天并且不活动的种子。

这个功能需要一个 if 表达式的机制,这个功能在未来会添加

jerrymakesjelly avatar Mar 07 '20 16:03 jerrymakesjelly