From 6eb96f917d02e37c224a2dfe8b941b54f9001867 Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Wed, 14 Jul 2021 21:17:32 +0200 Subject: [PATCH 1/5] Goodies for #160 --- src/ext/conf/ExtConfPatches.js | 35 +++++++++++++++++++++++++++++++++- src/ext/conf/ExtensionConf.ts | 24 ++++++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/src/ext/conf/ExtConfPatches.js b/src/ext/conf/ExtConfPatches.js index d20dbfc..fa932a8 100644 --- a/src/ext/conf/ExtConfPatches.js +++ b/src/ext/conf/ExtConfPatches.js @@ -517,7 +517,7 @@ const ExtensionConfPatch = [ "app.plex.tv": { mode: 3, autoar: 3, - type: "user-added", + type: "community", stretch: -1, videoAlignment: -1, keyboardShortcutsEnabled: 0, @@ -533,6 +533,39 @@ const ExtensionConfPatch = [ css: "body {\n background-color: #000;\n}\n\n.application {\n background-color: #000;\n}" } } + }, { + forVersion: '5.0.6', + sites: { + "metaivi.com": { + mode: 0, + autoar: 0, + type: "community", + stretch: -1, + videoAlignment: -1, + DOM: { + video: { + manual: false, + querySelectors: "", + additionalCss: "position: absolute !important;" + }, + player: { + manual: false, + querySelectors: "", + additionalCss: "", + useRelativeAncestor: false, + playerNodeCss: "" + } + }, + "css": "" + } + }, + updateFn: (userOptions, defaultOptions) => { + // 5.0.5 initially incorrectly had app.plex.tv marked as 'user-added' + // when 'user-added' is generally reserved for marking sites with user- + // changed configuration. Site patches submitted by community should have + // 'community' type. extConfPatch for 5.0.5 was also retroactively corrected. + userOptions.sites['app.plex.tv'].type = 'community'; + } } ]; diff --git a/src/ext/conf/ExtensionConf.ts b/src/ext/conf/ExtensionConf.ts index 13b8206..7698634 100644 --- a/src/ext/conf/ExtensionConf.ts +++ b/src/ext/conf/ExtensionConf.ts @@ -1195,7 +1195,7 @@ const ExtensionConf: SettingsInterface = { "app.plex.tv": { mode: 3, autoar: 3, - type: "user-added", + type: "community", stretch: -1, videoAlignment: -1, keyboardShortcutsEnabled: 0, @@ -1209,6 +1209,28 @@ const ExtensionConf: SettingsInterface = { } }, css: "body {\n background-color: #000;\n}\n\n.application {\n background-color: #000;\n}" + }, + "metaivi.com": { + mode: 0, + autoar: 0, + type: "community", + stretch: -1, + videoAlignment: -1, + DOM: { + video: { + manual: false, + querySelectors: "", + additionalCss: "position: absolute !important;" + }, + player: { + manual: false, + querySelectors: "", + additionalCss: "", + useRelativeAncestor: false, + playerNodeCss: "" + } + }, + "css": "" } } } From 95d3d962f4a583a11872c14558f892ffff690af0 Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Wed, 14 Jul 2021 21:19:39 +0200 Subject: [PATCH 2/5] I reckon we can drop ExtConfPatches for versions over a year old like, everyone should have receiving this and future updates should be on 5.x, or at least on 4.5.x --- src/ext/conf/ExtConfPatches.js | 385 --------------------------------- 1 file changed, 385 deletions(-) diff --git a/src/ext/conf/ExtConfPatches.js b/src/ext/conf/ExtConfPatches.js index fa932a8..48d907c 100644 --- a/src/ext/conf/ExtConfPatches.js +++ b/src/ext/conf/ExtConfPatches.js @@ -7,391 +7,6 @@ import BrowserDetect from './BrowserDetect'; const ExtensionConfPatch = [ { - forVersion: '4.2.0', - sites: { - "old.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: true, - useRelativeAncestor: false, - querySelectors: '.reddit-video-player-root, .media-preview-content' - } - }, - css: '', - }, - "www.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: true, - useRelativeAncestor: false, - querySelectors: '.reddit-video-player-root, .media-preview-content' - } - }, - css: '', - }, - "www.youtube.com" : { - DOM: { - player: { - manual: true, - querySelectors: "#movie_player, #player", - additionalCss: "", - useRelativeAncestor: false, - playerNodeCss: "", - } - } - }, - } - }, { - forVersion: '4.2.3.1', - sites: { - "old.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: true, - useRelativeAncestor: false, - querySelectors: '.media-preview-content, .reddit-video-player-root' - } - }, - css: '', - }, - "www.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: true, - useRelativeAncestor: false, - querySelectors: '.media-preview-content, .reddit-video-player-root' - } - }, - css: '', - }, - "www.youtube.com" : { - DOM: { - player: { - manual: true, - querySelectors: "#movie_player, #player", - additionalCss: "", - useRelativeAncestor: false, - playerNodeCss: "", - } - } - }, - } - }, { - forVersion: '4.3.0', - sites: { - "old.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: false, - useRelativeAncestor: false, - querySelectors: '.reddit-video-player-root, .media-preview-content' - } - }, - css: 'video {\n width: 100% !important;\n height: 100% !important;\n}', - }, - "www.reddit.com" : { - type: 'testing', - DOM: { - player: { - manual: false, - useRelativeAncestor: false, - querySelectors: '.reddit-video-player-root, .media-preview-content' - } - }, - css: 'video {\n width: 100% !important;\n height: 100% !important;\n}', - }, - } - }, { - forVersion: '4.3.1.1', - sites: { - 'www.twitch.tv': { - DOM: { - player: { - manual: false, - querySelectors: "", - additionalCss: "", - useRelativeAncestor: false, - playerNodeCss: "" - } - } - } - } - }, { - forVersion: '4.4.0', - updateFn: (userOptions, defaultOptions) => { - // remove 'press P to toggle panning mode' thing - const togglePan = userOptions.actions.find(x => x.cmd && x.cmd.length === 1 && x.cmd[0].action === 'toggle-pan'); - if (togglePan) { - togglePan.scopes = {}; - } - - // add new actions - userOptions.actions.push({ - name: 'Don\'t persist crop', - label: 'Never persist', - cmd: [{ - action: 'set-ar-persistence', - arg: 0, - }], - scopes: { - site: { - show: true, - }, - global: { - show: true, - } - }, - playerUi: { - show: true, - } - }, { - userAdded: true, - name: 'Persist crop while on page', - label: 'Until page load', - cmd: [{ - action: 'set-ar-persistence', - arg: 1, - }], - scopes: { - site: { - show: true, - }, - global: { - show: true, - } - }, - playerUi: { - show: true, - } - }, { - userAdded: true, - name: 'Persist crop for current session', - label: 'Current session', - cmd: [{ - action: 'set-ar-persistence', - arg: 2, - }], - scopes: { - site: { - show: true, - }, - global: { - show: true, - } - }, - playerUi: { - show: true, - } - }, { - name: 'Persist until manually reset', - label: 'Always persist', - cmd: [{ - action: 'set-ar-persistence', - arg: 3, - }], - scopes: { - site: { - show: true, - }, - global: { - show: true, - } - }, - playerUi: { - show: true, - } - }, { - name: 'Default crop persistence', - label: 'Default', - cmd: [{ - action: 'set-ar-persistence', - arg: -1, - }], - scopes: { - site: { - show: true, - }, - }, - playerUi: { - show: true, - } - }); - - // patch shortcuts for non-latin layouts, but only if the user hasn't changed default keys - for (const action of userOptions.actions) { - if (!action.cmd || action.cmd.length !== 1) { - continue; - } - try { - // if this fails, then action doesn't have keyboard shortcut associated with it, so we skip it - - const actionDefaults = defaultOptions.actions.find(x => x.cmd && x.cmd.length === 1 // (redundant, default actions have exactly 1 cmd in array) - && x.cmd[0].action === action.cmd[0].action - && x.scopes.page - && x.scopes.page.shortcut - && x.scopes.page.shortcut.length === 1 - && x.scopes.page.shortcut[0].key === action.scopes.page.shortcut[0].key // this can throw exception, and it's okay - ); - if (actionDefaults === undefined) { - continue; - } - // update 'code' property for shortcut - action.scopes.page.shortcut[0]['code'] = actionDefaults.scopes.page.shortcut[0].code; - } catch (e) { - continue; - } - } - } - }, { - forVersion: '4.4.1.1', - sites: { - "www.disneyplus.com": { - DOM: { - player: { - periodicallyRefreshPlayerElement: true, - } - } - }, - } - }, { - forVersion: '4.4.2', - updateFn: (userOptions, defaultOptions) => { - try { - userOptions.actions.push( - { - name: 'Stretch source to 4:3', - label: '4:3 stretch (src)', - cmd: [{ - action: 'set-stretch', - arg: StretchType.FixedSource, - customArg: 1.33, - }], - scopes: { - page: { - show: true - } - }, - playerUi: { - show: true, - path: 'crop' - } - }, { - name: 'Stretch source to 16:9', - label: '16:9 stretch (src)', - cmd: [{ - action: 'set-stretch', - arg: StretchType.FixedSource, - customArg: 1.77, - }], - scopes: { - page: { - show: true, - } - }, - playerUi: { - show: true, - path: 'crop' - } - }); - } catch (e) { - console.error("PROBLEM APPLYING SETTINGS", e); - } - } - }, { - forVersion: '4.4.3.1', - sites: { - "www.disneyplus.com": { - mode: ExtensionMode.Enabled, - autoar: ExtensionMode.Enabled, - autoarFallback: ExtensionMode.Enabled, - override: true, // ignore value localStorage in favour of this - stretch: StretchType.Default, - videoAlignment: VideoAlignmentType.Default, - keyboardShortcutsEnabled: ExtensionMode.Default, - DOM: { - player: { - periodicallyRefreshPlayerElement: true, - } - } - } - } - }, { - forVersion: '4.4.7', - updateFn: (userOptions, defaultOptions) => { - if (!userOptions.sites['www.netflix.com'].DOM) { - userOptions.sites['www.netflix.com']['DOM'] = { - "player": { - "manual": true, - "querySelectors": ".VideoContainer", - "additionalCss": "", - "useRelativeAncestor": false, - "playerNodeCss": "" - } - } - } - if (!userOptions.sites['www.disneyplus.com']) { - userOptions.sites['www.disneyplus.com'] = { - mode: ExtensionMode.Enabled, - autoar: ExtensionMode.Enabled, - override: false, - type: 'community', - stretch: StretchType.Default, - videoAlignment: VideoAlignmentType.Default, - keyboardShortcutsEnabled: ExtensionMode.Default, - arPersistence: true, // persist aspect ratio between different videos - autoarPreventConditions: { // prevents autoar on following conditions - videoStyleString: { // if video style string thing does anything of what follows - containsProperty: { // if video style string has any of these properties (listed as keys) - 'height': { // if 'height' property is present in style attribute, we prevent autoar from running - allowedValues: [ // unless attribute is equal to anything in here. Optional. - '100%' - ] - } - // 'width': true // this would prevent aard from running if