Skip to content

Commit

Permalink
🐛 修复网盘同步脚本覆盖问题
Browse files Browse the repository at this point in the history
  • Loading branch information
CodFrm committed Jun 29, 2023
1 parent d059ef7 commit e4bd5d4
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
43 changes: 23 additions & 20 deletions src/pages/import/App.tsx
Expand Up @@ -30,7 +30,7 @@ import ScriptController from "@App/app/service/script/controller";
import ValueController from "@App/app/service/value/controller";

type ScriptData = ScriptBackupData & {
script?: Script & { oldScript?: Script };
script?: { script: Script; oldScript?: Script };
install: boolean;
error?: string;
};
Expand Down Expand Up @@ -69,9 +69,10 @@ function App() {
const prepareScript = await prepareScriptByCode(
item.code,
item.options?.meta.file_url || "",
item.options?.meta.sc_uuid || undefined
item.options?.meta.sc_uuid || undefined,
true
);
item.script = prepareScript.script;
item.script = prepareScript;
} catch (e: any) {
item.error = e.toString();
return Promise.resolve(item);
Expand All @@ -80,27 +81,27 @@ function App() {
item.options = {
options: {} as ScriptOptions,
meta: {
name: item.script.name,
name: item.script?.script.name,
// 此uuid是对tm的兼容处理
uuid: item.script.uuid,
sc_uuid: item.script.uuid,
file_url: item.script.downloadUrl || "",
modified: item.script.createtime,
subscribe_url: item.script.subscribeUrl,
uuid: item.script?.script.uuid,
sc_uuid: item.script?.script.uuid,
file_url: item.script?.script.downloadUrl || "",
modified: item.script?.script.createtime,
subscribe_url: item.script?.script.subscribeUrl,
},
settings: {
enabled:
item.enabled === false
? false
: !(
item.script.metadata.background ||
item.script.metadata.crontab
item.script?.script.metadata.background ||
item.script?.script.metadata.crontab
),
position: 0,
},
};
}
item.script.status =
item.script.script.status =
item.enabled !== false && item.options.settings.enabled
? SCRIPT_STATUS_ENABLE
: SCRIPT_STATUS_DISABLE;
Expand Down Expand Up @@ -129,7 +130,7 @@ function App() {
const result = scripts.map(async (item) => {
const ok = true;
if (item.install && !item.error) {
const resp = await scriptCtrl.upsert(item.script!);
const resp = await scriptCtrl.upsert(item.script?.script!);
// 导入数据
const { data } = item.storage;
Object.keys(data).forEach((key) => {
Expand Down Expand Up @@ -236,17 +237,17 @@ function App() {
color: "rgb(var(--blue-5))",
}}
>
{item.script?.name || item.error || t("unknown")}
{item.script?.script?.name || item.error || t("unknown")}
</Typography.Title>
<span className="text-sm color-gray-5">
{t("author")}:{" "}
{item.script?.metadata.author &&
item.script?.metadata.author[0]}
{item.script?.script?.metadata.author &&
item.script?.script?.metadata.author[0]}
</span>
<span className="text-sm color-gray-5">
{t("description")}:{" "}
{item.script?.metadata.description &&
item.script?.metadata.description[0]}
{item.script?.script?.metadata.description &&
item.script?.script?.metadata.description[0]}
</span>
<span className="text-sm color-gray-5">
{t("source")}:{" "}
Expand Down Expand Up @@ -276,10 +277,12 @@ function App() {
<div className="text-center">
<Switch
size="small"
checked={item.script?.status === SCRIPT_STATUS_ENABLE}
checked={
item.script?.script?.status === SCRIPT_STATUS_ENABLE
}
onChange={(checked) => {
setScripts((prev) => {
prev[index].script!.status = checked
prev[index].script!.script.status = checked
? SCRIPT_STATUS_ENABLE
: SCRIPT_STATUS_DISABLE;
return [...prev];
Expand Down
8 changes: 3 additions & 5 deletions src/pkg/utils/script.ts
Expand Up @@ -228,7 +228,8 @@ export function strToBase64(str: string): string {
export function prepareScriptByCode(
code: string,
url: string,
uuid?: string
uuid?: string,
override?: boolean
): Promise<{ script: Script; oldScript?: Script }> {
const dao = new ScriptDAO();
return new Promise((resolve, reject) => {
Expand Down Expand Up @@ -304,14 +305,11 @@ export function prepareScriptByCode(
let old: Script | undefined;
if (uuid) {
old = await dao.findByUUID(uuid);
if (!old && url) {
if (!old && override) {
old = await dao.findByNameAndNamespace(script.name, script.namespace);
}
} else {
old = await dao.findByNameAndNamespace(script.name, script.namespace);
if (!old) {
old = await dao.findByUUID(script.uuid);
}
}
if (old) {
if (
Expand Down

0 comments on commit e4bd5d4

Please sign in to comment.