Skip to content

Commit 75c4522

Browse files
committed
🐛 修复同步功能删除会恢复的问题
1 parent e5b2e3b commit 75c4522

File tree

2 files changed

+35
-26
lines changed

2 files changed

+35
-26
lines changed

package-lock.json

Lines changed: 10 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/service/synchronize/manager.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,13 @@ export default class SynchronizeManager extends Manager {
150150
};
151151
freeFn.push(() => ScriptManager.hook.removeListener("upsert", upsertFn));
152152
ScriptManager.hook.addListener("upsert", upsertFn);
153-
if (config.syncDelete) {
154-
// 监听脚本删除事件
155-
const deleteFn = (script: Script) => {
156-
this.deleteCloudScript(fs, script);
157-
};
158-
ScriptManager.hook.addListener("delete", deleteFn);
159-
freeFn.push(() => ScriptManager.hook.removeListener("delete", deleteFn));
160-
}
153+
154+
// 监听脚本删除事件
155+
const deleteFn = (script: Script) => {
156+
this.deleteCloudScript(fs, script, config.syncDelete);
157+
};
158+
ScriptManager.hook.addListener("delete", deleteFn);
159+
freeFn.push(() => ScriptManager.hook.removeListener("delete", deleteFn));
161160

162161
// 先设置固定一小时同步一次吧
163162
const ts = setInterval(async () => {
@@ -309,7 +308,7 @@ export default class SynchronizeManager extends Manager {
309308
}
310309

311310
// 删除云端脚本数据
312-
async deleteCloudScript(fs: FileSystem, script: Script) {
311+
async deleteCloudScript(fs: FileSystem, script: Script, syncDelete: boolean) {
313312
const filename = `${script.uuid}.user.js`;
314313
const logger = this.logger.with({
315314
scriptId: script.id,
@@ -318,17 +317,23 @@ export default class SynchronizeManager extends Manager {
318317
});
319318
try {
320319
await fs.delete(filename);
321-
// 留下一个.meta.json删除标记
322-
const meta = await fs.create(`${script.uuid}.meta.json`);
323-
await meta.write(
324-
JSON.stringify(<SyncMeta>{
325-
uuid: script.uuid,
326-
origin: script.origin,
327-
downloadUrl: script.downloadUrl,
328-
checkUpdateUrl: script.checkUpdateUrl,
329-
isDeleted: true,
330-
})
331-
);
320+
if (syncDelete) {
321+
// 留下一个.meta.json删除标记
322+
const meta = await fs.create(`${script.uuid}.meta.json`);
323+
await meta.write(
324+
JSON.stringify(<SyncMeta>{
325+
uuid: script.uuid,
326+
origin: script.origin,
327+
downloadUrl: script.downloadUrl,
328+
checkUpdateUrl: script.checkUpdateUrl,
329+
isDeleted: true,
330+
})
331+
);
332+
} else {
333+
// 直接删除所有相关文件
334+
await fs.delete(filename);
335+
await fs.delete(`${script.uuid}.meta.json`);
336+
}
332337
logger.info("delete success");
333338
} catch (e) {
334339
logger.error("delete file error", Logger.E(e));

0 commit comments

Comments
 (0)