That one evil commit that means you've actually started development like a real developer. But before that you just wrote things
60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# 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.
|
|
|
|
```json
|
|
{
|
|
"Name" : "Example Rule",
|
|
"Type" : 1,
|
|
"Pattern" : "File.File",
|
|
"Destination" : "/Directory"
|
|
}
|
|
```
|