{ "info": { "author": "Hermann Krumrey", "author_email": "hermann@krumreyh.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)" ], "description": "# photo-sorter.py \n\n|master|develop|\n|:---:|:---:|\n|[![build status](https://gitlab.namibsun.net/namibsun/python/photo-sorter/badges/master/build.svg)](https://gitlab.namibsun.net/namibsun/python/photo-sorter/commits/master)|[![build status](https://gitlab.namibsun.net/namibsun/python/photo-sorter/badges/develop/build.svg)](https://gitlab.namibsun.net/namibsun/python/photo-sorter/commits/develop)|\n\n\n![Logo](resources/logo/logo-readme.png \"Logo\")\n\nThis is a python script to automatically sort photos from a Canon camera.\nIn principle, this should also work with other directories containing\nimages, but it is primarily done for the **Canon Powershot G7 X**'s\nimage structure.\n\nThe script assumes a directory structure like this;\n\n - DCIM\n -- images&videos_1\n -- images&videos_2\n -- ...\n -- images&videos_n\n -- CANONMSC (optional, will be deleted)\n\n## What does the script do?\n\n### 1. Set up new folder structure\n\nFirst, it will create a new directory structure like so:\n\n - DCIM\n -- Images\n \t--- Raw\n \t--- High Quality\n \t--- Low Quality\n \t-- Videos\n\nand move all relevant image and video files in the directories.\n\n* Raw files (.CR2) will be put into the ```Images/Raw``` directory\n* JPG files will be put into the ```Images/High Quality``` directory\n* MP4 files will be put into the ```Videos``` directory\n\n### 2. Look for missing JPG files\n\nIf Raw files exist without a corresponding JPG file, the .CR2 file's\npreview image will be extracted and equiped with the same exif data as\nthe .CR2 file and stored in the ```Images/High Quality``` folder.\n\n### 3. Rename according to exif data\n\nAll image files will be renamed according to their exif timestamp. The \nfile names will follow the format ```YY-MM-DD---hh-mm--ss```\n\n### 4. Create lower quality JPG files\n\nAll High Quality JPG files are converted down to ~1080p (1920x1080 / 1080x1920)\nand put into the ```Images/Low Quality``` folder\n\n### Optional: Merge\n\nIf more than one directory is passed as an argument, These directories are first\nprocessed with Steps 1-4 indivdually and then merged. The resulting folder will\nbe called ```Merged```\n\n## How do I use this script?\n\nJust call the script using\n```photo-sorter ... ```.\n\nThis will process each directory individually and then merge them together.\n\n### Dependencies:\n\nThe following commands need to be installed and in the system's PATH:\n\n* ```exiftool```\n* ```jpegoptim```\n* ```convert``` (Part of ```imagemagick```)\n\nTo install these on Arch Linux, run the following command:\n\n sudo pacman -S imagemagick jpegoptim perl-image-exiftool\n\nInstallation on other distributions may differ.\n\n## Further Information\n\n* [Changelog](CHANGELOG)\n* [License (GPLv3)](LICENSE)\n* [Gitlab](https://gitlab.namibsun.net/namibsun/python/photo-sorter)\n* [Github](https://github.com/namboy94/photo-sorter)\n* [Progstats](https://progstats.namibsun.net/projects/photo-sorter)\n* [PyPi](https://pypi.org/project/photo-sorter)\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.namibsun.net/namibsun/python/photo-sorter", "keywords": "", "license": "GNU GPL3", "maintainer": "", "maintainer_email": "", "name": "photo-sorter", "package_url": "https://pypi.org/project/photo-sorter/", "platform": "", "project_url": "https://pypi.org/project/photo-sorter/", "project_urls": { "Homepage": "https://gitlab.namibsun.net/namibsun/python/photo-sorter" }, "release_url": "https://pypi.org/project/photo-sorter/0.1.1/", "requires_dist": [ "exifread", "Pillow", "colorama" ], "requires_python": "", "summary": "A collection of scripts used for managing photos", "version": "0.1.1" }, "last_serial": 4946013, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "39a389691453cb31f13addd99b9c4d60", "sha256": "ede0978a3989e1741cf8f02b7684cfa3b9c330d03832b8f66ba724cda6ef05b0" }, "downloads": -1, "filename": "photo_sorter-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "39a389691453cb31f13addd99b9c4d60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6443, "upload_time": "2018-06-06T08:06:50", "url": "https://files.pythonhosted.org/packages/7f/dc/8053df7c59dc9037029aac189f571f4abff5c8190e6341e7f4c50ad9f692/photo_sorter-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "249356b6ff8a18f76e2a0ea0fe18471a", "sha256": "f9bd59583b3e7b68990b508f2dc25e5faba5f29b768141dd268beaec61059723" }, "downloads": -1, "filename": "photo-sorter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "249356b6ff8a18f76e2a0ea0fe18471a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5402, "upload_time": "2018-06-06T08:06:51", "url": "https://files.pythonhosted.org/packages/81/dd/ed13f9f1a0df2056018a0362b54fbbd4aef881c45a8b124677c08c903c24/photo-sorter-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b34e6b5c6385172e3ff1b60eeda92a0d", "sha256": "e5f7456b6ad6cd147346aa83d106aafda336a1639dc315ec5016fd9e29b18333" }, "downloads": -1, "filename": "photo_sorter-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b34e6b5c6385172e3ff1b60eeda92a0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21747, "upload_time": "2019-03-15T21:07:56", "url": "https://files.pythonhosted.org/packages/ba/76/aabaf3d776e548934137ae403c9f6c08d87ccbb4937dc7c4f054c075b84d/photo_sorter-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61237f915447f797cba88565a8fff03f", "sha256": "32f32636b8bb8012ea92034bb66220f1dce405c0a8aeb2fa0c0bab9192dc2f8b" }, "downloads": -1, "filename": "photo-sorter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "61237f915447f797cba88565a8fff03f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6407, "upload_time": "2019-03-15T21:07:57", "url": "https://files.pythonhosted.org/packages/de/ec/cda12a66bedf66ce63fa33334c3ecf3b278c3c7c6d9a2854340e96e87eb2/photo-sorter-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b34e6b5c6385172e3ff1b60eeda92a0d", "sha256": "e5f7456b6ad6cd147346aa83d106aafda336a1639dc315ec5016fd9e29b18333" }, "downloads": -1, "filename": "photo_sorter-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b34e6b5c6385172e3ff1b60eeda92a0d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21747, "upload_time": "2019-03-15T21:07:56", "url": "https://files.pythonhosted.org/packages/ba/76/aabaf3d776e548934137ae403c9f6c08d87ccbb4937dc7c4f054c075b84d/photo_sorter-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61237f915447f797cba88565a8fff03f", "sha256": "32f32636b8bb8012ea92034bb66220f1dce405c0a8aeb2fa0c0bab9192dc2f8b" }, "downloads": -1, "filename": "photo-sorter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "61237f915447f797cba88565a8fff03f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6407, "upload_time": "2019-03-15T21:07:57", "url": "https://files.pythonhosted.org/packages/de/ec/cda12a66bedf66ce63fa33334c3ecf3b278c3c7c6d9a2854340e96e87eb2/photo-sorter-0.1.1.tar.gz" } ] }