# sorting-assistant
[![PyPI - Version](https://img.shields.io/pypi/v/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)
---
A tool that determines sets of photos taken consecutively based on the Exif shooting date and exposure time, and creates a directory for each set.
**_[ja]_**
Exif の撮影日時と露光時間から、連続撮影された写真のセットを判断し、セットごとにディレクトリを作成するツール。
## Table of Contents
- [Specification](#specification)
- [Installation](#installation)
- [Usage](#usage)
- [License](#license)
- [Acknowledgment](#acknowledgment)
## Specification
- Only JPEG-format photos with Exif data are acceptable.
- If the difference between the date and time of shooting in the Exif is within ±2 seconds of the exposure time,
the camera is considered to have taken consecutive shots.
- Directories for each set are created in the directory to be sorted.
- The directory names created will be sequentially numbered from 0000.
**_[ja]_**
- Exif が記録されている JPEG 形式の写真のみ対象です。
- Exif の撮影日時の差が、露光時間 ±2 秒以内の場合に、連続撮影されたと判断します。
- セットごとのディレクトリは、仕分け対象のディレクトリ内に作成します。
- 作成されるディレクトリ名は 0000 からの連番となります。
## Installation
```console
pip install sorting-assistant
```
### Dependency
- Modules
- [exif](https://pypi.org/project/exif)
- [flet](https://pypi.org/project/flet)
- Libraries
If you do not use the GUI, you can omit installation.
**_[ja]_**
GUI を使用しない場合は、インストールを省略できます。
```bash
# For Ubuntu 20.04; Mac and Windows do not require installation.
sudo apt install libgtk-3-dev libgstreamer-plugins-base1.0-dev libmpv-dev zenity
```
## Usage
```bash
$ python -m sorting_assistant -h
usage: python -m sorting_assistant [-h] [--input-directory INPUT_DIRECTORY] [--grouping-threshould GROUPING_THRESHOULD] [--cli]
Sort photos based on Exif.
options:
-h, --help show this help message and exit
--input-directory INPUT_DIRECTORY, -d INPUT_DIRECTORY
[required in cli] directory containing photos to be sorted.
--grouping-threshould GROUPING_THRESHOULD, -t GROUPING_THRESHOULD
[optional, default: 1] threshold for the number of photos to be directory (0-99).
--cli, -c [optional, default: launch with gui] execute with CLI.
```
### CLI
```bash
# Use as module.
python -m sorting_assistant -d /path/to/image/dir -t 1 -c
# Or, use with pyproject script.
sorting-assistant-cli -d /path/to/image/dir -t 1
```
### GUI
```bash
# Use as module.
python -m sorting_assistant
python -m sorting_assistant -d /path/to/image/dir -t 1
# Or, use with pyproject script.
sorting-assistant-gui
sorting-assistant-gui -d /path/to/image/dir -t 1
```
![sorting assistant flet](https://raw.githubusercontent.com/adeliae1316/sorting-assistant/develop/sorting-assiatant-flet.png)
- Set the `Directory Path` and `Grouping threshould` and press the `Execute` button to execute.
- When specifying the `Directory Path`, you can press `Select` to display the file selection dialog.
- DnD is not supported because flet does not support DnD ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)).
**_[ja]_**
- `Directory Path` と `Grouping threshould` を設定して、`Execute` ボタンを押すと実行されます。
- `Directory Path` を指定する際、`Select` を押すとファイルセレクションダイアログを表示できます。
- flet が DnD に対応していない ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)) ため、DnD は非対応です。
## License
`sorting-assistant` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
**_[ja]_**
`sorting-assistant` は [MIT](https://spdx.org/licenses/MIT.html)ライセンス の下で配布されています。
## Acknowledgment
This tool uses the following libraries. Thank you.
**_[ja]_**
このツールでは、以下のライブラリを使用しています。ありがとうございます。
| Library | Author | License |
| ------------------------------------------ | -------------- | ------------------------------------------------------------------------ |
| [exif](https://gitlab.com/TNThieding/exif) | Tyler Thieding | [MIT License](https://gitlab.com/TNThieding/exif/-/blob/master/LICENSE) |
| [flet](https://flet.dev) | flet-dev | [Apache License 2.0](https://github.com/flet-dev/flet/blob/main/LICENSE) |
Raw data
{
"_id": null,
"home_page": null,
"name": "sorting-assistant",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "camera, exif, exposure, photo, sorting",
"author": null,
"author_email": "adeliae1316 <knsak.ug487@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ce/9b/c829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728/sorting_assistant-0.0.2.tar.gz",
"platform": null,
"description": "# sorting-assistant\n\n[![PyPI - Version](https://img.shields.io/pypi/v/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sorting-assistant.svg)](https://pypi.org/project/sorting-assistant)\n\n---\n\nA tool that determines sets of photos taken consecutively based on the Exif shooting date and exposure time, and creates a directory for each set.\n\n**_[ja]_** \nExif \u306e\u64ae\u5f71\u65e5\u6642\u3068\u9732\u5149\u6642\u9593\u304b\u3089\u3001\u9023\u7d9a\u64ae\u5f71\u3055\u308c\u305f\u5199\u771f\u306e\u30bb\u30c3\u30c8\u3092\u5224\u65ad\u3057\u3001\u30bb\u30c3\u30c8\u3054\u3068\u306b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b\u30c4\u30fc\u30eb\u3002\n\n## Table of Contents\n\n- [Specification](#specification)\n- [Installation](#installation)\n- [Usage](#usage)\n- [License](#license)\n- [Acknowledgment](#acknowledgment)\n\n## Specification\n\n- Only JPEG-format photos with Exif data are acceptable.\n- If the difference between the date and time of shooting in the Exif is within \u00b12 seconds of the exposure time,\n the camera is considered to have taken consecutive shots.\n- Directories for each set are created in the directory to be sorted.\n - The directory names created will be sequentially numbered from 0000.\n\n**_[ja]_**\n\n- Exif \u304c\u8a18\u9332\u3055\u308c\u3066\u3044\u308b JPEG \u5f62\u5f0f\u306e\u5199\u771f\u306e\u307f\u5bfe\u8c61\u3067\u3059\u3002\n- Exif \u306e\u64ae\u5f71\u65e5\u6642\u306e\u5dee\u304c\u3001\u9732\u5149\u6642\u9593 \u00b12 \u79d2\u4ee5\u5185\u306e\u5834\u5408\u306b\u3001\u9023\u7d9a\u64ae\u5f71\u3055\u308c\u305f\u3068\u5224\u65ad\u3057\u307e\u3059\u3002\n- \u30bb\u30c3\u30c8\u3054\u3068\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f\u3001\u4ed5\u5206\u3051\u5bfe\u8c61\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306b\u4f5c\u6210\u3057\u307e\u3059\u3002\n - \u4f5c\u6210\u3055\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u306f 0000 \u304b\u3089\u306e\u9023\u756a\u3068\u306a\u308a\u307e\u3059\u3002\n\n## Installation\n\n```console\npip install sorting-assistant\n```\n\n### Dependency\n\n- Modules\n\n - [exif](https://pypi.org/project/exif)\n - [flet](https://pypi.org/project/flet)\n\n- Libraries\n\n If you do not use the GUI, you can omit installation.\n\n **_[ja]_** \n GUI \u3092\u4f7f\u7528\u3057\u306a\u3044\u5834\u5408\u306f\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u7701\u7565\u3067\u304d\u307e\u3059\u3002\n\n ```bash\n # For Ubuntu 20.04; Mac and Windows do not require installation.\n sudo apt install libgtk-3-dev libgstreamer-plugins-base1.0-dev libmpv-dev zenity\n ```\n\n## Usage\n\n```bash\n$ python -m sorting_assistant -h\nusage: python -m sorting_assistant [-h] [--input-directory INPUT_DIRECTORY] [--grouping-threshould GROUPING_THRESHOULD] [--cli]\n\nSort photos based on Exif.\n\noptions:\n -h, --help show this help message and exit\n --input-directory INPUT_DIRECTORY, -d INPUT_DIRECTORY\n [required in cli] directory containing photos to be sorted.\n --grouping-threshould GROUPING_THRESHOULD, -t GROUPING_THRESHOULD\n [optional, default: 1] threshold for the number of photos to be directory (0-99).\n --cli, -c [optional, default: launch with gui] execute with CLI.\n```\n\n### CLI\n\n```bash\n# Use as module.\npython -m sorting_assistant -d /path/to/image/dir -t 1 -c\n# Or, use with pyproject script.\nsorting-assistant-cli -d /path/to/image/dir -t 1\n```\n\n### GUI\n\n```bash\n# Use as module.\npython -m sorting_assistant\npython -m sorting_assistant -d /path/to/image/dir -t 1\n# Or, use with pyproject script.\nsorting-assistant-gui\nsorting-assistant-gui -d /path/to/image/dir -t 1\n```\n\n![sorting assistant flet](https://raw.githubusercontent.com/adeliae1316/sorting-assistant/develop/sorting-assiatant-flet.png)\n\n- Set the `Directory Path` and `Grouping threshould` and press the `Execute` button to execute.\n- When specifying the `Directory Path`, you can press `Select` to display the file selection dialog.\n- DnD is not supported because flet does not support DnD ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)).\n\n**_[ja]_**\n\n- `Directory Path` \u3068 `Grouping threshould` \u3092\u8a2d\u5b9a\u3057\u3066\u3001`Execute` \u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n- `Directory Path` \u3092\u6307\u5b9a\u3059\u308b\u969b\u3001`Select` \u3092\u62bc\u3059\u3068\u30d5\u30a1\u30a4\u30eb\u30bb\u30ec\u30af\u30b7\u30e7\u30f3\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002\n- flet \u304c DnD \u306b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044 ([flet-dev/flet#112](https://github.com/flet-dev/flet/issues/112)) \u305f\u3081\u3001DnD \u306f\u975e\u5bfe\u5fdc\u3067\u3059\u3002\n\n## License\n\n`sorting-assistant` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n\n**_[ja]_** \n`sorting-assistant` \u306f [MIT](https://spdx.org/licenses/MIT.html)\u30e9\u30a4\u30bb\u30f3\u30b9 \u306e\u4e0b\u3067\u914d\u5e03\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\n## Acknowledgment\n\nThis tool uses the following libraries. Thank you.\n\n**_[ja]_** \n\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002\n\n| Library | Author | License |\n| ------------------------------------------ | -------------- | ------------------------------------------------------------------------ |\n| [exif](https://gitlab.com/TNThieding/exif) | Tyler Thieding | [MIT License](https://gitlab.com/TNThieding/exif/-/blob/master/LICENSE) |\n| [flet](https://flet.dev) | flet-dev | [Apache License 2.0](https://github.com/flet-dev/flet/blob/main/LICENSE) |\n",
"bugtrack_url": null,
"license": null,
"summary": "Tool for sorting photos based on Exif.",
"version": "0.0.2",
"project_urls": {
"Documentation": "https://github.com/adeliae1316/sorting-assistant#readme",
"Issues": "https://github.com/adeliae1316/sorting-assistant/issues",
"Source": "https://github.com/adeliae1316/sorting-assistant"
},
"split_keywords": [
"camera",
" exif",
" exposure",
" photo",
" sorting"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9b29b4cff5cb39240463af4ea9102b4dcf24be520f311e13f7da1d1b6cbbc926",
"md5": "5d96af36dff6e73d3d31adcde6c43d8e",
"sha256": "c6f205ba675171767886adf141d724c5ddfbe7325cabf13668587cfd47253068"
},
"downloads": -1,
"filename": "sorting_assistant-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5d96af36dff6e73d3d31adcde6c43d8e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 8459,
"upload_time": "2024-08-15T16:35:52",
"upload_time_iso_8601": "2024-08-15T16:35:52.508848Z",
"url": "https://files.pythonhosted.org/packages/9b/29/b4cff5cb39240463af4ea9102b4dcf24be520f311e13f7da1d1b6cbbc926/sorting_assistant-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ce9bc829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728",
"md5": "0fb1e604145df8ec4f659061fa8a795d",
"sha256": "c0275d9c1f2c4b0f5b16bf5ad9617f30edf26b5534352e8b3e13bcbd47a671f9"
},
"downloads": -1,
"filename": "sorting_assistant-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "0fb1e604145df8ec4f659061fa8a795d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 243244,
"upload_time": "2024-08-15T16:35:54",
"upload_time_iso_8601": "2024-08-15T16:35:54.103409Z",
"url": "https://files.pythonhosted.org/packages/ce/9b/c829fb6112f7f5fd195bba7f121328fa40c535dcb57b786cbcf001a02728/sorting_assistant-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-15 16:35:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "adeliae1316",
"github_project": "sorting-assistant#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "sorting-assistant"
}