Skip to content
18 changes: 9 additions & 9 deletions src/app/service/service_worker/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@ import { type FileSystemType } from "@Packages/filesystem/factory";
import { type ResourceBackup } from "@App/pkg/backup/struct";
import { type VSCodeConnect } from "../offscreen/vscode-connect";
import { type ScriptInfo } from "@App/pkg/utils/scriptInstall";
import type { ScriptService, TCheckScriptUpdateOption, TOpenBatchUpdatePageOption } from "./script";
import type {
ScriptService,
TCheckScriptUpdateOption,
TOpenBatchUpdatePageOption,
TScriptInstallParam,
TScriptInstallReturn,
} from "./script";
import { encodeRValue, type TKeyValuePair } from "@App/pkg/utils/message_value";
import { type TSetValuesParams } from "./value";

Expand Down Expand Up @@ -40,15 +46,9 @@ export class ScriptClient extends Client {
return this.do<[boolean, ScriptInfo, { byWebRequest?: boolean }]>("getInstallInfo", uuid);
}

install(params: {
script: Script;
code: string;
upsertBy?: InstallSource;
createtime?: number;
updatetime?: number;
}): Promise<{ update: boolean }> {
install(params: TScriptInstallParam): Promise<TScriptInstallReturn> {
if (!params.upsertBy) params.upsertBy = "user";
return this.doThrow("install", { ...params });
return this.doThrow("install", { ...params } satisfies TScriptInstallParam);
}

// delete(uuid: string) {
Expand Down
30 changes: 19 additions & 11 deletions src/app/service/service_worker/script.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,19 @@ export type TCheckScriptUpdateOption = Partial<

export type TOpenBatchUpdatePageOption = { q: string; dontCheckNow: boolean };

export type TScriptInstallParam = {
script: Script; // 脚本信息(包含脚本的基础元数据)
code: string; // 脚本源码内容
upsertBy?: InstallSource; // 安装/更新来源(用于标识脚本来源渠道)
createtime?: number; // 导入时指定的创建时间(时间戳,毫秒)
updatetime?: number; // 导入时指定的最后更新时间(时间戳,毫秒)
};

export type TScriptInstallReturn = {
update: boolean; // 是否为更新操作(true 表示更新,false 表示新增)
updatetime: number | undefined; // 实际生效的更新时间(时间戳,毫秒)
};

export class ScriptService {
logger: Logger;
scriptCodeDAO: ScriptCodeDAO = new ScriptCodeDAO();
Expand Down Expand Up @@ -369,14 +382,8 @@ export class ScriptService {
return this.mq.publish<TInstallScript>("installScript", { script, ...options });
}

// 安装脚本 / 更新腳本
async installScript(param: {
script: Script;
code: string;
upsertBy?: InstallSource;
createtime?: number;
updatetime?: number;
}) {
// 安装脚本 / 更新脚本
async installScript(param: TScriptInstallParam): Promise<TScriptInstallReturn> {
param.upsertBy = param.upsertBy || "user";
const { script, upsertBy, createtime, updatetime } = param;
// 删 storage cache
Expand Down Expand Up @@ -427,10 +434,11 @@ export class ScriptService {
]);

// 广播一下
// Runtime 會負責更新 CompiledResource
// Runtime 会负责更新 CompiledResource
this.publishInstallScript(script, { update, upsertBy });

return { update };
// 传回(由后台控制的)实际更新时间,让 editor 中的script能保持正确的更新时间
return { update, updatetime: script.updatetime };
})
.catch((e: any) => {
logger.error("install error", Logger.E(e));
Expand Down Expand Up @@ -1144,7 +1152,7 @@ export class ScriptService {
}

isInstalled({ name, namespace }: { name: string; namespace: string }): Promise<App.IsInstalledResponse> {
// 用於 window.external
// 用于 window.external
return this.scriptDAO.findByNameAndNamespace(name, namespace).then((script) => {
if (script) {
return {
Expand Down
1 change: 0 additions & 1 deletion src/locales/ach-UG/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,6 @@
"develop_mode_guide": "crwdns8624:0crwdne8624:0",
"allow_user_script_guide": "crwdns8626:0crwdne8626:0",
"lower_version_browser_guide": "crwdns8628:0crwdne8628:0",
"confirm_leave_page": "crwdns8634:0crwdne8634:0",
"page_in_blacklist": "crwdns8636:0crwdne8636:0",
"baidu_netdisk": "crwdns8638:0crwdne8638:0",
"save_only_current_group": "crwdns8640:0crwdne8640:0",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/de-DE/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "'Nutzerskripts zulassen' ist derzeit nicht aktiviert, daher können die Skripte nicht richtig ausgeführt werden. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉Hier klicken, um zu erfahren, wie man es aktiviert</a>",
"lower_version_browser_guide": "Ihr Browser ist zu veraltet, daher können die Skripte nicht richtig ausgeführt werden. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉Hier klicken, um mehr zu erfahren</a>",
"click_to_reload": "👉Zum Neuladen klicken",
"confirm_leave_page": "Derzeit im Bearbeitungsstatus. Das Navigieren zu anderen Seiten führt zum Verlust des aktuellen Inhalts. Navigieren?",
"page_in_blacklist": "Die aktuelle Seite ist auf der Blacklist und kann keine Skripte verwenden",
"baidu_netdisk": "Baidu Netdisk",
"netdisk_unbind": "{{provider}} trennen",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "Ausdrucksformat-Fehler",
"migration_confirm_message": "Das erneute Versuchen der Speicher-Engine-Migration wird vorhandene Daten ändern. Bitte bestätigen Sie. Details siehe: https://docs.scriptcat.org/docs/change/v0.17/",
"retry_migration": "Speicher-Engine-Migration erneut versuchen",
"script_modified_leave_confirm": "Skript wurde geändert. Das Verlassen führt zum Verlust der Änderungen. Fortfahren?",
"script_modified_leave_confirm": "Ihre Änderungen wurden noch nicht gespeichert. Wenn Sie die Seite verlassen, gehen die Änderungen verloren. Möchten Sie die Seite wirklich verlassen?",
"create_success_note": "Erstellung erfolgreich. Beachten Sie, dass Hintergrundskripte standardmäßig nicht aktiviert werden",
"save_as_failed": "Speichern unter fehlgeschlagen",
"save_as_success": "Speichern unter erfolgreich",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/en-US/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "'Allow User Scripts' is currently not enabled, so the scripts cannot run properly. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉tap to learn how to enable</a>",
"lower_version_browser_guide": "Your browser is too outdated, so the scripts cannot run properly. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉Click me to learn more</a>",
"click_to_reload": "👉Click to Reload",
"confirm_leave_page": "Currently editing status. Leaving this page will lose the current content. Do you want to leave?",
"page_in_blacklist": "The current page is blacklisted, cannot use script",
"baidu_netdisk": "BaiduNetdisk",
"netdisk_unbind": "Unbind {{provider}}",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "Condition expression format error",
"migration_confirm_message": "Retry the migration storage engine to modify existing data. Please confirm, see:https://docs.scriptcat.org/docs/change/v0.17/.",
"retry_migration": "Retry Migration Storage Engine",
"script_modified_leave_confirm": "The script has been modified. Changes will be lost after leaving, continue?",
"script_modified_leave_confirm": "Your changes have not been saved. If you leave, your changes will be lost. Are you sure you want to leave?",
"create_success_note": "New script successfully created. Note that the background script will not be enabled by default.",
"save_as_failed": "Save As Failed",
"save_as_success": "Saved Successfully",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/ja-JP/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "現在「ユーザー スクリプトを許可する」が有効ではないため、スクリプトは正常に動作しません。<a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉有効化の方法はこちら</a>",
"lower_version_browser_guide": "ご使用のブラウザは古すぎるため、スクリプトは正常に動作しません。<a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉詳しくはこちら</a>",
"click_to_reload": "👉再読み込みする",
"confirm_leave_page": "現在編集中です。他のページに移動すると現在の内容が失われます。移動しますか?",
"page_in_blacklist": "現在のページはブラックリストにあり、スクリプトを使用できません",
"baidu_netdisk": "百度ネットディスク",
"netdisk_unbind": "{{provider}} の連携を解除",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "式フォーマットエラー",
"migration_confirm_message": "ストレージエンジンの移行を再試行すると既存のデータが変更されます。確認してください。詳細はこちら:https://docs.scriptcat.org/docs/change/v0.17/",
"retry_migration": "ストレージエンジンの移行を再試行",
"script_modified_leave_confirm": "スクリプトが変更されています。離れると変更が失われます。続行しますか?",
"script_modified_leave_confirm": "現在の内容はまだ保存されていません。このままページを離れると変更は失われます。よろしいですか?",
"create_success_note": "作成に成功しました。バックグラウンドスクリプトはデフォルトで有効になりませんのでご注意ください",
"save_as_failed": "名前を付けて保存に失敗しました",
"save_as_success": "名前を付けて保存に成功しました",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/ru-RU/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "«Разрешить пользовательские скрипты» сейчас отключён, поэтому скрипты не могут работать корректно. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉Нажмите, чтобы узнать, как включить</a>",
"lower_version_browser_guide": "Ваш браузер слишком устарел, поэтому скрипты не могут работать корректно. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉Нажмите, чтобы узнать подробнее</a>",
"click_to_reload": "👉Нажмите для перезагрузки",
"confirm_leave_page": "В настоящее время идет редактирование. Переход на другую страницу приведет к потере текущего содержимого. Продолжить переход?",
"page_in_blacklist": "Текущая страница находится в черном списке, невозможно использовать скрипты",
"baidu_netdisk": "Baidu Netdisk",
"netdisk_unbind": "Отвязать {{provider}}",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "Ошибка формата выражения",
"migration_confirm_message": "Повторная попытка миграции движка хранения изменит существующие данные. Пожалуйста, подтвердите. Подробности см.: https://docs.scriptcat.org/docs/change/v0.17/",
"retry_migration": "Повторить миграцию движка хранения",
"script_modified_leave_confirm": "Скрипт был изменен. Изменения будут потеряны после выхода. Продолжить?",
"script_modified_leave_confirm": "Изменения не сохранены. Если вы покинете страницу, они будут потеряны. Вы уверены, что хотите уйти?",
"create_success_note": "Создание успешно. Обратите внимание, что фоновые скрипты не включаются по умолчанию",
"save_as_failed": "Ошибка «Сохранить как»",
"save_as_success": "«Сохранить как» успешно",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/vi-VN/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "'Cho phép tập lệnh người dùng' hiện chưa được bật, nên các script không thể hoạt động đúng cách. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉Nhấn để xem cách bật</a>",
"lower_version_browser_guide": "Trình duyệt của bạn quá cũ, nên các script không thể hoạt động đúng cách. <a href=\"https://docs.scriptcat.org/en/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉Nhấn để xem thêm</a>",
"click_to_reload": "👉Nhấp chuột để tải lại",
"confirm_leave_page": "Hiện đang ở trạng thái chỉnh sửa. Rời khỏi trang này sẽ làm mất nội dung hiện tại. Bạn có muốn rời đi không?",
"page_in_blacklist": "Trang hiện tại nằm trong danh sách đen, không thể sử dụng script",
"baidu_netdisk": "Baidunetdisk",
"netdisk_unbind": "Hủy liên kết {{provider}}",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "Lỗi định dạng biểu thức điều kiện",
"migration_confirm_message": "Thử lại công cụ lưu trữ di chuyển để sửa đổi dữ liệu hiện có. Vui lòng xác nhận, xem: https://docs.scriptcat.org/docs/change/v0.17/.",
"retry_migration": "Thử lại công cụ lưu trữ di chuyển",
"script_modified_leave_confirm": "Script đã được sửa đổi. Các thay đổi sẽ bị mất sau khi rời đi, tiếp tục?",
"script_modified_leave_confirm": "Nội dung hiện chưa được lưu. Nếu rời khỏi trang, các thay đổi sẽ bị mất. Bạn có chắc chắn muốn rời đi không?",
"create_success_note": "Script mới được tạo thành công. Lưu ý rằng script nền sẽ không được bật theo mặc định.",
"save_as_failed": "Lưu thành thất bại",
"save_as_success": "Lưu thành công",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/zh-CN/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "当前未启用“允许运行用户脚本”,脚本无法正常运行。<a href=\"https://docs.scriptcat.org/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉点击查看启用方法</a>",
"lower_version_browser_guide": "您的浏览器版本过低,脚本无法正常运行。<a href=\"https://docs.scriptcat.org/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉点击了解更多</a>",
"click_to_reload": "👉点击重新加载",
"confirm_leave_page": "当前正在编辑状态,跳转其它页面将会丢失当前内容,是否跳转?",
"page_in_blacklist": "当前页面在黑名单中,无法使用脚本",
"baidu_netdisk": "百度网盘",
"netdisk_unbind": "解除绑定 {{provider}}",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "表达式格式错误",
"migration_confirm_message": "重试迁移储存引擎会对现有数据造成修改,请确认,详情请看:https://docs.scriptcat.org/docs/change/v0.17/",
"retry_migration": "重试迁移储存引擎",
"script_modified_leave_confirm": "脚本已修改, 离开后会丢失修改, 是否继续?",
"script_modified_leave_confirm": "当前内容尚未保存,离开后更改将丢失,确定要离开吗?",
"create_success_note": "新建成功,请注意后台脚本不会默认开启",
"save_as_failed": "另存为失败",
"save_as_success": "另存为成功",
Expand Down
3 changes: 1 addition & 2 deletions src/locales/zh-TW/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,6 @@
"allow_user_script_guide": "目前尚未啟用「允許使用者指令碼」,腳本無法正常執行。<a href=\"https://docs.scriptcat.org/docs/use/open-dev/?browser={{browser}}\" target=\"black\" style=\"color: var(--color-text-1)\">👉點此查看啟用方式</a>",
"lower_version_browser_guide": "您的瀏覽器版本過舊,腳本無法正常執行。<a href=\"https://docs.scriptcat.org/docs/use/open-dev/\" target=\"black\" style=\"color: var(--color-text-1)\">👉點擊了解更多</a>",
"click_to_reload": "👉點擊重新載入",
"confirm_leave_page": "目前正在編輯狀態,跳轉其他頁面將會遺失目前內容,是否跳轉?",
"page_in_blacklist": "目前頁面在黑名單中,無法使用腳本",
"baidu_netdisk": "百度網盤",
"netdisk_unbind": "解除綁定 {{provider}}",
Expand All @@ -448,7 +447,7 @@
"expression_format_error": "表達式格式錯誤",
"migration_confirm_message": "重試遷移儲存引擎會對現有資料造成修改,請確認,詳情請參閱:https://docs.scriptcat.org/docs/change/v0.17/",
"retry_migration": "重試遷移儲存引擎",
"script_modified_leave_confirm": "腳本已修改,離開後會遺失修改,是否繼續?",
"script_modified_leave_confirm": "目前內容尚未儲存,離開後變更將會遺失,確定要離開嗎?",
"create_success_note": "新建成功,請注意背景腳本不會預設開啟",
"save_as_failed": "另存新檔失敗",
"save_as_success": "另存新檔成功",
Expand Down
3 changes: 2 additions & 1 deletion src/pages/components/CustomLink/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ const CustomLink: React.FC<{

const click = () => {
if (window.onbeforeunload) {
if (confirm(t("confirm_leave_page"))) {
// 目前仅用于 ScriptEditor 编辑内容修改提示
if (confirm(t("script_modified_leave_confirm"))) {
nav({
pathname: to,
search,
Expand Down
Loading
Loading