1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-25 03:58:30 +00:00

4.0.0-rc13.8

* Fixed: Add support for disabling channel hosting when users are experiencing the `french_vanilla` Twitch experiment.
This commit is contained in:
SirStendec 2018-11-13 14:50:17 -05:00
parent 79e3ba23a2
commit 3694f3284d
2 changed files with 45 additions and 7 deletions

View file

@ -100,7 +100,7 @@ class FrankerFaceZ extends Module {
FrankerFaceZ.Logger = Logger;
const VER = FrankerFaceZ.version_info = {
major: 4, minor: 0, revision: 0, extra: '-rc13.7',
major: 4, minor: 0, revision: 0, extra: '-rc13.8',
commit: __git_commit__,
build: __webpack_hash__,
toString: () =>

View file

@ -44,7 +44,7 @@ export default class Channel extends Module {
this.ChannelPage = this.fine.define(
'channel-page',
n => (n.getHostedChannelLogin && n.handleHostingChange) || (n.onChatHostingChange && n.state && has(n.state, 'hostMode')),
n => (n.updateRoute && n.updateChannel && n.state && has(n.state, 'hostedChannel')) || (n.getHostedChannelLogin && n.handleHostingChange) || (n.onChatHostingChange && n.state && has(n.state, 'hostMode')),
['user', 'video', 'user-video', 'user-clip', 'user-videos', 'user-clips', 'user-collections', 'user-events', 'user-followers', 'user-following']
);
@ -67,7 +67,7 @@ export default class Channel extends Module {
});
this.ChannelPage.on('update', inst => {
if ( this.settings.get('channel.hosting.enable') || has(inst.state, 'hostMode') )
if ( this.settings.get('channel.hosting.enable') || has(inst.state, 'hostMode') || has(inst.state, 'hostedChannel') )
return;
// We can't do this immediately because the player state
@ -129,7 +129,8 @@ export default class Channel extends Module {
return;
const t = this,
new_style = ! inst.handleHostingChange || has(inst.state, 'hostMode');
new_new_style = inst.updateChannel && has(inst.state, 'hostedChannel'),
new_style = ! new_new_style && ! inst.handleHostingChange || has(inst.state, 'hostMode');
inst.ffzGetChannel = () => {
const params = inst.props.match.params
@ -142,7 +143,24 @@ export default class Channel extends Module {
inst.ffzOldSetState = inst.setState;
inst.setState = function(state, ...args) {
try {
if ( new_style ) {
if ( new_new_style ) {
const expected = inst.ffzGetChannel();
if ( has(state, 'hostedChannel') ) {
inst.ffzExpectedHost = state.hostedChannel;
if ( state.hostedChannel && ! t.settings.get('channel.hosting.enable') ) {
state.hostedChannel = null;
state.videoPlayerSource = expected;
}
t.settings.updateContext({hosting: !!state.hostedChannel});
} else if ( has(state, 'videoPlayerSource') ) {
if ( state.videoPlayerSource !== expected && ! t.settings.get('channel.hosting.enable') ) {
state.videoPlayerSource = expected;
}
}
} else if ( new_style ) {
const expected = inst.ffzGetChannel();
if ( has(state, 'hostMode') ) {
inst.ffzExpectedHost = state.hostMode;
@ -180,7 +198,18 @@ export default class Channel extends Module {
inst._ffz_hosting_wrapped = true;
if ( new_style ) {
if ( new_new_style ) {
const hosted = inst.ffzExpectedHost = inst.state.hostedChannel;
this.settings.updateContext({hosting: this.settings.get('channel.hosting.enable') && !!hosted});
if ( hosted && ! this.settings.get('channel.hosting.enable') ) {
inst.ffzOldSetState({
hostedChannel: null,
videoPlayerSource: inst.ffzGetChannel()
});
}
} else if ( new_style ) {
const hosted = inst.ffzExpectedHost = inst.state.hostMode;
this.settings.updateContext({hosting: this.settings.get('channel.hosting.enable') && !!inst.state.hostMode});
@ -229,7 +258,16 @@ export default class Channel extends Module {
if ( ! inst.ffzExpectedHost )
hosting = false;
if ( has(inst.state, 'hostMode') ) {
if ( has(inst.state, 'hostedChannel') ) {
const host = val ? inst.ffzExpectedHost : null,
target = host && host.login || inst.ffzGetChannel();
inst.ffzOldSetState({
hostedChannel: host,
videoPlayerSource: target
});
} else if ( has(inst.state, 'hostMode') ) {
const host = val ? inst.ffzExpectedHost : null,
target = host && host.hostedChannel && host.hostedChannel.login || inst.ffzGetChannel();