我需要的是这样的功能,启用白名单,仅允许添加的客户端连接
然后黑名单也要同时起效果,用于屏蔽特定的peerid与客户端指定版本,和15000端口号之类
总之能和2.14及以前的版本效果一样就行了,唯一需要多加的就是可以编辑截图上"客户端列表"那个白名单,黑名单优先级最高,在白名单的客户端也会被黑名单强制覆盖,优先起效黑名单的结果
假设qbittorrent在白名单中,此时在黑名单屏蔽qbittorrent/4.6.4,可以屏蔽到特定的版本,其它版本会允许通过
端口号之类同理,,总之2.14版本是可以实现的,只是不能编辑那个"客户端列表"白名单罢了
需要
需要
JSON格式更好
对做成列表的形式 就像防火墙规则那样 有允许也有阻止 从上到下匹配
在最后会有一个不可删除但是可以编辑的兜底规则 来处理不在列表内的其他客户端是拦截还是放行
这样只需要一个列表框 就能显示了
可以参考一下Proxifier的规则列表
我想白名单的功能将由 客户端滤器 完全由过负责
通过修改最后的兜底规则就可以实现白名单
客户端列表的过滤功能应被剥离
之后将只负责 客户端名称和peeID之间的映射
可以合并这两者功能,只要能够正常实现功能
不过对普通用户可能会有点复杂,我觉得在确定按钮的左侧加个新按钮,点击后呼出个新窗口来自定义编辑客户端白名单反而更好,用户和种子市场黑名单一样的用法,每行一个文本写进去
取消勾选 other clients,就是成功白名单功能了, 最简单化
有办法解决 在规则列表里面像 过去客户端列表那样预设一些常用客户端在上面
处理方法为允许 想要实现白名单就需要把最下面的兜底规则改成阻止就行了
操作逻辑和之前的 客户端列表 完全一样
关于列表的设想
第一竖列为编号 标记规则的优先级 数字越小越优先
第二竖列为规则的类型 如 客户端名称 peerID 端口
第三竖列为规则的值
第四竖列为处理方法 即允许还是阻止
第五竖列为 注释或说明 如果方便实现的话可以做一下
为了方便识别规则是阻止还是允许可以再加一个图标列
就像Windows防火墙那样
列表的下面应该布置两个按钮 分别用于添加和删除规则
而列表的右侧应该布置带有上下箭头的按钮 用来给规则排序
关于兜底规则
其应该总是在列表的最底部 所以不会有编号
值应显示 "All other clients"即其他客户端
类型的留空或者显示为 任何 在编辑时只能编辑处理方法这这一项
关于添加规则
添加规则按钮按下后会弹出一个 新的窗口
其由两个下拉列表框和一个文本框组成 横向排列
第一个下拉列表框用于选择规则类型
文本框用于填写规则值
第二个下拉列表框用于选择处理方法
检查了一下代码,是因为“客户端列表”按钮移到新的页面了,遗漏了传递设置值到内核模块的代码。你可以修改“客户端列表”后,回到“BT下载”页面随便改一个设置,再应用,就应该生效了。或者重启一下程序也行。下一版已修复
想了一下,还是把“客户端列表”和“客户端过滤器规则列表”分开比较好,前者适合普通用户使用,操作方便;后者适合高级用户,规则灵活。
客户端列表稍微强化一下:
那 客户端列表还是放回到之前的位置?
这个匹配是按照客户端名称来的?和过滤器相比哪个更优先呢?
感觉可以改成左右布局 这样在复选框里面加入文本框看起来有点奇怪
和以前一样,高级设置里面的黑名单规则优先级最高,客户端列表实现白名单后,依旧会被高级设置的bittorrent.anti_leech_banned_ports、bittorrent.anti_leech_banned_peer_ids、bittorrent.anti_leech_banned_client_names拉黑就是ok的
这样也好 对原有的客户端列表改动较小
至于peeID和客户端名称的映射功能之后再说吧
可以用配置文件控制而不在GUI中提供选项
客户端列表改成这样了:
过滤器规则列表改成这样了:
客户端列表增加自定义名称输入框后了,规则完备了。过滤器规则列表有最下面的兜底规则,也完备了。这两者可以各自独立工作。先应用客户端列表筛选一遍,再应用过滤器规则列表筛选一遍。
1個讚
也许可以把客户端列表放回原来的地方?和过滤器放在一起似乎有点重复了
把按钮放回BT下载页面吗?但其实也是客户端过滤的功能,一个是简单地基于名称,一个是基于自定义规则
主要是这个两个功能有点重复
放在一起可能让人不知道用哪个
或者写点提示做一下区分就行了
比如给下面的客户端过滤加上高级两个字
变成高级客户端过滤
再像代理服务器那样放个气泡提示
客户端列表和过滤器各一个 简要说明一下
问一下,为什么【正在准备长效做种】的进度条跑得这么慢(1千个种子,共15万个文件,加载了20分钟),而后台性能却没啥占用,感觉加载速度可以提高一下,毕竟不存在性能瓶颈。
因为目前的做法是在程序启动时要对已下载的文件都要扫描一遍,检查文件是否还存在,以便提供真实有效的长效做种信息。为了避免磁盘访问造成的显著影响,扫描是有间隔的,任务及文件数量很大的话时间就会很长。
考虑过的改进方案:
1、取消扫描间隔,在工作线程里疯狂访问磁盘。机械硬盘的用户体验会很不好。
2、和种子市场类似,使用sqlite数据库文件保存已下载文件索引,作为长效做种信息。但是对于已下载文件被删除或移走的情况,只能在被其他用户请求下载的时候才能检测出来,会造成一些无效的下载请求。
方案2还有个额外的好处,方便对所有任务里的所有文件名称进行搜索(目前只能对所有任务名称进行搜索)