downloadmanager/Readme.md
Robert Morrison 9a1838becc
EVIL COMMIT!
That one evil commit that means you've actually started development like
a real developer.
But before that you just wrote things
2023-05-12 22:58:58 +01:00

1.8 KiB

DownloadManager

WARNING: this is WIP code and currently does NOT work properly

A simple yet complex program to do something dumb.

Basically write rules, run the program and watch your files fall in to line. No more cluttered download folders.

Features

You can currently

  • Write rules
  • Run rules

Coming someday

Future features include.

  • A built in rule editor/validator
  • Command line options (the framework is there just need the implementation)
  • More/Better output
  • Interactive mode (E.G "Do you want to do this.")
  • Pre-apply and Apply stages separated
    • This allows for the showing of "SOME FILES -> Destination, OTHER FILES -> Other destination"
    • Also makes confirmation on batches easier.
    • could also allow for making the Apply stage async, allowing the UI to update as files are moved (progress bar much?)

Rules

Rules are written in JSON and must contain all 4 values to be loaded properly, any malformed rules will not be loaded with the errors logged.

NOTE: For now ALL paths must be absolute. This is due to C# being generally designed around windows and as such not having the features to handle unix style paths e.g ~/Downloads. In the future I plan to add replace ~ at the start of a path with the running users home directory.

Type is an integer that represents how to match the pattern

  1. Exact match (Implemented)
  2. Regex matching (Being written)
  3. Shell style globbing (This may never happen as it seems hard to do and kinda redundant with regex)
  4. Danbooru - this is a special match type that doesn't use the pattern field, instead it find files that are likely to be from danbooru (prefixed with __) and then sorts them based on their aspect ratio.
{
	"Name" : "Example Rule",
	"Type" : 1,
	"Pattern" : "File.File",
	"Destination" : "/Directory"
}