From 7e2a3d26ccb2c7c4fd304f294a1f542814a99f38 Mon Sep 17 00:00:00 2001 From: the1812 Date: Sun, 26 Mar 2023 23:07:57 +0800 Subject: [PATCH] Add compatibilities options (#4100) --- .vscode/settings.json | 1 + src/client/init.ts | 8 ++++++-- src/components/built-in-components.ts | 2 ++ src/components/compatibilities/index.md | 1 + src/components/compatibilities/index.ts | 18 ++++++++++++++++++ 5 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/components/compatibilities/index.md create mode 100644 src/components/compatibilities/index.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index ee156447b..7e00b2430 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -16,6 +16,7 @@ "cSpell.words": [ "afterbegin", "afterend", + "BALH", "Bangumi", "bevo", "bili", diff --git a/src/client/init.ts b/src/client/init.ts index 645d70178..023d06360 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -34,12 +34,16 @@ export const init = async () => { compatibilityPatch() }) - if (unsafeWindow.bangumi_area_limit_hack) { + const { coreApis, externalApis } = await import('@/core/core-apis') + if ( + unsafeWindow.bangumi_area_limit_hack && + coreApis.settings.getComponentSettings<{ disableOnBalh: boolean }>('compatibilities').options + .disableOnBalh + ) { console.log('BALH detected, Bilibili Evolved is disabled.') return } - const { coreApis, externalApis } = await import('@/core/core-apis') unsafeWindow.bilibiliEvolved = externalApis /** sand-boxed window, safe to use original name */ window.coreApis = coreApis diff --git a/src/components/built-in-components.ts b/src/components/built-in-components.ts index e9a0b98da..217d5a2d2 100644 --- a/src/components/built-in-components.ts +++ b/src/components/built-in-components.ts @@ -4,6 +4,7 @@ import { component as LaunchBar } from './launch-bar' import { component as I18n } from './i18n' import { component as AutoUpdate } from './auto-update' import { component as NotifyNewVersion } from './notify-new-version' +import { component as Compatibilities } from './compatibilities' export const getBuiltInComponents = (): ComponentMetadata[] => [ SettingsPanel, @@ -11,6 +12,7 @@ export const getBuiltInComponents = (): ComponentMetadata[] => [ I18n, AutoUpdate, NotifyNewVersion, + Compatibilities, ] export const isBuiltInComponent = (name: string) => diff --git a/src/components/compatibilities/index.md b/src/components/compatibilities/index.md new file mode 100644 index 000000000..d89b384cd --- /dev/null +++ b/src/components/compatibilities/index.md @@ -0,0 +1 @@ +- `与 "解除 B 站区域限制" 互斥`: 若打开此选项, 在检测到 "解除 B 站区域限制" 脚本时, 将停止此脚本的加载以避免布局错乱. diff --git a/src/components/compatibilities/index.ts b/src/components/compatibilities/index.ts new file mode 100644 index 000000000..cca9ad2b5 --- /dev/null +++ b/src/components/compatibilities/index.ts @@ -0,0 +1,18 @@ +// import { addComponentListener } from '@/core/settings' +import { componentsTags } from '@/components/types' +import { none } from '@/core/utils' +import { defineComponentMetadata } from '../define' + +export const component = defineComponentMetadata({ + name: 'compatibilities', + displayName: '兼容性选项', + configurable: false, + tags: [componentsTags.general], + options: { + disableOnBalh: { + defaultValue: false, + displayName: '与 "解除 B 站区域限制" 互斥', + }, + }, + entry: none, +})