{"_id":"@brencon/organize-photos","_rev":"2-76978a0e4d8f8f16d766f39fd9ef3853","name":"@brencon/organize-photos","dist-tags":{"latest":"1.4.1"},"versions":{"1.4.0":{"name":"@brencon/organize-photos","description":"Organize your photos and videos.","version":"1.4.0","author":{"name":"Brendan Conrad","email":"brendan.conrad@gmail.com"},"bin":{"organize-photos":"lib/cli.js"},"bugs":{"url":"https://github.com/lukekarrys/organize-photos/issues"},"dependencies":{"boxen":"^1.3.0","colors":"^1.3.0","dateformat":"^3.0.3","debug":"^3.1.0","dist-exiftool":"^10.53.0","fs-promise":"^2.0.3","klaw":"^2.1.1","node-exiftool":"^2.3.0","promise-streams":"^2.1.1","single-line-log":"^1.1.2","yargs":"^12.0.1"},"devDependencies":{"child-process-promise":"^2.2.1","git-validate":"^2.2.2","standard":"^11.0.1","tap-spec":"^5.0.0","tape":"^4.9.1"},"homepage":"https://github.com/brencon/organize-photos#readme","keywords":["photos"],"license":"MIT","main":"lib/index.js","pre-commit":["validate","lint","test"],"repository":{"type":"git","url":"git+ssh://git@github.com/brencon/organize-photos.git"},"scripts":{"lint":"standard","test":"NODE_ENV=test tape test/index.js | tap-spec","validate":"echo 'this is fine'"},"gitHead":"ce632107cfaf3794a1da23964fa7ca1b20cf86a5","_id":"@brencon/organize-photos@1.4.0","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"brencon","email":"brendan.conrad@gmail.com"},"dist":{"integrity":"sha512-rzwDOpZzFxQgVRyB2v4pIMQnrTXjeFMT/vdkYlz67lV1rQ0mKybupoEXfS9h31T6l7ODT/ByYH2Jk3WbDUk0Bw==","shasum":"5a547d9534014a6e83fae91d4fa01ff231111bce","tarball":"https://registry.npmjs.org/@brencon/organize-photos/-/organize-photos-1.4.0.tgz","fileCount":29,"unpackedSize":2305837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPoXvCRA9TVsSAnZWagAAUlUP/RyimM7Vms+PItEUJCuN\nyC2tidsqK8GEa6lp2V832rnejbAEJMv6nrh5ph6JV/gS2UyYDXxFekbuz0JS\n+e59y8x/6nGgSBwBjNfcvTclD1vQri9M5bsya9JNfMj1xp60ulXfSr1ygoDw\nqVVOuw9JN6uKdQnF07+vJWX/+xDsxkwGV77TmK4Nyg5uyWUfmJylbqIJ+YO0\ntzQF+O1NBhR7e7FXzEnRN3BzQQ8dyxhbMsnwIcWF2c9cXkesDJUA9ltLN3hR\nreuUEpX5NWqFpiNELAsVdu0ujLJInEO5eI1KzhQXLmIx3aQEjKfeU1Wt8ffD\nYEj9nNE/d9gUh7QmPF95CyW1A9FFKlIJCbdBg1hAXEVmhMp6UooD7k8BXGSq\nnK7P8WYCwWowAZhwKrKv1KXDQrN991p37EQsLIAuMvYH+OXJSfUJ2UcGknr5\nOy9U+GKrEu2DM1+gkUw3XCPBSqcgWhlIeNVSH8qaEuBZSBxP8L2QlHWPgbbb\n8sOWrn9oKEUrlPNUA6EN5AquBVP1Twly/XfTIp2iX3O4Kf/UC5wpCF3n5VXb\n9eGqsvxw5RUuB4GMB5cL8bwA06Tq3P5vXX129eq7gBykDqx0fnJiCzWuEqdC\nkDbMm3Ui5cgssFbclnnOMILMzbh+3TQ3l39g+HpZ2MxFRzdwuJVfP2jhVUnJ\n9ryP\r\n=EuOY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHkKKgOAt0uU3sUrisqFYD+VeMZ2UYlMYkC9Swobmq1AiByQFDOtQLBL9L+HRJSUgvaeyAjYAGLE+IwQbCvsT10Qw=="}]},"maintainers":[{"name":"brencon","email":"brendan.conrad@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/organize-photos_1.4.0_1530824175137_0.12200584841211826"},"_hasShrinkwrap":false},"1.4.1":{"name":"@brencon/organize-photos","description":"Organize your photos and videos.","version":"1.4.1","author":{"name":"Brendan Conrad","email":"brendan.conrad@gmail.com"},"bin":{"organize-photos":"lib/cli.js"},"bugs":{"url":"https://github.com/lukekarrys/organize-photos/issues"},"dependencies":{"boxen":"^1.3.0","colors":"^1.3.0","dateformat":"^3.0.3","debug":"^3.1.0","dist-exiftool":"^10.53.0","fs-promise":"^2.0.3","klaw":"^2.1.1","node-exiftool":"^2.3.0","promise-streams":"^2.1.1","single-line-log":"^1.1.2","yargs":"^12.0.1"},"devDependencies":{"child-process-promise":"^2.2.1","git-validate":"^2.2.2","standard":"^11.0.1","tap-spec":"^5.0.0","tape":"^4.9.1"},"homepage":"https://github.com/brencon/organize-photos#readme","keywords":["photos"],"license":"MIT","main":"lib/index.js","pre-commit":["validate","lint","test"],"repository":{"type":"git","url":"git+ssh://git@github.com/brencon/organize-photos.git"},"scripts":{"lint":"standard","test":"NODE_ENV=test tape test/index.js | tap-spec","validate":"echo 'this is fine'"},"gitHead":"cfeb2eb990aa2090a1c295daa1ea1ffc48f3b0ff","_id":"@brencon/organize-photos@1.4.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"brencon","email":"brendan.conrad@gmail.com"},"dist":{"integrity":"sha512-3vgKsMP0H40lQ8CItpPRZFO8DRHov0ltu/S7fol09MhFo781me+pGuJlFG6R1IHaSlAKDzbqSX1u9HSBmJaaRQ==","shasum":"496136e18224d3a21255ff42d34325a2c4a85724","tarball":"https://registry.npmjs.org/@brencon/organize-photos/-/organize-photos-1.4.1.tgz","fileCount":29,"unpackedSize":2306005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPpjDCRA9TVsSAnZWagAAns0P/jub9lkbnUUOz1p2Ht84\nzAt5vfUw2nl2O1+ylJgI2R8lft1yaRCbCzhhI34XrPeaciUkQQLILF4xrm6M\n//joMs7acMaGfzFNLJOaz81ET0q7CIZGf+E0IE/mey+1WjsOKN362rQcAHOr\n18eLPyjOYC9goR/udWUht3pvnocOpLUNoZgAzzYKK0Em5KHWZfxkc+e2FwbI\nJ8QUvC8FmgwAaBWEEXn/MbvCxAk9BjDtYexLQmiaLX16axKetZYsNH47Kj7B\nhtjBoF9UElvYrE+ZFVjg/RTfmP/4a8UyUYGb3UYdndfAedX5ksqkc1pakNgz\nM87GKsGli62H6e1hdjWFs+LXrCzPKH90Ue2jXoBsZgNDPW+pdwaio2oOdw/i\nXzEAtBzsQ1GXGwJ3+XMAHS6iz5dOD/A4KaXlv70Be3IgZ9LeBi+OryukGF4h\nh9n8oNZgB8twgjhtDXTF0EhyeL1Hc2bqJGBYITXLaCN2dy+GqSBFq2DZocxH\n7259THCZZUujINvEsCyW24QKGEUOQqd/IcBi/8zxXczrHJb+RSSDQNdAUiLj\nK98sAGRhGH0JScDrJPrvqoEledct2YfZr3Pye7offbBMi+nqpRZrQSR9l5OO\nQ805uGjoI25Yv6WYZDD7xb9RbPL5IStbDNwtUaL4P8X/f5mPQkgKGgwedbkw\ngu49\r\n=qGM8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICM4WqlqcHw4LMOla5SvaE0xh3sbSNGOeCJpFPoRBNbcAiAU9FKn7PeUA6H/dz/1h+4tyDLniW5wFWhCE0YminlivA=="}]},"maintainers":[{"name":"brencon","email":"brendan.conrad@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/organize-photos_1.4.1_1530828995724_0.37833517938736216"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-05T20:56:14.890Z","1.4.0":"2018-07-05T20:56:15.326Z","modified":"2022-04-04T20:30:47.357Z","1.4.1":"2018-07-05T22:16:35.893Z"},"maintainers":[{"name":"brencon","email":"brendan.conrad@gmail.com"}],"description":"Organize your photos and videos.","homepage":"https://github.com/brencon/organize-photos#readme","keywords":["photos"],"repository":{"type":"git","url":"git+ssh://git@github.com/brencon/organize-photos.git"},"author":{"name":"Brendan Conrad","email":"brendan.conrad@gmail.com"},"bugs":{"url":"https://github.com/lukekarrys/organize-photos/issues"},"license":"MIT","readme":"# organize-photos\r\n\r\nOrganizes your photos and videos.\r\n\r\n[![Build Status](https://travis-ci.org/brencon/organize-photos.svg?branch=master)](https://travis-ci.org/brencon/organize-photos) \r\n\r\n[![NPM](https://nodei.co/npm/@brencon/organize-photos.png)](https://www.npmjs.com/package/@brencon/organize-photos)\r\n\r\n## Overview\r\n\r\n1. Takes a `src` dir and copies *everything* to a `dest` dir\r\n1. Every file copied is cleaned up with the following\r\n    1. Lowercase file extension\r\n    1. Removes trailing ` #5` and ` (3)` from filenames\r\n1. If a file is not a recognized type it is moved to `dest/UNKNOWN`\r\n1. If a file has no date associated, it is moved to `dest/UNSORTED`\r\n1. If a file does have a date, it is moved to `dest/yyyy/mm/dd/yyyy-mm-dd hh:mm:ss.ext`\r\n1. Dates are found by the following\r\n    1. exif `CreateDate` field\r\n    1. Any other exif fields passed in with `exifDate`\r\n    1. Some special filenames like screenshots or photobooth files\r\n    1. If the file is named like `yyyy-mm-dd hh?:mm?:ss?`\r\n    1. A parent directory that is named like `yyyy-mm-dd hh?:mm?:ss?`\r\n1. If no exif dates are found, but a date is found from the path, that will be written to exif data\r\n1. Files are never clobbered but instead `a-z` is appended to the destination until there are no conflicts\r\n1. By default, everything is a dry run (can be changed with `real`)\r\n1. By default, `dest` is never cleared but always added to (can be changed with `clean`)\r\n1. Can optionally `move` all the files instead\r\n\r\n## Installation\r\n\r\n### CLI\r\n```\r\nnpm install @brencon/organize-photos -g\r\n```\r\n\r\n### Module\r\n```\r\nnpm install @brencon/organize-photos --save\r\n```\r\n\r\n## Usage\r\n\r\n### Examples\r\n\r\n#### Dry Verbose JPG and PNG Sorted by DateTimeOriginal, CreateDate, FileCreateDate\r\n\r\n`organize-photos --src <source folder> --dest <destination folder> --verbose true --exif-date \"DateTimeOriginal\" \"CreateDate\" \"FileCreateDate\" --ext \"jpg\" \"png\"`\r\n\r\n## Development\r\n\r\n### Prerequisites\r\n\r\n#### Windows\r\n\r\n##### win-node-env\r\n\r\nOn Windows, you will encounter the error \"'NODE_ENV' is not recognized as an internal or external command, operable program or batch file.\" when running npm scripts. \r\n\r\n[win-node-env](https://github.com/laggingreflex/win-node-env) creates a NODE_ENV.cmd that sets the NODE_ENV environment variable and spawns a child process with the rest of the command and its args.\r\n\r\n`npm install -g win-node-env`\r\n\r\n## Testing\r\n\r\n`npm test`\r\n\r\n### License\r\n\r\nMIT\r\n\r\n## Contributor\r\n\r\n### Brendan Conrad\r\n\r\n* GitHub - <https://github.com/brencon>\r\n* Twitter - <https://twitter.com/symBrendan>\r\n\r\n## Original Project Owner\r\n\r\n### Luke Karrys\r\n\r\n* GitHub - <https://github.com/lukekarrys>\r\n\r\n","readmeFilename":"README.md"}