Don't incorrectly set websites as user-defined just because initial player index was set

This commit is contained in:
Tamius Han 2025-01-28 00:47:45 +01:00
parent 6ea47d26d0
commit aef5665cb5
4 changed files with 15 additions and 6 deletions

View File

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

View File

@ -17,7 +17,7 @@
is geoblocked. is geoblocked.
</div> </div>
</div> </div>
<div v-if="siteSupportLevel === 'no-support'" class="site-support no-support"> <div v-if="siteSupportLevel === 'no-support' || siteSupportLevel === 'unknown'" class="site-support no-support">
<mdicon name="help-circle-outline" /> <mdicon name="help-circle-outline" />
<div v-if="!small">Unknown</div> <div v-if="!small">Unknown</div>
<div class="tooltip"> <div class="tooltip">

View File

@ -307,10 +307,18 @@ export class SiteSettings {
* @param optionValue new value of option * @param optionValue new value of option
* @param reload whether we should trigger a reload in components that require it * @param reload whether we should trigger a reload in components that require it
*/ */
async set(optionPath: string, optionValue: any, options: {reload?: boolean, noSave?: boolean} = {reload: false}) { async set(optionPath: string, optionValue: any, options: {reload?: boolean, noSave?: boolean, scripted?: boolean} = {reload: false}) {
// if no settings exist for this site, create an empty object // if no settings exist for this site, create an empty object.
if (!this.settings.active.sites[this.site]) { // If this function is not being called in response to user actin,
this.settings.active.sites[this.site] = _cp(this.settings.active.sites['@empty']); // create fake settings object.
if (options.scripted && !this.settings.active.sites[this.site]) {
this.settings.active.sites[this.site] = _cp(this.settings.active.sites['@global']);
this.settings.active.sites[this.site].autocreated = true;
this.settings.active.sites[this.site].type = 'unknown';
} else {
if (!this.settings.active.sites[this.site] || this.settings.active.sites[this.site].autocreated) {
this.settings.active.sites[this.site] = _cp(this.settings.active.sites['@empty']);
}
} }
const pathParts = optionPath.split('.'); const pathParts = optionPath.split('.');

View File

@ -718,7 +718,7 @@ class PlayerData {
} else { } else {
bestCandidate.heuristics['autoMatch'] = true; bestCandidate.heuristics['autoMatch'] = true;
if (this.siteSettings.data.playerAutoConfig?.initialIndex !== bestCandidate.index) { if (this.siteSettings.data.playerAutoConfig?.initialIndex !== bestCandidate.index) {
this.siteSettings.set('playerAutoConfig.initialIndex', bestCandidate.index, {reload: false}); this.siteSettings.set('playerAutoConfig.initialIndex', bestCandidate.index, {reload: false, scripted: true});
} }
} }