Files

84 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Image Folder Watcher
Überwacht einen Ordner. Sobald ein **Unterordner mit Bildern** hineingeschoben
wird, werden alle Bilder automatisch:
1. In einen `Backup/`-Unterordner kopiert (Originale bleiben erhalten)
2. Web-sicher umbenannt: `<ordnername>-00.jpg`, `<ordnername>-01.jpg`, …
(Umlaute → `ae/oe/ue/ss`, Leerzeichen → `-`, alles klein)
3. Auf **1920 px Breite** (proportional) und **72 DPI** skaliert
4. Als JPEG unter **1 MB** gehalten (Qualität wird bei Bedarf abgesenkt)
Unterstützte Formate: JPEG, PNG, WEBP, TIFF, BMP, GIF, AVIF, HEIC/HEIF.
Läuft auf **macOS** und **Linux** (gleiche Codebasis).
## Installation
```bash
git clone git@git.datenhimmel.work:claude-ai/image-folder-watcher.git
cd image-folder-watcher
./install.sh
```
Das Script:
- prüft/installiert Python (Homebrew auf macOS, pacman/apt/dnf/zypper auf Linux),
- legt ein **virtuelles Environment** an (`~/image-folder-watcher/.venv`) und
installiert Pillow, watchdog und pillow-heif darin **kein**
`--break-system-packages` nötig,
- erstellt den Überwachungsordner
(`~/Pictures/Eingang` auf macOS, `~/Bilder/Eingang` auf Linux),
- bietet optional Autostart an (launchd auf macOS, systemd auf Linux).
Eigenen Pfad festlegen:
```bash
WATCH_DIR="$HOME/mein/eingang" ./install.sh
```
## Manuell starten
```bash
~/image-folder-watcher/.venv/bin/python ~/image-folder-watcher/watcher.py "<überwachter-ordner>"
```
Mit Optionen:
```bash
... watcher.py "<ordner>" --width 1920 --dpi 72 --format JPEG --quality 92 --delay 5
```
| Option | Bedeutung | Standard |
|-------------|---------------------------------------------|----------|
| `--width` | Zielbreite in Pixel | 1920 |
| `--dpi` | Ziel-DPI | 72 |
| `--format` | Ausgabeformat (JPEG/PNG/WEBP) | JPEG |
| `--quality` | JPEG-Qualität (1100) | 92 |
| `--delay` | Wartezeit bis Ordner als "fertig" gilt (s) | 5 |
> Bei Netzwerk-/SMB-Kopien (z. B. vom Mac auf einen Linux-Share) `--delay`
> höher setzen, damit das Tool wartet, bis wirklich alle Dateien angekommen sind.
## Autostart
**macOS (launchd):**
```bash
launchctl print gui/$(id -u)/work.datenhimmel.image-watcher # Status
launchctl bootout gui/$(id -u)/work.datenhimmel.image-watcher # Stoppen/Entfernen
tail -f ~/image-folder-watcher/watcher.out.log # Logs
```
**Linux (systemd):**
```bash
sudo systemctl status image-watcher
journalctl -u image-watcher -f
```
## Plattform-Hinweise
- macOS nutzt FSEvents, Linux nutzt inotify `watchdog` wählt das automatisch.
- Auf macOS gibt es keine `--break-system-packages`-Problematik, weil alles im
venv landet.
- Der systemd-Dienst läuft als System-Service unter deinem User; der
launchd-Agent läuft als User-Agent (startet beim Login).