diff options
Diffstat (limited to 'packages/frontend/src/pages/settings')
| -rw-r--r-- | packages/frontend/src/pages/settings/general.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/plugin.install.vue | 31 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/preferences-backups.vue | 1 |
3 files changed, 24 insertions, 10 deletions
diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index 84d99d2fd7..b426ccfa0a 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -27,7 +27,6 @@ <FormSwitch v-model="imageNewTab" class="_formBlock">{{ i18n.ts.openImageInNewTab }}</FormSwitch> <FormSwitch v-model="enableInfiniteScroll" class="_formBlock">{{ i18n.ts.enableInfiniteScroll }}</FormSwitch> <FormSwitch v-model="useReactionPickerForContextMenu" class="_formBlock">{{ i18n.ts.useReactionPickerForContextMenu }}</FormSwitch> - <FormSwitch v-model="disablePagesScript" class="_formBlock">{{ i18n.ts.disablePagesScript }}</FormSwitch> <FormSelect v-model="serverDisconnectedBehavior" class="_formBlock"> <template #label>{{ i18n.ts.whenServerDisconnected }}</template> @@ -141,7 +140,6 @@ const disableShowingAnimatedImages = computed(defaultStore.makeGetterSetter('dis const loadRawImages = computed(defaultStore.makeGetterSetter('loadRawImages')); const imageNewTab = computed(defaultStore.makeGetterSetter('imageNewTab')); const nsfw = computed(defaultStore.makeGetterSetter('nsfw')); -const disablePagesScript = computed(defaultStore.makeGetterSetter('disablePagesScript')); const showFixedPostForm = computed(defaultStore.makeGetterSetter('showFixedPostForm')); const numberOfPageCache = computed(defaultStore.makeGetterSetter('numberOfPageCache')); const instanceTicker = computed(defaultStore.makeGetterSetter('instanceTicker')); diff --git a/packages/frontend/src/pages/settings/plugin.install.vue b/packages/frontend/src/pages/settings/plugin.install.vue index 550bba242e..40ad9a95dd 100644 --- a/packages/frontend/src/pages/settings/plugin.install.vue +++ b/packages/frontend/src/pages/settings/plugin.install.vue @@ -14,8 +14,7 @@ <script lang="ts" setup> import { defineAsyncComponent, nextTick, ref } from 'vue'; -import { AiScript, parse } from '@syuilo/aiscript'; -import { serialize } from '@syuilo/aiscript/built/serializer'; +import { Interpreter, Parser, utils } from '@syuilo/aiscript'; import { v4 as uuid } from 'uuid'; import FormTextarea from '@/components/form/textarea.vue'; import FormButton from '@/components/MkButton.vue'; @@ -26,23 +25,41 @@ import { unisonReload } from '@/scripts/unison-reload'; import { i18n } from '@/i18n'; import { definePageMetadata } from '@/scripts/page-metadata'; +const parser = new Parser(); const code = ref(null); -function installPlugin({ id, meta, ast, token }) { +function installPlugin({ id, meta, src, token }) { ColdDeviceStorage.set('plugins', ColdDeviceStorage.get('plugins').concat({ ...meta, id, active: true, configData: {}, token: token, - ast: ast, + src: src, })); } async function install() { + if (code.value == null) return; + + const lv = utils.getLangVersion(code.value); + if (lv == null) { + os.alert({ + type: 'error', + text: 'No language version annotation found :(', + }); + return; + } else if (lv !== '0.12.0') { + os.alert({ + type: 'error', + text: `aiscript version '${lv}' is not supported :(`, + }); + return; + } + let ast; try { - ast = parse(code.value); + ast = parser.parse(code.value); } catch (err) { os.alert({ type: 'error', @@ -51,7 +68,7 @@ async function install() { return; } - const meta = AiScript.collectMetadata(ast); + const meta = Interpreter.collectMetadata(ast); if (meta == null) { os.alert({ type: 'error', @@ -103,7 +120,7 @@ async function install() { name, version, author, description, permissions, config, }, token, - ast: serialize(ast), + src: code.value, }); os.success(); diff --git a/packages/frontend/src/pages/settings/preferences-backups.vue b/packages/frontend/src/pages/settings/preferences-backups.vue index 8b7548f25b..a713c1262d 100644 --- a/packages/frontend/src/pages/settings/preferences-backups.vue +++ b/packages/frontend/src/pages/settings/preferences-backups.vue @@ -62,7 +62,6 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [ 'loadRawImages', 'imageNewTab', 'disableShowingAnimatedImages', - 'disablePagesScript', 'emojiStyle', 'disableDrawer', 'useBlurEffectForModal', |