1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-08-11 00:20:54 +00:00
* Changed: Add a notice to the Player Statistics metadata when an unexpected player type (non-`site`) is detected, which may indicate tampering by third-party software such as ad blockers. This notice is only intended to serve as a debugging tool for users, allowing them to easily determine whether or not a player type modification has been used.
This commit is contained in:
SirStendec 2020-11-05 14:41:58 -05:00
parent 46dd59ef8d
commit a95c2ebccd
2 changed files with 29 additions and 5 deletions

View file

@ -1,7 +1,7 @@
{ {
"name": "frankerfacez", "name": "frankerfacez",
"author": "Dan Salvato LLC", "author": "Dan Salvato LLC",
"version": "4.20.44", "version": "4.20.45",
"description": "FrankerFaceZ is a Twitch enhancement suite.", "description": "FrankerFaceZ is a Twitch enhancement suite.",
"license": "Apache-2.0", "license": "Apache-2.0",
"scripts": { "scripts": {

View file

@ -346,6 +346,16 @@ export default class Metadata extends Module {
} }
} }
let tampered = false;
try {
const url = player.core.state.path;
if ( url.includes('/api/channel/hls/') ) {
const data = JSON.parse(new URL(url).searchParams.get('token'));
tampered = data && data.player_type && data.player_type !== 'site' ? data.player_type : false;
}
} catch(err) { /* no op */ }
if ( ! stats || stats.hlsLatencyBroadcaster < -100 ) if ( ! stats || stats.hlsLatencyBroadcaster < -100 )
return {stats}; return {stats};
@ -359,7 +369,8 @@ export default class Metadata extends Module {
drift, drift,
rate: stats.rate == null ? 1 : stats.rate, rate: stats.rate == null ? 1 : stats.rate,
delay: stats.hlsLatencyBroadcaster, delay: stats.hlsLatencyBroadcaster,
old: stats.hlsLatencyBroadcaster > 180 old: stats.hlsLatencyBroadcaster > 180,
tampered
} }
}, },
@ -409,6 +420,16 @@ export default class Metadata extends Module {
}, },
tooltip(data) { tooltip(data) {
const tampered = data.tampered ? (<div class="tw-border-t tw-mg-t-05 tw-pd-t-05">
{this.i18n.t(
'metadata.player-stats.tampered',
'Your player has an unexpected player type ({type}), which may affect your viewing experience.',
{
type: data.tampered
}
)}
</div>) : null;
const delayed = data.drift > 5000 && (<div class="tw-border-b tw-mg-b-05 tw-pd-b-05"> const delayed = data.drift > 5000 && (<div class="tw-border-b tw-mg-b-05 tw-pd-b-05">
{this.i18n.t( {this.i18n.t(
'metadata.player-stats.delay-warning', 'metadata.player-stats.delay-warning',
@ -429,7 +450,8 @@ export default class Metadata extends Module {
return [ return [
delayed, delayed,
ff, ff,
this.i18n.t('metadata.player-stats.latency-tip', 'Stream Latency') this.i18n.t('metadata.player-stats.latency-tip', 'Stream Latency'),
tampered
]; ];
const stats = data.stats, const stats = data.stats,
@ -455,7 +477,8 @@ export default class Metadata extends Module {
</div>, </div>,
<div class="tw-pd-t-05"> <div class="tw-pd-t-05">
{video_info} {video_info}
</div> </div>,
tampered
]; ];
return [ return [
@ -466,7 +489,8 @@ export default class Metadata extends Module {
), ),
<div class="tw-pd-t-05"> <div class="tw-pd-t-05">
{video_info} {video_info}
</div> </div>,
tampered
]; ];
} }
} }