Muffin.Pictures.Archiver


Muffin.Pictures.Archiver

Small bit of context

Archiver - pet project that archives pictures based on their date taken.

Pictures - what it's supposed to be used for.

Muffin - the name of our NAS, where I'll run this application (wife got to choose the name).

Muffin.Pictures.Archiver is my personal learning project for:

  • F#
  • ProjectScaffold
  • OctopusDeploy
  • Mono

Archiver takes a folder with pictures, and tries to organize the pictures by date taken.

Archiver tries to find out when a pictures was taken based on the picture's XMP-xmp:CreateDate or ExifIFD:CreateDate tag, and moves them to folders based on the year-month.

If Archiver cannot find the time taken through EXIF tags, it can optionally fall back to the Date Modified of the file.

Getting started

See how to build and run the application.

See how to configure the application.

Example

Running Archiver with default settings, the following files at sourcedir

1: 
2: 
3: 
4: 
5: 
| File  | DateTaken        | Date Modified    |
| ----- | ---------------- | ---------------- |
| File1 | 2015-02-03 17:23 | 2014-02-03 17:23 |
| File2 |                  | 2014-07-03 17:23 |
| File3 | 2014-07-14 08:25 | 2015-01-20 22:59 |

will result in the following structure at destinationDir. File2 is skipped because Archiver could not find a Date Taken

1: 
2: 
3: 
4: 
5: 
.
|-- 2015-02
    |-- File1
|-- 2014-07
    |-- File3

Running the archiver with fallback mode enabled will also move File2, based on it's Date Modified tag:

1: 
2: 
3: 
4: 
5: 
6: 
.
|-- 2015-02
    |-- File1
|-- 2014-07
    |-- File2
    |-- File3

Contributing and copyright

The project is hosted on GitHub where you can report issues, fork the project and submit pull requests. If you're adding a new public API, please also consider adding samples that can be turned into a documentation. You might also want to read the library design notes to understand how it works.

The application is available under Public Domain license, which allows modification and redistribution for both commercial and non-commercial purposes. For more information see the License file in the GitHub repository.

Fork me on GitHub