Compare commits

..

No commits in common. "a7a36033a24827b5b32d7dcb090bf575aa2c452e" and "5c26e49c17d0a617043b53ccd7f778c0e3a14964" have entirely different histories.

17 changed files with 55 additions and 217 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "ultrawidify",
"version": "6.2.4",
"version": "6.2.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "ultrawidify",
"version": "6.2.4",
"version": "6.2.3",
"description": "Aspect ratio fixer for youtube and other sites, with automatic aspect ratio detection. Supports ultrawide and other ratios.",
"author": "Tamius Han <tamius.han@gmail.com>",
"scripts": {

View File

@ -312,7 +312,6 @@ export interface SiteSettingsInterface {
enable: ExtensionEnvironmentSettingsInterface;
enableAard: ExtensionEnvironmentSettingsInterface;
enableKeyboard: ExtensionEnvironmentSettingsInterface;
enableUI: ExtensionEnvironmentSettingsInterface; // Lies! enableUI doesn't use 'theater' property (but uses the other two)
type?: 'official' | 'community' | 'user-defined' | 'testing' | 'officially-disabled' | 'unknown' | 'modified';
defaultType: 'official' | 'community' | 'user-defined' | 'testing' | 'officially-disabled' | 'unknown' | 'modified';

View File

@ -585,11 +585,6 @@ export default {
handleBusTunnelIn(payload) {
this.eventBus.send(payload.action, payload.config, payload.routingData);
},
updateConfig() {
this.settings.init();
this.$nextTick( () => this.$forceUpdate());
}
}
}

View File

@ -334,10 +334,6 @@ export default {
},
getRandomColor() {
return `rgb(${Math.floor(Math.random() * 128)}, ${Math.floor(Math.random() * 128)}, ${Math.floor(Math.random() * 128)})`;
},
updateConfig() {
this.settings.init();
this.$nextTick( () => this.$forceUpdate());
}
}
}

View File

@ -86,7 +86,6 @@
<PlayerUiSettings
v-if="selectedTab === 'playerUiSettings'"
:settings="settings"
:siteSettings="siteSettings"
:eventBus="eventBus"
>
</PlayerUiSettings>

View File

@ -24,7 +24,7 @@
</template>
<template v-else>
<option value="default">
Use default ({{simpleDefaultSettings.enable}})
Use default ()
</option>
<option value="disabled">
Never
@ -69,7 +69,7 @@
</template>
<template v-else>
<option value="default">
Use default ({{simpleDefaultSettings.enableAard}})
Use default ()
</option>
<option value="disabled">
Never
@ -112,7 +112,7 @@
</template>
<template v-else>
<option value="default">
Use default ({{simpleDefaultSettings.enableKeyboard}})
Use default ()
</option>
<option value="disabled">
Never
@ -131,7 +131,7 @@
</div>
</div>
<!-- Enable UI -->
<!-- Enable keyboard -->
<div class="field">
<div class="label">
Enable <span class="color-emphasis">in-player UI</span>
@ -149,7 +149,7 @@
</template>
<template v-else>
<option value="default">
Use default ({{simpleDefaultSettings.enableUI}})
Use default ()
</option>
<option value="disabled">
Never
@ -267,9 +267,9 @@
</template>
<script>
import ExtensionMode from '@src/common/enums/ExtensionMode.enum';
import VideoAlignmentType from '@src/common/enums/VideoAlignmentType.enum';
import CropModePersistence from '@src/common/enums/CropModePersistence.enum';
import ExtensionMode from '../../../../../common/enums/ExtensionMode.enum';
import VideoAlignmentType from '../../../../../common/enums/VideoAlignmentType.enum';
import CropModePersistence from './../../../../../common/enums/CropModePersistence.enum';
export default {
data() {
@ -305,17 +305,8 @@ export default {
enable: this.compileSimpleSettings('enable'),
enableAard: this.compileSimpleSettings('enableAard'),
enableKeyboard: this.compileSimpleSettings('enableKeyboard'),
enableUI: this.compileSimpleSettings('enableUI')
}
},
simpleDefaultSettings() {
return {
enable: this.getDefaultOptionLabel('enable'),
enableAard: this.getDefaultOptionLabel('enableAard'),
enableKeyboard: this.getDefaultOptionLabel('enableKeyboard'),
enableUI: this.getDefaultOptionLabel('enableUI')
};
},
siteDefaultCrop() {
return this.siteSettings.raw?.defaults?.crop ? JSON.stringify(this.siteSettings.raw?.defaults?.crop) : JSON.stringify({useDefault: true});
},
@ -347,41 +338,40 @@ export default {
/**
* Compiles our extension settings into more user-friendly options
*/
compileSimpleSettings(component, getDefaults) {
const settingsData = getDefaults ? this.settings.active.sites['@global'] : this.siteSettings?.raw;
compileSimpleSettings(component) {
try {
if (
( settingsData?.[component]?.normal === ExtensionMode.Disabled || component === 'enableUI')
&& settingsData?.[component]?.theater === ExtensionMode.Disabled
&& settingsData?.[component]?.fullscreen === ExtensionMode.Disabled
this.siteSettings?.data?.[component]?.normal === ExtensionMode.Disabled
&& this.siteSettings?.data?.[component]?.theater === ExtensionMode.Disabled
&& this.siteSettings?.data?.[component]?.fullscreen === ExtensionMode.Disabled
) {
return 'disabled';
}
if (
( settingsData?.[component]?.normal === ExtensionMode.Default || component === 'enableUI')
&& settingsData?.[component]?.theater === ExtensionMode.Default
&& settingsData?.[component]?.fullscreen === ExtensionMode.Default
this.siteSettings?.data?.[component]?.normal === ExtensionMode.Default
&& this.siteSettings?.data?.[component]?.theater === ExtensionMode.Default
&& this.siteSettings?.data?.[component]?.fullscreen === ExtensionMode.Default
) {
return 'default';
}
if (
( settingsData?.[component]?.normal === ExtensionMode.Disabled || component === 'enableUI')
&& settingsData?.[component]?.theater === ExtensionMode.Disabled
&& settingsData?.[component]?.fullscreen === ExtensionMode.Enabled
this.siteSettings?.data?.[component]?.normal === ExtensionMode.Disabled
&& this.siteSettings?.data?.[component]?.theater === ExtensionMode.Disabled
&& this.siteSettings?.data?.[component]?.fullscreen === ExtensionMode.Enabled
) {
return 'fs';
}
if (
( settingsData?.[component]?.normal === ExtensionMode.Disabled || component === 'enableUI')
&& settingsData?.[component]?.theater === ExtensionMode.Enabled
&& settingsData?.[component]?.fullscreen === ExtensionMode.Enabled
this.siteSettings?.data?.[component]?.normal === ExtensionMode.Disabled
&& this.siteSettings?.data?.[component]?.theater === ExtensionMode.Enabled
&& this.siteSettings?.data?.[component]?.fullscreen === ExtensionMode.Enabled
) {
return 'theater';
}
if (
( settingsData?.[component]?.normal === ExtensionMode.Enabled || component === 'enableUI')
&& settingsData?.[component]?.theater === ExtensionMode.Enabled
&& settingsData?.[component]?.fullscreen === ExtensionMode.Enabled
this.siteSettings?.data?.[component]?.normal === ExtensionMode.Enabled
&& this.siteSettings?.data?.[component]?.theater === ExtensionMode.Enabled
&& this.siteSettings?.data?.[component]?.fullscreen === ExtensionMode.Enabled
) {
return 'enabled';
}
@ -392,36 +382,6 @@ export default {
}
},
getDefaultOptionLabel(component) {
const componentValue = this.compileSimpleSettings(component, true);
if (componentValue === 'loading') {
return componentValue;
}
if (component === 'enableUI') {
switch (componentValue) {
case 'fs':
return 'fullscreen only';
case 'theater':
return 'where possible';
case 'disabled':
return 'disabled';
}
}
switch (componentValue) {
case 'fs':
return 'Fullscreen only';
case 'theater':
return 'theater & FS';
case 'enabled':
return 'always';
case 'disabled':
return 'disabled';
case 'default':
return 'complex'
}
},
getCommandValue(availableCommands, command) {
for (const cmd of availableCommands) {
if (JSON.stringify(cmd.arguments) === JSON.stringify(command)) {
@ -481,18 +441,21 @@ export default {
commandArguments = undefined;
}
console.log('saving settings ...');
await this.siteSettings.set(option, commandArguments, {reload: false});
console.log('settings saved.');
// we also need to force re-compute all watchers, otherwise UI will lag behind
// actual state of settings until reload
this._computedWatchers?.simpleExtensionSettings?.run();
this._computedWatchers?.simpleDefaultSettings?.run();
this._computedWatchers?.siteDefaultCrop?.run();
this._computedWatchers?.siteDefaultStretch?.run();
this._computedWatchers?.siteDefaultAlignment?.run();
this._computedWatchers?.siteDefaultCropPersistence?.run();
this._computedWatchers?.defaultPersistanceLabel?.run();
console.log('watchers recomputed');
this.$nextTick( () => this.$forceUpdate());
},
setExtensionMode(component, event) {

View File

@ -127,7 +127,7 @@
</div>
</div>
<div v-if="siteSettings && allowSettingSiteDefault" class="edit-action-area">
<div v-if="siteSettings" class="edit-action-area">
<div class="field">
<div class="label">Default for this site:</div>
<div class="select">
@ -183,8 +183,7 @@ export default {
'settings', // required for buttons and actions, which are global
'siteSettings',
'eventBus',
'isEditing',
'allowSettingSiteDefault'
'isEditing'
],
components: {
ShortcutButton,
@ -245,6 +244,6 @@ export default {
}
</script>
<style lang="scss" src="@csui/res/css/flex.scss" scoped></style>
<style lang="scss" src="../../../../res/css/flex.scss" scoped></style>
<style lang="scss" src="@csui/src/res-common/panels.scss" scoped></style>
<style lang="scss" src="@csui/src/res-common/common.scss" scoped></style>

View File

@ -5,14 +5,23 @@
<h2>Player UI options</h2>
<div class="flex flex-col compact-form">
<div v-if="!siteSettings.data.enableUI.fullscreen">
UI is disabled for this site.
<div class="field">
<div class="label">Enable in-player UI</div>
<input
type="checkbox"
v-model="settings.active.ui.inPlayer.enabled"
@change="saveSettings()"
/>
</div>
<div
class="flex flex-col field-group compact-form"
:class="{disabled: !siteSettings.data.enableUI.fullscreen}"
:class="{disabled: !settings.active.ui.inPlayer.enabled}"
>
<div class="field">
<div class="label">Enable only in full screen</div>
<input type="checkbox" v-model="settings.active.ui.inPlayer.enabledFullscreenOnly" />
</div>
<div class="field disabled">
<div class="label">
Popup activator position:
@ -162,7 +171,6 @@ export default {
],
props: [
'settings', // required for buttons and actions, which are global
'siteSettings',
'eventBus',
],
mounted() {

View File

@ -4,12 +4,6 @@ div, p, span {
font-size: 16px;
}
.disabled {
pointer-events: none;
/* color: #666; */
filter: contrast(50%) brightness(40%) grayscale(100%);
}
.warning-box {
display: flex;
flex-direction: row;

View File

@ -202,28 +202,6 @@ const ExtensionConfPatch = [
}
}
}
}, {
forVersion: '6.2.4',
updateFn: (userOptions: SettingsInterface, defaultOptions) => {
for (const site in userOptions.sites) {
userOptions.sites[site].enableUI = {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default,
}
}
const uiEnabled =
userOptions.sites['@global'].enableUI = {
fullscreen: userOptions.ui.inPlayer.enabled ? ExtensionMode.Enabled : ExtensionMode.Disabled,
theater: ExtensionMode.Enabled,
normal: (userOptions.ui.inPlayer.enabled && !userOptions.ui.inPlayer.enabledFullscreenOnly) ? ExtensionMode.Enabled : ExtensionMode.Disabled
}
userOptions.sites['@empty'].enableUI = {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default,
}
}
}
];

View File

@ -1433,12 +1433,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Enabled,
normal: ExtensionMode.Disabled
},
enableUI: {
fullscreen: ExtensionMode.Enabled,
theater: ExtensionMode.Enabled, // Lies! means 'theater-ish'
normal: ExtensionMode.Enabled // Not actually used.
},
defaultType: 'unknown',
persistCSA: CropModePersistence.Disabled,
@ -1464,12 +1458,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Disabled
},
type: 'user-defined',
defaultType: 'user-defined',
persistCSA: CropModePersistence.Default,
@ -1495,12 +1483,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
override: false, // ignore value localStorage in favour of this
type: 'official', // is officially supported? (Alternatives are 'community' and 'user-defined')
defaultType: 'official', // if user mucks around with settings, type changes to 'user-defined'.
@ -1535,12 +1517,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Disabled
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
override: false,
type: 'community',
defaultType: 'community',
@ -1561,11 +1537,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'community',
defaultType: 'community',
activeDOMConfig: 'community-mstefan99',
@ -1588,9 +1559,9 @@ const ExtensionConf: SettingsInterface = {
},
"www.twitch.tv": {
enable: {
fullscreen: ExtensionMode.Enabled,
theater: ExtensionMode.Enabled,
normal: ExtensionMode.Enabled,
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default,
},
enableAard: {
fullscreen: ExtensionMode.Default,
@ -1602,11 +1573,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'official',
defaultType: 'official',
},
@ -1626,11 +1592,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'official',
defaultType: 'official',
activeDOMConfig: 'official',
@ -1663,11 +1624,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled,
},
enableUI: {
fullscreen: ExtensionMode.Disabled,
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled
},
type: 'officially-disabled',
defaultType: 'officially-disabled',
activeDOMConfig: 'official',
@ -1700,11 +1656,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled,
},
enableUI: {
fullscreen: ExtensionMode.Disabled,
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled
},
type: 'officially-disabled',
defaultType: 'officially-disabled',
activeDOMConfig: 'official',
@ -1737,11 +1688,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled,
},
enableUI: {
fullscreen: ExtensionMode.Disabled,
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled
},
type: 'officially-disabled',
defaultType: 'officially-disabled',
},
@ -1761,11 +1707,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled,
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'officially-disabled',
defaultType: 'officially-disabled',
},
@ -1785,11 +1726,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Disabled,
normal: ExtensionMode.Disabled,
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'officially-disabled',
defaultType: 'officially-disabled',
},
@ -1809,11 +1745,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'community',
defaultType: 'community',
activeDOMConfig: 'community',
@ -1845,11 +1776,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: 'community',
defaultType: 'community',
activeDOMConfig: 'community',
@ -1876,11 +1802,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: "community",
defaultType: "community",
activeDOMConfig: 'community',
@ -1911,11 +1832,6 @@ const ExtensionConf: SettingsInterface = {
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
enableUI: {
fullscreen: ExtensionMode.Default,
theater: ExtensionMode.Default,
normal: ExtensionMode.Default
},
type: "community",
defaultType: "community",
activeDOMConfig: 'community',

View File

@ -28,7 +28,7 @@ export class SiteSettings {
//#region lifecycle
constructor(settings: Settings, site: string) {
this.settings = settings;
this.raw = settings.active.sites[site];
this.data = settings.active.sites[site];
this.site = site;
this.defaultSettings = settings.default.sites['@global'];
@ -52,7 +52,7 @@ export class SiteSettings {
* Alan pls ensure default settings object follows the correct structure
*/
private compileSettingsObject() {
this.data = _cp(this.settings.active.sites[this.site] ?? {})
this.raw = _cp(this.settings.active.sites[this.site] ?? {})
if (!this.data) {
this.data = _cp(this.defaultSettings);
@ -81,7 +81,7 @@ export class SiteSettings {
}
}
for (const enableSegment of ['enable', 'enableAard', 'enableKeyboard', 'enableUI']) {
for (const enableSegment of ['enable', 'enableAard', 'enableKeyboard']) {
if (!this.data[enableSegment]) {
this.data[enableSegment] = {};
}

View File

@ -248,15 +248,14 @@ class PlayerData {
//#endregion
deferredUiInitialization(playerDimensions) {
if (this.ui || this.siteSettings.data.enableUI.fullscreen === ExtensionMode.Disabled) {
if (this.ui || ! this.videoData.settings.active.ui?.inPlayer?.enabled) {
return;
}
if (
this.isFullscreen
|| (
this.siteSettings.data.enableUI.theater !== ExtensionMode.Disabled
&& playerDimensions.width > 1208
playerDimensions.width > 1208
&& playerDimensions.height > 720
)
) {

View File

@ -94,10 +94,6 @@ export default {
components: {
},
methods: {
updateConfig() {
this.settings.init();
this.$nextTick( () => this.$forceUpdate());
}
}
}
</script>

View File

@ -95,10 +95,6 @@ export default {
components: {
},
methods: {
updateConfig() {
this.settings.init();
this.$nextTick( () => this.$forceUpdate());
}
}
}
</script>

View File

@ -2,7 +2,7 @@
"manifest_version": 3,
"name": "Ultrawidify",
"description": "Removes black bars on ultrawide videos and offers advanced options to fix aspect ratio.",
"version": "6.2.4",
"version": "6.2.3",
"icons": {
"32":"res/icons/uw-32.png",
"64":"res/icons/uw-64.png"