Metadata-Version: 2.1
Name: photo-importer
Version: 1.2.4
Summary: Photo importer tool
Home-page: https://github.com/sashacmc/photo-importer
Author: Alexander Bushnev
Author-email: Alexander@Bushnev.pro
License: GNU General Public License v3.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyExifTool
Requires-Dist: progressbar
Requires-Dist: psutil

# Photo Importer

![CodeQL](https://github.com/sashacmc/photo-importer/workflows/CodeQL/badge.svg)
[![PyPI - Version](https://img.shields.io/pypi/v/photo-importer.svg)](https://pypi.org/project/photo-importer)
[![PyPI - Downloads](https://pepy.tech/badge/photo-importer)](https://pepy.tech/project/photo-importer)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Command line tools for photo importing/renaming/rotating
### Features:
  * Media files scan
  * Time when picture was taken detection (by EXIF, by file name, by file attributes)
  * Media files moving/copying to configurable hierarchy 
  * Lossless rotations (via exiftran or jpegtran)

# Photo Importer Server
Standalone web server for fast media import for headless computer
### Features:
  * Mounted storages detection (by path mask)
  * Storages mount/unmount (via pmount)
  * The same as photo-importer but without console

# Installation

### Requirements:

  * Python 3.3+

### Supported OS:

  * Debian based Linux (other Linux versions not officially supported, but might work)
  * Windows 7 and above
  * MacOS X and above (with brew installed, only console version)

### Dependencies:
  * [PyExifTool](https://pypi.org/project/PyExifTool/)
  * [progressbar](https://pypi.org/project/progressbar/)
  * [psutil](https://pypi.org/project/psutil/)
  * [exiftran](https://linux.die.net/man/1/exiftran) or [jpegtran](https://linux.die.net/man/1/jpegtran)
  * [pmount](https://linux.die.net/man/1/pmount) (only for server)
  * [pypiwin32](https://pypi.org/project/pypiwin32/) (only for windows)


### Installation Options:

#### Installing via PyPi
```bash
sudo apt install exiftran exiftool pmount pip
sudo pip install photo-importer
```
#### Installing as debian package
```bash
debuild -b
sudo dpkg -i ../photo-importer_1.2.0_all.deb
```
#### Installing via setup.py
```bash
sudo apt install exiftran exiftool pmount pip
sudo pip install PyExifTool progressbar psutil
sudo python3 ./setup.py install
```

#### Installing for Windows
Download and install python3 for you Windows distributive
https://www.python.org/downloads/windows/

Download and install exiftool
https://exiftool.org/

Download and extract jpegtran to photo_importer folder
http://sylvana.net/jpegcrop/jpegtran/

Install with python dependencies
```bash
python -m pip install pypiwin32 photo-importer
```

## Usage
### Command-Line Interface

```bash
photo-importer /path/to/media/files
```
Will process files (reanaming/rotating) in-place.
![In place example](https://user-images.githubusercontent.com/28735879/76139947-bd249780-6055-11ea-85c0-0985b6bde93f.png)

```bash
photo-importer /path/to/media/files /output/path
```
Will import (by default move, but it can be changed in config) files from /path/to/media/files to /output/path with date hierarchy creation and reanaming/rotating

![Move example](https://user-images.githubusercontent.com/28735879/76139964-eba27280-6055-11ea-988f-aa71cda7ba36.png)

### Web Interface
  * attach usb-drive / usert memory card
  * open http://servername:8080
  * click "Mount"
  * click "Import"
  * click "Unmount"

![Web interface example](https://user-images.githubusercontent.com/28735879/76140174-f1995300-6057-11ea-8718-19c38650c786.png)

### Windows command line
```bash
cd photo_importer
run.py -c ..\photo-importer-win.cfg path\to\media\files \output\path
```
### Windows web 
```bash
photo-importer-server.bat
```

## Configuration
The server config file located in /etc/photo-importer.cfg

Command line tool config file located in ~/.photo-importer.cfg

Also config file can be specified by mean of -c command line option.

For options details see comments in the config file.

## Acknowledgements
Thanks to everyone who tested and gave advice.

**Bug reports, suggestions and pull request are welcome!**

## Show your support
Give a ⭐️ if this project helped you!
