Closed pipixia244 closed 2 years ago
这是正常的,具体解释起来比较复杂,涉及到切换逻辑以及决策逻辑:
目前的"切换"逻辑依赖bilibili客户端自身的"超时重试"的逻辑,一个港台番剧页面的请求经过脚本"决策"后认为需要"切换"策略,会在修改策略后直接返回页面超时给bilibili客户端,客户端遇到超时触发重试,重试的请求经过新切换的策略完成连接;但如果bilibili客户端认为"不需要"重试或重试太多次仍然连接失败,则会出现图中的内容加载失败(该问题已脱离脚本范畴故无法解决)
目前其中一个"决策"逻辑为退出番剧页面后会立刻切换回直连策略,以避免后续播放非番剧视频时使用港澳台策略;如需取消该行为,则需把第一条匹配URL正则
^https:\/\/ap(p|i)\.bili(bili|api)\.(com|net)\/(pgc\/view\/v\d\/app\/season|x\/v\d\/search\/defaultwords)\?access_key
修改为
^https:\/\/ap(p|i)\.bili(bili|api)\.(com|net)\/pgc\/view\/v\d\/app\/season\?access_key
原来如此,我还观察到下面两个现象
番剧用
为香港节点)。此时我没有从任何番剧/视频退出,而且打开首个番剧前确认规则处于香港节点状态。也就是说在进入番剧的时候,脚本仍然切换了一次direct。但查看源码发现并没有切换两次,是否可能是“在打开番剧的时候,有两个请求都被抓取了,其中一个切换到了direct,后面的切换到了目标结点“的情况呢?这个有办法解决吗?
补充:也存在退出番剧界面也不会切换到direct的情况,如从我的收藏-追番-在看中点开番剧再返回,则不会触发脚本切换到directdata.bilibili.com
并没有在番剧规则内,并且手动指定香港节点后打开非番剧视频并不会切换到direct,再根据quanx自带的网速表显示速度全在direct,是否观看普通视频时,流量根本不会走番剧规则的结点呢?这样的话,为什么不可以直接如上述2中所说更改正则,取消该行为呢?
对脚本的理解还不够,如有理解不对的地方还请指正,谢谢!
脚本无法直接得知用户是否"退出番剧页面",只能通过退出番剧页面后所发出的请求来间接得知,但这种方法在某些情况下一定会误判,因为该请求不一定只在"退出番剧页面"时会出现,例如从后台进入bilibili客户端也可能会触发请求,进而导致你所提到的问题;该问题可通过前面提到的修改匹配URL正则解决。修改后理论上只有在打开番剧页面才会触发脚本决策
并没有仔细分析过非番剧的数据流,且规则集内也有其他流媒体的域名。自动切回direct的功能记得是某个issues提的需求,觉得实现没什么难度顺手就加上了
那张日志图的时间点没什么参考意义,一个是切换台湾成功的时间,另一个是查询完豆瓣评分的时间;根据那张日志图和你的描述,理论上运行逻辑为:
感谢回复!
让新春的风吹进你的屋子让新春的雪飞进你的屋子让我新春的祝愿 飘进你的心坎新春贺喜
使用脚本后,如先观看一港澳台番剧,再退出界面点击另一个港澳台番剧,会出现如图1的界面,点击重新加载后可以正常播放。 mitm正确添加,正则和js内注释一致,203.107.1.1/24的reject规则也正确填写并应用。 查询日志(如图2)发现在规则本来就指向台湾节点的情况下,切换番剧让规则重新选择了direct,并再次重新选择到台湾节点。 推测此原因导致该问题出现(因为有时脚本没有切换到direct再切换到台湾节点的时候不会触发该问题) 请问这个问题可以被修复吗?感谢~
![2700CF72-66F7-4EF8-9A8C-667F49C891B1](https://user-images.githubusercontent.com/56287117/161370229-02b1875c-8665-4e2c-9889-ff2a061ef89a.jpeg)