summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--locales/en-US.yml1
-rw-r--r--locales/index.d.ts4
-rw-r--r--locales/ja-JP.yml1
-rw-r--r--packages/frontend/src/plugin.ts14
4 files changed, 17 insertions, 3 deletions
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 58712657e8..d559b58a94 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -291,6 +291,7 @@ removeAreYouSure: "Are you sure that you want to remove \"{x}\"?"
deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?"
resetAreYouSure: "Really reset?"
areYouSure: "Are you sure?"
+confirmRemoteUrl: "Are you sure that you want to go to \"{x}\"?"
saved: "Saved"
messaging: "Chat"
upload: "Upload"
diff --git a/locales/index.d.ts b/locales/index.d.ts
index 55a95f8fd9..0e560b8ae9 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -1181,6 +1181,10 @@ export interface Locale extends ILocale {
*/
"areYouSure": string;
/**
+ * 「{x}」を開きますか?
+ */
+ "confirmRemoteUrl": ParameterizedString<"x">;
+ /**
* 保存しました
*/
"saved": string;
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index da208147a1..dc501f5802 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -291,6 +291,7 @@ removeAreYouSure: "「{x}」を削除しますか?"
deleteAreYouSure: "「{x}」を削除しますか?"
resetAreYouSure: "リセットしますか?"
areYouSure: "よろしいですか?"
+confirmRemoteUrl: "「{x}」を開きますか?"
saved: "保存しました"
messaging: "チャット"
upload: "アップロード"
diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts
index 81233a5a5e..0818eb43f1 100644
--- a/packages/frontend/src/plugin.ts
+++ b/packages/frontend/src/plugin.ts
@@ -6,7 +6,8 @@
import { ref } from 'vue';
import { Interpreter, Parser, utils, values } from '@syuilo/aiscript';
import { aiScriptReadline, createAiScriptEnv } from '@/scripts/aiscript/api.js';
-import { inputText } from '@/os.js';
+import * as os from '@/os.js';
+import { i18n } from '@/i18n.js';
import { Plugin, noteActions, notePostInterruptors, noteViewInterruptors, postFormActions, userActions, pageViewInterruptors } from '@/store.js';
const parser = new Parser();
@@ -91,8 +92,15 @@ function createPluginEnv(opts: { plugin: Plugin; storageKey: string }): Record<s
registerPageViewInterruptor({ pluginId: opts.plugin.id, handler });
}),
'Plugin:open_url': values.FN_NATIVE(([url]) => {
- utils.assertString(url);
- window.open(url.value, '_blank', 'noopener');
+ (async () => {
+ utils.assertString(url);
+ const { canceled } = await os.confirm({
+ type: 'question',
+ text: i18n.tsx.confirmRemoteUrl({x: url.value}),
+ });
+ if (canceled) return;
+ window.open(url.value, '_blank', 'noopener');
+ })();
}),
'Plugin:config': values.OBJ(config),
};