summaryrefslogtreecommitdiff
path: root/packages/frontend
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-11-24 20:53:39 +0900
committerGitHub <noreply@github.com>2025-11-24 20:53:39 +0900
commit42706970f21b314439790d0baf5f203a2e03100c (patch)
tree6a91df4ca11d300ceb56867a4780e2b6b88d7b07 /packages/frontend
parentNew Crowdin updates (#16797) (diff)
downloadmisskey-42706970f21b314439790d0baf5f203a2e03100c.tar.gz
misskey-42706970f21b314439790d0baf5f203a2e03100c.tar.bz2
misskey-42706970f21b314439790d0baf5f203a2e03100c.zip
fix(frontend): PlayのAiScriptバージョン判定が正しく動作しない問題を修正 (#16843)
* fix: aiscript 1.0.0 以外が全部レガシー扱いになる問題を修正 (MisskeyIO#1129) * Update Changelog --------- Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Diffstat (limited to 'packages/frontend')
-rw-r--r--packages/frontend/src/aiscript/common.ts7
-rw-r--r--packages/frontend/src/pages/flash/flash.vue4
2 files changed, 10 insertions, 1 deletions
diff --git a/packages/frontend/src/aiscript/common.ts b/packages/frontend/src/aiscript/common.ts
index ba5dfb8368..806a9b5965 100644
--- a/packages/frontend/src/aiscript/common.ts
+++ b/packages/frontend/src/aiscript/common.ts
@@ -6,6 +6,13 @@
import { errors, utils } from '@syuilo/aiscript';
import type { values } from '@syuilo/aiscript';
+const extractVersionIdentifier = /^\/\/\/\s*@\s*(\d+)\.(\d+)\.\d+$/m;
+
+export function getAiScriptVersion(script: string): { major: number; minor: number } | undefined {
+ const match = extractVersionIdentifier.exec(script);
+ return match ? { major: Number(match[1]), minor: Number(match[2]) } : undefined;
+}
+
export function assertStringAndIsIn<A extends readonly string[]>(value: values.Value | undefined, expects: A): asserts value is values.VStr & { value: A[number] } {
utils.assertString(value);
const str = value.value;
diff --git a/packages/frontend/src/pages/flash/flash.vue b/packages/frontend/src/pages/flash/flash.vue
index f318a9f817..f6da46be22 100644
--- a/packages/frontend/src/pages/flash/flash.vue
+++ b/packages/frontend/src/pages/flash/flash.vue
@@ -74,6 +74,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
import { definePage } from '@/page.js';
import MkAsUi from '@/components/MkAsUi.vue';
+import { getAiScriptVersion } from '@/aiscript/common.js';
import { registerAsUiLib } from '@/aiscript/ui.js';
import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
import MkFolder from '@/components/MkFolder.vue';
@@ -194,7 +195,8 @@ async function run() {
if (aiscript.value) aiscript.value.abort();
if (!flash.value) return;
- const isLegacy = !flash.value.script.replaceAll(' ', '').startsWith('///@1.0.0');
+ const version = getAiScriptVersion(flash.value.script);
+ const isLegacy = version ? version.major < 1 : false;
const { Interpreter, Parser, values } = isLegacy ? (await import('@syuilo/aiscript-0-19-0') as any) : await import('@syuilo/aiscript');