From bff2f6a642eecf1d9406d639ec00437a172e56ac Mon Sep 17 00:00:00 2001 From: fyears <1142836+fyears@users.noreply.github.com> Date: Tue, 26 Mar 2024 23:39:53 +0800 Subject: [PATCH] clean protection for 100% --- src/langs/en.json | 2 +- src/sync.ts | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/langs/en.json b/src/langs/en.json index 7c6e523..2a2f864 100644 --- a/src/langs/en.json +++ b/src/langs/en.json @@ -23,7 +23,7 @@ "syncrun_shortstep2skip": "2/2 Remotely Save real sync is skipped in dry run mode.", "syncrun_shortstep2": "2/2 Remotely Save finished!", "syncrun_abort": "{{manifestID}}-{{theDate}}: abort sync, triggerSource={{triggerSource}}, error while {{syncStatus}}", - "syncrun_abort_protectmodifypercentage": "Abort! you set changing files >= {{protectModifyPercentage}}% is not allowed but {{realModifyDeleteCount}}/{{allFilesCount}}={{percent}}% is going to be modified or deleted! If you are sure you want this sync, please adjust the allowed ratio in the settings.", + "syncrun_abort_protectmodifypercentage": "Abort! you set changing files >= {{protectModifyPercentage}}% is not allowed but {{realModifyDeleteCount}}/{{allFilesCount}}={{percent}}% is going to be modified or deleted! If you are sure you want this sync, please adjust the allowed ratio in the settings.", "protocol_saveqr": "New not-oauth2 settings for {{manifestName}} is saved. Reopen the plugin settings to make it effective.", "protocol_callbacknotsupported": "Your uri calls a callback that's not supported yet: {{params}}", "protocol_dropbox_connecting": "Connecting to Dropbox...\nPlease DO NOT close this modal.", diff --git a/src/sync.ts b/src/sync.ts index c3ec554..eea0511 100644 --- a/src/sync.ts +++ b/src/sync.ts @@ -888,7 +888,7 @@ const splitThreeStepsOnEntityMappings = ( } realTotalCount += 1; - if (val.decision.startsWith("deleted")) { + if (val.decision.includes("deleted")) { realModifyDeleteCount += 1; } } else if ( @@ -915,8 +915,8 @@ const splitThreeStepsOnEntityMappings = ( realTotalCount += 1; if ( - val.decision.startsWith("modified") || - val.decision.startsWith("conflict") + val.decision.includes("modified") || + val.decision.includes("conflict") ) { realModifyDeleteCount += 1; } @@ -1115,6 +1115,12 @@ export const doActualSync = async ( allFilesCount > 0 ) { if ( + protectModifyPercentage === 100 && + realModifyDeleteCount === allFilesCount + ) { + // special treatment for 100% + // let it pass, we do nothing here + } else if ( realModifyDeleteCount * 100 >= allFilesCount * protectModifyPercentage ) {