lgc-NB2Dev / YetAnotherPicSearch

Yet another picture search plugin for nonebot2
GNU General Public License v3.0
106 stars 10 forks source link

请求添加socks5代理支持,或网络问题失败后自动切换到下一个搜图引擎 #81

Closed TechOtakupoi233 closed 1 year ago

TechOtakupoi233 commented 1 year ago

功能需求

如题,插件好像只支持httpproxy,填socks5连不上代理。 而且代理有时候会断线,希望可以在网络问题出错后自动尝试其他引擎?

理由

我部署的是shadowsocks-libev,要开个httpproxy的话可能换个v2ray什么的还更快?

NekoAria commented 1 year ago

事实上是支持 socks 代理的,只是你需要再安装一个包 aiohttp_socks ,然后代理配置为 'socks://...' 。

另外 socks 转 http 可以用 privoxy ,还能结合 gfwlist2privoxy 实现自动代理。

至于你说搜图失败自动使用其他搜图引擎,问题是几乎没有哪个搜图引擎是可以直连的,主要取决于网络环境。不过我可以改成先尝试不使用代理,10 秒超时后自动使用代理。

NekoAria commented 1 year ago

主要是 ascii2d / ehentai / nhentai 都需要走代理,其他的搜图引擎倒是可以不用,但是其中 iqdb 搜图结果优先是 danbooru / yande.re ,又是需要走代理的。你说自动切换其他搜图引擎,我也想不到有什么搜图引擎合适,百度?那搜图效果一般。

想了想,加自动尝试不使用代理,又会导致搜图耗时增加,也并不好。

你还是换一个更稳定的代理吧。

TechOtakupoi233 commented 1 year ago

我刚刚尝试了使用socks5代理的配置,然后得到了这个: image image 代理是工作中的: image 配置应该是这样吧? image

TechOtakupoi233 commented 1 year ago

如果使用socks://代替socks5://,就会这样: image

TechOtakupoi233 commented 1 year ago

会不会是撞依赖了?隔壁插件要求0.8.0以上的aiohttp_socks,YAPS好像是要求0.7.0-0.8...

NekoAria commented 1 year ago

会不会是撞依赖了?隔壁插件要求0.8.0以上的aiohttp_socks,YAPS好像是要求0.7.0-0.8...

不是这个问题, PicImageSearch 的 aiohttp_socks 的依赖是 0.8.0 以上,那只是仓库里的,不是包里的。

~光从你的日志来看,只是网络问题吧。~ 确实现有的代码逻辑并不支持 socks 代理,我改改吧。 还有一个报错是,你没有配置 nonebot 的超级管理员账号。