Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BiLiveNoVIP] 隐身入场显示问题 #31

Closed
Mishasama opened this issue Feb 19, 2021 · 14 comments
Closed

[BiLiveNoVIP] 隐身入场显示问题 #31

Mishasama opened this issue Feb 19, 2021 · 14 comments

Comments

@Mishasama
Copy link
Contributor

激活了隐身入场功能后会导致自己显示为房管,并且页面会显示相关的管理选项,但事实上并没有房管权限,接口返回403。

这是为了实现功能而必须的吗?如果能正确显示就更好了……不然都分不清自己在哪里被上了房管。

@lzghzr
Copy link
Owner

lzghzr commented Feb 19, 2021

因为是隐身入场,所以也没有办法判断是否为房管,为了避免房管功能失效所以默认都显示房管选项。
后续可能会改良

@Mishasama
Copy link
Contributor Author

隐身功能貌似失效了,今晚我进好几个房间都被弹幕鸡显示出来了……

@lzghzr
Copy link
Owner

lzghzr commented Mar 29, 2021

隐身功能貌似失效了,今晚我进好几个房间都被弹幕鸡显示出来了……

可以排查一下是否是其他脚本触发了进入直播间的动作
也可以试一下是否只弹幕姬显示而B站不显示

@Mishasama
Copy link
Contributor Author

隐身功能貌似失效了,今晚我进好几个房间都被弹幕鸡显示出来了……

可以排查一下是否是其他脚本触发了进入直播间的动作
也可以试一下是否只弹幕姬显示而B站不显示

会不会是网络延迟导致的问题?比如脚本的载入时机?
貌似这个问题更容易出现在直播间加载慢的时候。

@lzghzr
Copy link
Owner

lzghzr commented Apr 17, 2021

会不会是网络延迟导致的问题?比如脚本的载入时机?
貌似这个问题更容易出现在直播间加载慢的时候。

也有可能,毕竟只是脚本,权限要比插件低,无法拦截常规请求

@Mishasama
Copy link
Contributor Author

Mishasama commented May 29, 2021

最近发现了一个在现象上看起来有关联性的问题,不知道你那边有没有空测试一下……

@lzghzr
Copy link
Owner

lzghzr commented May 30, 2021

最近发现了一个在现象上看起来有关联性的问题,不知道你那边有没有空测试一下……

看了一下描述,大概是chrome的问题,最近也有一些脚本莫名其妙的获取不到页面元素,而且还是很统一的只能获取到一半,比如100个获取到50个,2个只能获取到1个,必须触发重渲染才能全部获取。可能是chrome更新以后优化了资源加载,后台运行太长时间会被优化掉

@lzghzr
Copy link
Owner

lzghzr commented May 30, 2021

其实在后台运行太长时间,“屏蔽挂机检测”这个功能也会失效,也就是脚本模拟的鼠标动作根本没用,我只知道以前settimeout这种在后台会被减速对齐运行,我再去看看最近chrome改了啥后台机制才能知道发生了什么

@Mishasama
Copy link
Contributor Author

其实在后台运行太长时间,“屏蔽挂机检测”这个功能也会失效,也就是脚本模拟的鼠标动作根本没用,我只知道以前settimeout这种在后台会被减速对齐运行,我再去看看最近chrome改了啥后台机制才能知道发生了什么

你这么一说我就想起有个事了……
在后台打开标签页的时候应该还有一个lazyload的东西可能会影响这类脚本的加载和判定,然后页面长时间在后台的话会减少频率并对齐执行啥的,有点像Android里面Doze的那种做法,脚本方面似乎难以突破这层限制。
至于挂机检测这个最好采用一个比较短的随机时间来确保即便被对齐了也能每个间隔都有一次?(可能需要看一下文档看看最近的Chrome对齐间隔是多少)

@Mishasama
Copy link
Contributor Author

我找到了…现在只需要测试挂后台5分钟就可以了。

Throttle Javascript timers in background.
When enabled, wake ups from DOM Timers are limited to 1 per minute in a page that has been hidden for 5 minutes. For additional details, see https://www.chromestatus.com/feature/4718288976216064. – Mac, Windows, Linux, Chrome OS, Android

chrome://flags/#intensive-wake-up-throttling

@lzghzr
Copy link
Owner

lzghzr commented Sep 6, 2021

我找到了…现在只需要测试挂后台5分钟就可以了。

Throttle Javascript timers in background.
When enabled, wake ups from DOM Timers are limited to 1 per minute in a page that has been hidden for 5 minutes. For additional details, see https://www.chromestatus.com/feature/4718288976216064. – Mac, Windows, Linux, Chrome OS, Android

chrome://flags/#intensive-wake-up-throttling

现在隐身入场和屏蔽挂机检测都加了代码注入,好处是会和player一起唤醒,不用担心后台问题,缺点就是B站代码更新太快,容易失效

@lzghzr lzghzr added the wontfix label Dec 15, 2022
@lzghzr
Copy link
Owner

lzghzr commented Dec 15, 2022

由于chromium更新加强了限制,Tampermonkey已无法每次都在网页加载前插入脚本,我自己测试大概有20%的概率无法拦截请求,可能需要更加底层类似ublock的拦截机制才行

@lzghzr lzghzr closed this as completed Dec 15, 2022
@Mishasama
Copy link
Contributor Author

由于chromium更新加强了限制,Tampermonkey已无法每次都在网页加载前插入脚本,我自己测试大概有20%的概率无法拦截请求,可能需要更加底层类似ublock的拦截机制才行

image
这都搞不了它?

@lzghzr
Copy link
Owner

lzghzr commented Dec 20, 2022

image 这都搞不了它?

不行,脚本一直都是@run-start,而且Tampermonkey文档对这个选项的描述是尽早插入,而不是在页面加载前插入,看issue里讨论,Violentmonkey似乎有解决方法,我还没用过

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants