Metadata-Version: 2.4
Name: syncfotos
Version: 0.1.10
Summary: Eina per comparar, revisar i classificar fotografies i videos entre directoris.
Author: SyncFotos
License-Expression: MIT
Project-URL: Homepage, https://github.com/AureliRoura/SyncFotos
Project-URL: Repository, https://github.com/AureliRoura/SyncFotos
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pillow>=10.0.0
Requires-Dist: python-vlc>=3.0.0
Requires-Dist: opencv-python>=4.8.0

# SyncFotos

Aplicació en Python per sincronitzar, revisar i classificar fotografies i vídeos entre dos directoris.

L'objectiu és detectar els fitxers que existeixen al directori d'origen però no al de destinació i facilitar-ne la revisió abans de moure'ls a la ubicació definitiva.

---

## Característiques

* 📷 Visualització d'imatges.
* 🎥 Reproducció de vídeos integrada amb VLC.
* ⏯ Controls de reproducció (Play/Pausa i barra de progrés).
* 🔍 Comparació entre dos directoris.
* 📂 Detecció de fitxers inexistents al directori de destinació.
* 📁 Moure fitxers a una carpeta seleccionada.
* 📁 Moure fitxers a l'última carpeta utilitzada.
* 📅 Moure fitxers automàticament segons la data deduïda del nom.
* 🖼 Obrir una fotografia amb un editor extern.
* 💬 Tooltips amb informació sobre el directori de destinació.

---

## Organització automàtica per data

Si el fitxer té un nom com:

```text
PXL_20251129_080003803.TS.mp4
```

SyncFotos detecta la data (`2025-11-29`) i proposa moure'l a:

```text
2025/
└── 2025_11_29/
```

Si el nom del fitxer no conté una data reconeguda, aquesta opció no es mostra.

---

## Requisits

* Python 3.11 o superior
* VLC Media Player instal·lat

Llibreries Python:

```bash
pip install pillow python-vlc opencv-python
```

---

## Execució

```bash
python sync_fotos.py
```

Per veure totes les opcions disponibles:

```bash
python sync_fotos.py --help
```

També es pot executar com a paquet (un cop instal.lat):

```bash
sync-fotos --help
sync-fotos-gui
sync-fotos-duplicats
sync-fotos-fitxers-buits "D:\\Fotos"
```

---

## Empaquetat i distribució

Construcció local del paquet:

```bash
python -m pip install --upgrade build
python -m build
```

Es generen dos artefactes a `dist/`:

* `syncfotos-<versio>.tar.gz`
* `syncfotos-<versio>-py3-none-any.whl`

Instal.lació local de prova:

```bash
python -m pip install dist/syncfotos-*.whl
```

---

## Publicació amb GitHub Actions

El workflow [`Build and Publish`](.github/workflows/release.yml) fa:

1. Build de wheel + sdist.
2. Publicació d'artefactes del build.
3. Publicació a PyPI quan fas push d'un tag `v*` (per exemple `v1.0.0`).

Passos per activar-ho:

1. A [`pyproject.toml`](pyproject.toml), canvia els URLs `OWNER/REPO` pel teu repositori real.
2. A PyPI, crea el projecte `syncfotos` (o canvia el nom a `pyproject.toml` si ja existeix).
3. Configura Trusted Publishing de PyPI per aquest repositori GitHub.
4. Fes commit i push.
5. Crea un tag de release:

```bash
git tag v1.0.0
git push origin v1.0.0
```

---

## Flux de treball

1. Compara el directori origen amb el directori destinació.
2. Detecta els fitxers que falten.
3. Mostra cada fitxer (foto o vídeo).
4. L'usuari pot:

* Moure'l a una carpeta.
* Moure'l a l'última carpeta utilitzada.
* Moure'l segons la data del nom.
* Obrir-lo amb un editor.
* Saltar-lo.

5. En finalitzar es mostra un resum de les accions realitzades.

---

## Llibreries utilitzades

* argparse
* pathlib
* shutil
* tkinter
* Pillow
* python-vlc
* OpenCV
* datetime
* re

---

## Estructura del projecte

```text
syncFotos/
│
├── sync_fotos.py
├── README.md
├── .gitignore
├── cache/
└── ...
```

---

## Funcionalitats previstes

* [ ] Configuració persistent.
* [ ] Selecció de l'editor d'imatges des de la interfície.
* [ ] Dreceres de teclat.
* [ ] Millorar la reproducció de vídeos.
* [ ] Suport per a més formats de noms de fitxer.
* [ ] Generació d'un executable per a Windows.

---

## Captura de pantalla

Es recomana afegir una o més captures de la interfície aquí.

```markdown
![Captura principal](docs/screenshot.png)
```

---

## Llicència

Aquest projecte es distribueix sota la llicència MIT.

---

## Autor

Desenvolupat com a eina personal per facilitar l'organització de fotografies i vídeos.
