madwind / flexget_qbittorrent_mod

flexget qbittorrent删种、辅种 自动签到 插件
MIT License
552 stars 117 forks source link

Avoid unnecessarily requesting a webpage twice when using a password to login #64

Closed vivodi closed 2 years ago

vivodi commented 2 years ago

目前,对本项目同时支持密码与cookie登录的网站使用密码登录时会执行build_login_workflow()build_workflow(),但是在build_login_workflow()中发送了post请求登录后,该请求会被重定向至首页,因此不需要重复执行build_workflow()中的get请求了。

以hdpost举例,build_login_workflow()中的第2个Work在最终重定向后就get了首页,而无需再执行build_workflow()中的get请求了。 https://github.com/madwind/flexget_qbittorrent_mod/blob/856949a16ed07061f6448f0aee05058098fcb613/ptsites/sites/hdpost.py#L55-L82

本PR使得在使用密码登录时只执行build_login_workflow()而不执行build_workflow(),解决了该问题

madwind commented 2 years ago

这样的话 build_login_workflow()build_workflow() 分开就没有意义了。 build_workflow() 是假设存在cookie用于签到的,如果没有则由 build_login_workflow() 为其提供 cookie。而且也不能保证登录之后跳转的就一定是需要的页面,比如答题,验证码之类的签到仍然需要后续的处理。 如果要处理重复请求,我想修改sign_insign_in_by_get判断 last_repose.url 和当前的 work.url 相等则直接返回 last_reponse 或许更符合这套逻辑

vivodi commented 2 years ago

已按意见修改。同时将与使用密码登录相关的Workbuild_workflow()中移动到了build_login_workflow()