Metadata-Version: 2.4
Name: ExifSort
Version: 0.2.5
Summary: ExifSort - sort media files into date-based folders by reading EXIF creation date.
Author-email: barabasz <exifsort@anba.ovh>
License-Expression: MIT
Project-URL: Homepage, https://github.com/barabasz/exifsort
Project-URL: Repository, https://github.com/barabasz/exifsort
Project-URL: Issues, https://github.com/barabasz/exifsort/issues
Project-URL: Changelog, https://github.com/barabasz/exifsort/blob/main/CHANGELOG.md
Keywords: exif,auto-organization,auto-sort,photo-management,photo-organization
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyExifTool
Provides-Extra: toml
Requires-Dist: tomli-w>=1.0.0; extra == "toml"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.8.0; extra == "dev"
Dynamic: license-file

# ExifSort

**ExifSort** - sort media files into date-based folders by reading EXIF creation date.

## Key Features

✅ **Robust Metadata Support**: Powered by [ExifTool](https://exiftool.org/), ensuring reliable reading of EXIF/XMP creation dates from a wide variety of formats (JPG, DNG, MOV, MP4, ORF, RAW, and more).  
✅ **Flexible Organization**: Automatically moves files into date-based directory structures (e.g., `2023/20231224`) and renames them with timestamp prefixes (e.g., `20231224-180000-Image.jpg`).  
✅ **"Party Mode" (Day Shift)**: Define when a new day starts (default: 04:00 AM). Photos taken after midnight (e.g., at a party) will be sorted into the previous day's folder, keeping events together.  
✅ **Extension Normalization**: Automatically unifies file extensions to lowercase standard formats (e.g., converts `.JPEG` to `.jpg`, `.TIFF` to `.tif`).  
✅ **Time Correction**: Apply a time offset (in seconds) to fix timestamps if your camera's clock was set incorrectly.  
✅ **Safe & Secure**:  
→ **Dry-run mode (`--test`)**: Preview changes without modifying any files.  
→  **Conflict protection**: Skips files if the target destination already exists (unless overwrite is forced).  
→  **Fallback handling**: Files without metadata are safely moved to a dedicated `_UNKNOWN` folder.  
✅ **CLI Friendly**: Includes a progress bar, colorful output, and verbose mode for detailed processing logs.  

## Installation

```bash
pip install exifsort
```

## Requirements

- Python 3.13+
- [ExifTool](https://exiftool.org/) command-line tool
- [PyExifTool](https://pypi.org/project/PyExifTool/) Python library

## License

MIT License - see [LICENSE](https://github.com/barabasz/exifsort/blob/main/LICENSE) for details.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Links

- **GitHub**: https://github.com/barabasz/exifsort
- **Issues**: https://github.com/barabasz/exifsort/issues
