diff --git a/src/main.js b/src/main.js index de5413fd..33208a22 100644 --- a/src/main.js +++ b/src/main.js @@ -149,7 +149,7 @@ ${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}` FrankerFaceZ.Logger = Logger; const VER = FrankerFaceZ.version_info = { - major: 4, minor: 0, revision: 0, extra: '-rc15.3', + major: 4, minor: 0, revision: 0, extra: '-rc15.4', commit: __git_commit__, build: __webpack_hash__, toString: () => diff --git a/src/sites/twitch-twilight/modules/directory/index.jsx b/src/sites/twitch-twilight/modules/directory/index.jsx index 0b87fa80..6aba543b 100644 --- a/src/sites/twitch-twilight/modules/directory/index.jsx +++ b/src/sites/twitch-twilight/modules/directory/index.jsx @@ -52,6 +52,18 @@ export default class Directory extends SiteModule { DIR_ROUTES ); + this.DirectoryShelf = this.fine.define( + 'directory-shelf', + n => n.onEmptyShelfRender && n.shouldRenderShelf, + DIR_ROUTES + ); + + this.DirectoryVideos = this.fine.define( + 'directory-videos', + n => n.props && n.props.directoryWidth && n.props.data && n.render && n.render.toString().includes('SuggestedVideos'), + DIR_ROUTES + ); + this.settings.add('directory.uptime', { default: 1, @@ -125,6 +137,27 @@ export default class Directory extends SiteModule { } }); + this.settings.add('directory.hide-recommended', { + default: false, + ui: { + path: 'Directory > Following >> Categories', + title: 'Do not show `Recommended Live Channels` in the Following Directory.', + component: 'setting-check-box' + }, + + changed: () => this.DirectoryShelf.forceUpdate() + }); + + this.settings.add('directory.hide-viewing-history', { + default: false, + ui: { + path: 'Directory > Following >> Categories', + title: 'Do not show `Based on your viewing history` in the Following Directory.', + component: 'setting-check-box' + }, + + changed: () => this.DirectoryVideos.forceUpdate() + }); this.routeClick = this.routeClick.bind(this); } @@ -141,6 +174,43 @@ export default class Directory extends SiteModule { const createElement = React && React.createElement; + this.DirectoryShelf.ready(cls => { + const old_render = cls.prototype.render; + cls.prototype.render = function() { + try { + if ( t.settings.get('directory.hide-recommended') ) { + const key = get('props.shelf.title.key', this); + if ( key === 'live_recs_following' ) + return null; + } + + } catch(err) { + t.log.capture(err); + } + + return old_render.call(this); + } + + this.DirectoryShelf.forceUpdate(); + }); + + this.DirectoryVideos.ready(cls => { + const old_render = cls.prototype.render; + cls.prototype.render = function() { + try { + if ( t.settings.get('directory.hide-viewing-history') ) + return null; + + } catch(err) { + t.log.capture(err); + } + + return old_render.call(this); + } + + this.DirectoryVideos.forceUpdate(); + }) + this.DirectoryCard.ready(cls => { //const old_render = cls.prototype.render, const old_render_iconic = cls.prototype.renderIconicImage, diff --git a/src/sites/twitch-twilight/modules/menu_button.jsx b/src/sites/twitch-twilight/modules/menu_button.jsx index e46285f7..cc12b8ca 100644 --- a/src/sites/twitch-twilight/modules/menu_button.jsx +++ b/src/sites/twitch-twilight/modules/menu_button.jsx @@ -122,7 +122,7 @@ export default class MenuButton extends SiteModule { )} -