faceair / clash-speedtest

clash speedtest
MIT License
503 stars 47 forks source link

feat: 支持自定义资源为普通页面 #15

Closed sxueck closed 1 year ago

sxueck commented 1 year ago

本次的提交内容

  1. 根据 Content-Type 识别是否为 Block 对象,实现普通对象和测速对象区分
  2. 修复了 -timeout 参数无效的 bug
  3. 小幅度修改了 README,由于最近修改比较多,重新修订了使用案例

关于代码实现

  1. 使用了闭包缓存了探测对象的类型结果,由于幅度比较大,不知道会不会引入未知的 bug,但是可以最大程度减少重复时间和网络调用,我自测了几遍暂时没有问题,由于周末零零散散写的,建议作者帮忙 review 一下
  2. 普通资源对象测速直接复用了 Clash 的 URLTest 方法,这里采用了平均值
  3. 区分资源类型还是以 Headers 做实现的,目前在找还有没有更适合高效的方法
faceair commented 1 year ago

timeout 参数无效是为什么?

sxueck commented 1 year ago

原本的 timeout 获取为 timeoutConfig = flag.Duration("timeout", time.Second*5, "timeout for testing proxies") 当使用 -t 5 传入的时候,实际上代码是无法正常解析的,我这边改成了 flag.Int

faceair commented 1 year ago

duration 参数的正确传递方法应该是 5s 这种格式。

这种工具感觉可以有一定的使用门槛,不用为用户的所有输入都做好防呆,不然复杂度有点太高了。