develop #1
@@ -1,5 +1,6 @@
|
|||||||
## v0.2.0 []
|
## v0.2.0 []
|
||||||
- Added i18n for multi language support
|
- Added i18n for multi language support
|
||||||
|
- Added en, fr, it, ru and uk as language. en is set to default in `config.yml`
|
||||||
- Fixed tests
|
- Fixed tests
|
||||||
- Fixed gitlab CI file
|
- Fixed gitlab CI file
|
||||||
- Fixed bug on string splitting at filtering date/time
|
- Fixed bug on string splitting at filtering date/time
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# AutoPicture V3
|
# AutoPicture V3
|
||||||
|
|
||||||
Bildersortierprogramm geschrieben in Python3.12.
|
Picture sorting software written in python3.
|
||||||
|
|
||||||
Example structure:
|
Example structure:
|
||||||
```bash
|
```bash
|
||||||
@@ -41,7 +41,7 @@ app/Bilder/
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Erste Schritte
|
# Setup
|
||||||
|
|
||||||
## Python
|
## Python
|
||||||
|
|
||||||
|
|||||||
51
install.py
51
install.py
@@ -1 +1,50 @@
|
|||||||
# TODO
|
import distutils.text_file
|
||||||
|
import platform
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import pkg_resources
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR = os.getcwd()
|
||||||
|
OS_SUPPORTED = platform.system() in ['Linux', 'Mac', 'Windows']
|
||||||
|
PYTHON_SUPPORTED = platform.python_version() >= '3.10'
|
||||||
|
|
||||||
|
|
||||||
|
def install_linux():
|
||||||
|
install_path = os.path.join('~', '.local', 'share', 'AutoPicture_v3')
|
||||||
|
if os.path.exists(install_path): exit('Sorry, this software is already installed')
|
||||||
|
# shutil.copy()
|
||||||
|
|
||||||
|
|
||||||
|
def install_mac():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def install_windows():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def check_pip():
|
||||||
|
pkg_resources.require(open(os.path.join(WORKDIR,'requirements.txt' ), mode='r'))
|
||||||
|
|
||||||
|
|
||||||
|
def check_supported_host():
|
||||||
|
print(f'Detected OS: {platform.system()}')
|
||||||
|
print(f'Detected Python: {platform.python_version()}')
|
||||||
|
print()
|
||||||
|
print('OS Supported: OK') if OS_SUPPORTED else print('OS Supported: NO')
|
||||||
|
print('Python supported: OK') if PYTHON_SUPPORTED else print('Python supported: NO')
|
||||||
|
|
||||||
|
|
||||||
|
check_supported_host()
|
||||||
|
check_pip()
|
||||||
|
|
||||||
|
|
||||||
|
match platform.system():
|
||||||
|
case 'Linux': install_linux()
|
||||||
|
case 'Mac': install_mac()
|
||||||
|
case 'Windows': install_windows()
|
||||||
|
case _: print("Your system is not supported.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
install/AutoPictureV3.desktop
Executable file
11
install/AutoPictureV3.desktop
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env xdg-open
|
||||||
|
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=AutoPicture v3
|
||||||
|
Comment=Picture sorting software written in python3
|
||||||
|
Icon=/path/to/icon.xpm
|
||||||
|
Exec=sh ~/.local/share/AutoPictureV3/run.sh
|
||||||
|
Terminal=True
|
||||||
|
Categories=Picture;Sorting
|
||||||
@@ -4,4 +4,5 @@ src: "../app/Temp"
|
|||||||
# dst (destination) ist the path, were the images are going to be sorted
|
# dst (destination) ist the path, were the images are going to be sorted
|
||||||
dst: "../app/Bilder"
|
dst: "../app/Bilder"
|
||||||
|
|
||||||
|
# de, en, fr, it, ru, uk
|
||||||
language: "en"
|
language: "en"
|
||||||
@@ -22,10 +22,10 @@ def sort_pictures(images:list, dst:str, logger:logging.Logger):
|
|||||||
image:ExifData
|
image:ExifData
|
||||||
if not image: continue
|
if not image: continue
|
||||||
path = os.path.join(dst, str(image.make), str(image.year), str(image.month), str(image.day))
|
path = os.path.join(dst, str(image.make), str(image.year), str(image.month), str(image.day))
|
||||||
if not os.path.exists(path): os.makedirs(path)
|
image_dst = os.path.join(path, image.name)
|
||||||
|
if not os.path.exists(path): os.makedirs(path, exist_ok=True)
|
||||||
|
|
||||||
stat_info = os.stat(image.path)
|
stat_info = os.stat(image.path)
|
||||||
image_dst = f"{path}{os.sep}{image.name}"
|
|
||||||
shutil.move(src=image.path, dst=image_dst)
|
shutil.move(src=image.path, dst=image_dst)
|
||||||
# os.chmod(path=f"{path}/{image.name}", mode=stat_info.st_mode)
|
# os.chmod(path=f"{path}/{image.name}", mode=stat_info.st_mode)
|
||||||
logger.info(f"Moved {image.path} -> {image_dst}")
|
logger.info(f"Moved {image.path} -> {image_dst}")
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ from pathlib import Path
|
|||||||
|
|
||||||
from src.scan_folder import recursive_scan_folder
|
from src.scan_folder import recursive_scan_folder
|
||||||
|
|
||||||
TEST_FOLDER = ".test_folder"
|
TEST_FOLDER = '.test_folder'
|
||||||
TEST_IMAGES = f"tests{os.sep}test_files"
|
TEST_IMAGES = os.path.join('tests', 'test_files')
|
||||||
TEST_TEMP_FOLDER = os.path.join(TEST_FOLDER, 'Temp')
|
TEST_TEMP_FOLDER = os.path.join(TEST_FOLDER, 'Temp')
|
||||||
TEST_IMAGE_FOLDER = os.path.join(TEST_FOLDER, 'Images')
|
TEST_IMAGE_FOLDER = os.path.join(TEST_FOLDER, 'Images')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user