From 214ba134c401bebb20682d37e89f7d56a8d13091 Mon Sep 17 00:00:00 2001 From: David Maisonave <47364845+David-Maisonave@users.noreply.github.com> Date: Tue, 26 Nov 2024 19:52:21 -0500 Subject: [PATCH] First alpha release Added following features to 1.0.0 ### 1.0.0 - Consolidated buttons and links on report into dropdown buttons. - On report, added dropdown menu options for flags. - Rename Tools-UI advance duplicate tagged menu to [**Advance Duplicate File Deletion Menu**] - When [**Advance Duplicate File Deletion Menu**] completes report, gives user prompt to open the report in browser. - Added performance enhancement for removing (clearing) duplicate tags from all scenes by using SQL call. - Added option to report to delete files that do not exist by duplicate candidates in report, as well as by tagged files. - Added logic to disable scene in report if deleted by [**Advance Duplicate File Deletion Menu**]. Note: Requires a refresh. - Added report option to delete by flags set on the report. --- plugins/DupFileManager/DupFileManager.js | 2 +- plugins/DupFileManager/DupFileManager.py | 244 ++++++++++++++---- plugins/DupFileManager/DupFileManager.yml | 6 +- .../DupFileManager_report_config.py | 135 +++++++--- plugins/DupFileManager/README.md | 11 +- plugins/DupFileManager/StashPluginHelper.py | 16 ++ plugins/DupFileManager/advance_options.html | 35 ++- .../DupFileManager/version_history/README.md | 9 + plugins/FileMonitor/StashPluginHelper.py | 16 ++ plugins/RenameFile/StashPluginHelper.py | 16 ++ 10 files changed, 392 insertions(+), 98 deletions(-) diff --git a/plugins/DupFileManager/DupFileManager.js b/plugins/DupFileManager/DupFileManager.js index b62f0c0..4042fa1 100644 --- a/plugins/DupFileManager/DupFileManager.js +++ b/plugins/DupFileManager/DupFileManager.js @@ -60,7 +60,7 @@ const DupFileManagerReportMenuButton = React.createElement(Link, { to: "/plugin/DupFileManager", title: ReportMenuButtonToolTip }, React.createElement(Button, null, "DupFileManager Report Menu")); const ToolsMenuOptionButton = React.createElement(Link, { to: "/plugin/DupFileManager_ToolsAndUtilities", title: ToolsMenuToolTip }, React.createElement(Button, null, "DupFileManager Tools and Utilities")); function GetShowReportButton(LocalDuplicateReportPath, ButtonText){return React.createElement("a", { href: LocalDuplicateReportPath, title: ShowReportButtonToolTip}, React.createElement(Button, null, ButtonText));} - function GetAdvanceMenuButton(){return React.createElement("a", { href: AdvanceMenuOptionUrl, title: "Open link to the advance duplicate tagged menu."}, React.createElement(Button, null, "Show Advance Duplicate Tagged Menu"));} + function GetAdvanceMenuButton(){return React.createElement("a", { href: AdvanceMenuOptionUrl, title: "Open link to the [Advance Duplicate File Deletion Menu]."}, React.createElement(Button, null, "Show [Advance Duplicate File Deletion Menu]"));} function GetCreateReportNoTagButton(ButtonText){return React.createElement(Link, { to: "/plugin/DupFileManager_CreateReportWithNoTagging", title: CreateReportNoTagButtonToolTip }, React.createElement(Button, null, ButtonText));} function GetCreateReportButton(ButtonText){return React.createElement(Link, { to: "/plugin/DupFileManager_CreateReport", title: CreateReportButtonToolTip }, React.createElement(Button, null, ButtonText));} diff --git a/plugins/DupFileManager/DupFileManager.py b/plugins/DupFileManager/DupFileManager.py index cf44c8b..6f8d4d9 100644 --- a/plugins/DupFileManager/DupFileManager.py +++ b/plugins/DupFileManager/DupFileManager.py @@ -45,6 +45,7 @@ settings = { "zySwapBetterFrameRate": False, "zzDebug": False, "zzTracing": False, + "zzdryRun": False, "zzObsoleteSettingsCheckVer2": False, # This is a hidden variable that is NOT displayed in the UI @@ -69,6 +70,7 @@ stash = StashPluginHelper( DebugFieldName="zzDebug", ) stash.convertToAscii = True +dry_run = stash.Setting("zzdryRun") advanceMenuOptions = [ "applyCombo", "applyComboPinklist", "applyComboGraylist", "applyComboBlacklist", "pathToDelete", "pathToDeleteBlacklist", "sizeToDeleteLess", "sizeToDeleteGreater", "sizeToDeleteBlacklistLess", "sizeToDeleteBlacklistGreater", "durationToDeleteLess", "durationToDeleteGreater", "durationToDeleteBlacklistLess", "durationToDeleteBlacklistGreater", "commonResToDeleteLess", "commonResToDeleteEq", "commonResToDeleteGreater", "commonResToDeleteBlacklistLess", "commonResToDeleteBlacklistEq", "commonResToDeleteBlacklistGreater", "resolutionToDeleteLess", "resolutionToDeleteEq", "resolutionToDeleteGreater", @@ -565,6 +567,7 @@ htmlHighlightTimeDiff = stash.Setting('htmlHighlightTimeDiff') htmlPreviewOrStream = "stream" if stash.Setting('streamOverPreview') else "preview" def writeRowToHtmlReport(fileHtmlReport, DupFile, DupFileToKeep, QtyTagForDel = "?", tagDuplicates = False): + fileDoesNotExistStr = "[File NOT Exist]" htmlTagPrefix = '