FileSieve 4

This is the tracker for FileSieve 4.

If you have a bug report, feature, or suggestion, then please add a new task. Creating an account will allow you to keep track of your tasks and their status.

IDCategoryTask TypePrioritySeverity  descSummaryStatusProgress
24Backend / CoreBug Report (major)HighHighNo processed items prevents BeginInvoke from workingAssigned
0%
Task Description

Example: Classification Method not finding any matches if no items are processed.

The problem appears to be related to there being items to be processed, but they have all been set to Item.IsProcessed = False. This means that no items have been processed, which seems to cause a problem with the Windows Taskbar progress indicator.

Fixing this will have to be an ongoing process; in the meantime, EnableTaskbarProgress has been added to Settings - Advanced and should be set to False should the issue of the FileSieve window staying disabled after processing has completed.

278PluginBug Report (major)HighHighTag (and possibly EXIF?) Method doesn't rename actual f...Assigned
0%
Task Description

The Tag plugin is where the issue was found; the EXIF plugin will be investigated later.

The Tag plugin doesn’t actually rename processed files, but instead just creates directories based on the entered Name Mask.

Was this the original intention? Doesn’t seem anywhere near as useful as also being able to rename the files.

For example, original file:

  • my_song.mp3

Name Mask: %ALBUM_TITLE%\%TITLE%.%FILE_EXTENSION%

This results in:

  • My Album\My Song.mp3\my_song.mp3

It should be:

  • My Album\My Song.mp3

The original filename for the file doesn’t get changed by FileSieve when it gets processed. FileSieve doesn’t seem to modify the filename at all.

That can’t be right?

7PluginFeatureMediumMediumMethod: Size. Sort items based on Smallest/Largest/etcAssigned
40%
Task Description

This will be a FileSieve v4 update of the v3 plugin, with additional features.

8PluginFeatureMediumMediumMethod: Script. Allows users to write their own Method ...Assigned
40%
Task Description

If possible, extend this to Modifiers. Custom Modifers scripts was originally intended, but I can’t seem to remember why that’s a no-go.

Pressing Escape in any non-code editor should give focus to the code editor. This is VERY important and why I hate most code editors.

15Backend / CoreBug Report (minor)LowMediumMemory is not being released in a timely manner after p...Assigned
0%
Task Description

This may be down to the Windows API call FindNextFile() and file handles.

While it may not actually be a problem, I’d rather not use more memory the more files that are processed - even if memory usage goes up by just a few hundred megabytes for 4 to 5 million files, eliminating this memory usage would still be a win.

33Backend / CoreEnhancementMediumMediumPlugins need to dictate to FS what ultimately happens w...Assigned
0%
Task Description

Rather than just indicating what should happen to source items via the Copy Mode, plugins need to have the ultimate say in what happens to items/files during processing.

For example, the Archive Modifier compresses items into the destination location and the original file needs to either ignored (if Copy Mode is set to Copy), or deleted (if Copy Mode is set to Move).

The plugin(s) will then need to say “Okay, ignore/delete the original file but count it as being processed”.

The Delete functionality is implemented via the Item.DeletionMode property that is set via plugins, but this more than likely needs to be rolled into a general ProcessMode property to incorporate different types of outcomes that the plugin requires and FileSieve knows about.

41Backend / CoreEnhancementMediumMediumAdd a version number to AppFramework system settings to...Assigned
0%
Task Description

no task description

176Backend / CoreChangeMediumMediumChange Regex substitution character from | to $Assigned
0%
Task Description

The internal regular expression engine in .NET uses the dollar symbol for referencing captures groups; change FileSieve so it uses that character and invoke the .NET Regex.Replace() method instead of using custom code.

4PluginFeatureLowLowMethod: Duplicate. Find duplicate items.Assigned
50%
Task Description

no task description

12Backend / CoreEnhancementLowLowSplit Source Item pre-scanning across multiple threadsAssigned
40%
Task Description

Threaded pre-scanning is partially in-place, but an effective thread initialiser is halting things. It needs to be intelligent so that it can determine the correct number of threads to be used in all cases, from number of files to if files reside on the same or different physical media.

This has the potential for enormous speed gains.

13Backend / CoreEnhancementLowLowImplement regex capture groups where appropriateAssigned
0%
Task Description

Being able to reference capture groups would be very useful.

17Backend / CoreEnhancementDeferLowAdd YieldNoPreScan to Get Files Mode in the Source Item...Researching
0%
Task Description

Or add a checkbox to the Source Item advanced settings that says “Do not perform a pre-scan” as it’s not actually mutually-exclusive with the current Get Files Mode.

This needs to be thought out better from a code point-of-view.

Leaving for now.

20Backend / CoreEnhancementLowLowRewrite the copying code to report copy progress to giv...Assigned
0%
Task Description

The CopyFileEx copying code was written for something else but it would be perfect for FileSieve as it gives information on the status of the current copy progress and supports checksum verification for copied files.

Must support copying to/from network paths.

22Backend / CoreEnhancementLowLowAdd Move copy mode support to multiple destinationsAssigned
0%
Task Description

Moving files to destination mirrors would probably be more useful than just copying them, but this will require significant core changes that it’ll take a while to implement.

Need to tread carefully as a lot of stuff could get broken.

27PluginFeatureLowLowModifier: Secure DeleteAssigned
30%
Task Description

This won’t be as easy as implementing a traditional plugin as it will possibly require core changes that touches lots of areas.

28PluginFeatureLowLowMethod: Find content within filesAssigned
0%
Task Description

Take information out of files and use that information to create directories.

This will no-doubt need to be text-based.

30InterfaceEnhancementLowLowImprove the UI (especially for plugin editors) and make...Assigned
0%
Task Description

The UI for some plugin editors are a bit all-over-the-place and need cleaning up.

The UIs for regular expressions need some thought as the concept is confusing to users that have never used it before and FileSieve needs to offer as much help with them as possible. Also, regex capture groups will need to be implemented and the UI should account for that/offer as much help as possible.

32Backend / CoreFeatureLowLowA full system of filetypesAssigned
0%
Task Description

A database of filetypes that the Item Editor can use.

The database will need to be exposed via the API so other plugins can make use of it, such as the Classification plugin.

Maybe create a web-service that FileSieve can connect to to update its database, but that’s more than likely overkill as it’s doubtful I’ll have any other applications that can make use of this information.

37PluginFeatureLowLowModifier: ArchiveAssigned
60%
Task Description

Allow the archiving of processed items.

156Backend / CoreFeatureLowLowAdd support for a centralised serverAssigned
0%
Task Description

To make the Enterprise Edition more suited for an enterprise environment, add support for storing settings/profiles/etc on a remote server that FileSieve can sync to that data.

159Backend / CoreFeatureLowLowIntegrate BiQubic.BugsAssigned
0%
Task Description

Add support for the BiQubic.Bugs exception library.

Once it has been rewritten, anyway. On top of that, should it submit exceptions to this tracker instead of its own site? Not really sure.

178Backend / CoreFeatureLowLowAllow adding profiles to the Windows Explorer context m...New
0%
Task Description

Allow the user to add specific profiles to the Windows Explorer right-click shell context menu so profiles can be quickly run on a directory.

“Shell codes” (eg. %shell_file1%) will need to be added in various parts of FileSieve so Explorer folders/files can be referenced and acted upon.

237Backend / CoreBug Report (major)DeferLowInactive Modifiers are not saving their settingsAssigned
0%
Task Description

Changing a Modifier’s settings, Okaying the Modifier window, and reopening it shows the changed settings as expected; but restarting the application shows the original settings before the save.

250InterfaceOverhaulLowLowOverhaul the Profile Manager UIAssigned
20%
Task Description

The Trigger system should be consolidated into the Profile Manager, and any future features - such as Thread Settings - can easily be added without cluttering up the main window UI.

252Backend / CoreFeatureLowLowAdd Profile presetsAssigned
0%
Task Description

Add some Profile presets.

264InterfaceBug Report (minor)LowLowAllow re-ordering of nodes without changing ParentAssigned
0%
Task Description

Allow the re-ordering of Nodes rather than just allowing Nodes to have their Parent changed.

275InterfaceEnhancementLowLowBetter Processing ResultsAssigned
0%
Task Description

After processing, show detailed information on what happened. For example, the Skipped Items stat doesn’t actually give you useful information on what was actually skipped. The Log is a pain in the arse for determining that information (if at all; had a quick look but couldn’t find anything, so don’t know if it actually says what was skipped or not!).

Give full info on what was skipped, errored, etc - and why.

291Backend / CoreFeatureLowLowAllow settings changes via AutomationAssigned
20%
Task Description

Now that FileSieve supports automation, being able to modify settings could prove useful.

This would primarily be used from within an AutoFile, but as it works the same way as command-line automation, it would be accessible from both.

Some kind of generic way of setting a value would be best. For example (temporary names and syntax):

  set:key=value

This would set the key setting to value.

Would the Profile command be changed to use this? Or is that an actual command, whereas the above is just a property change? Not sure.

3Backend / CoreTestVery LowVery LowTest Portable ModeRequires testing
0%
Task Description

Changing between standard and portable mode and having FileSieve automatically rearrange the settings won’t be implemented. This was enough of a nightmare with WoLEX!

5InterfaceEnhancementVery LowVery LowLanguage SupportAssigned
10%
Task Description

Convert all literal strings over to BiQubic.Suite.AppFramework‘s translation system, which also needs completing.

6Backend / CoreFeatureVery LowVery LowAdd a transaction log of all I/O changes made after a s...Assigned
0%
Task Description

If a detailed-enough log is kept of a full “processing”, then maybe this’ll allow the possibility of “undoing” a processing after-the-fact?

Would need proper planning and checks in place as it could get somewhat messy if anything unexpected happens.

10InterfaceBug Report (minor)Very LowVery LowEnsure all mnemonics are unique for each formAssigned
0%
Task Description

There are conflicts between mnemonics on the main form due to somewhat forgetting that they need to be unique to the entire form and not just the panel the relevant controls are on.

There are a lot of controls across all the containers, so this’ll need a bit of planning.

14Backend / CoreEnhancementVery LowVery LowAdditional exception handlingAssigned
0%
Task Description

Ensure there isn’t any locations where an error can bring down the entire application.

16InterfaceEnhancementVery LowVery LowComplete the full Description property for all Methods ...Assigned
20%
Task Description

no task description

18InterfaceEnhancementVery LowVery LowChange the menu to use the user's custom operating syst...Assigned
0%
Task Description

no task description

19PluginEnhancementVery LowVery LowMethod: Quantity; add file size "Best fit"Assigned
0%
Task Description

Add a Best Fit that will attempt to place files into groups of a certain filesize.

See Knapsack Problem.

23Backend / CoreEnhancementVery LowVery LowLive PreviewAssigned
0%
Task Description

A live preview of the current settings while they’re being edited.

FileSieve wasn’t designed with this capability in mind, and so this would need to be thought out and tested at every step - multiple times.

25InterfaceEnhancementVery LowVery LowMethod.Classification: Add more items within the Preset...Assigned
0%
Task Description

The population code has been made modular in preparation for this addition.

26InterfaceEnhancementVery LowVery LowMethod.Classification: Add drop-down next to RegEx text...Assigned
0%
Task Description

no task description

248Backend / CoreOverhaulVery LowVery LowDecouple Profile processing from the UIAssigned
0%
Task Description

To allow the simultaneous processing of multiple profiles and to allow the Trigger system to fire for more than one profile at a time, profile processing will need to be decoupled from the user interface.

Requires some thought, especially when it comes to showing the fact that multiple profiles are being processed at the same time.

274InterfaceOverhaulVery LowVery LowRedesign the Log windowAssigned
0%
Task Description

The Log window is, honestly, kind of irritating when trying to determine what has happened when something hasn’t quite worked how it should’ve.

279PluginFeatureVery LowVery LowMethod.Tag: Add additional substitution/formatting char...Assigned
0%
Task Description

Add a ton of additional formatting options and configurability(?) such as back in the days of Elixir. Maybe put such options within an Advanced section or something, to keep the main interface clean.

282InterfaceEnhancementVery LowVery LowSet Method/Modifier label colour depending on settingsAssigned
0%
Task Description

The Method and Modifier labels on the Options tab should be colour-coded depending on the status of the respective Method and Modifier.

If no Method is set, then colour the Method label red. If a Method is set but it doesn’t have valid/sane settings, then colour the label orange-ish.

Ditto for the Modifiers label, except for the red = no Modifier set as that’s valid.

289PluginFeatureLowVery LowMethod.Rules. Drag/drop rule matching.Assigned
10%
Task Description

Create a new Method that determines what to do based on a rule set created by the user.

If example, you can add an IF rule that will perform a check and if it’s True, it’ll continue running through the rest of the rules. Or maybe it’ll allow other arbitrary things to be performed.

Not too easy to explain, but imagine a wizard but geared more towards logic.

The most amount of work here is designing the interface.

Showing tasks 1 - 44 of 44 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing