Metadata-Version: 2.4
Name: htkcloudsync
Version: 0.1.0.dev2
Summary: Synchronisation bidirectionnelle de vos clouds (Google Drive en premier) pour Ubuntu
Author-email: HTKapp <support@htkapp.com>
License: Proprietary
Project-URL: Homepage, https://htkapp.com
Project-URL: Documentation, https://htkapp.com/documentation
Project-URL: Support, https://htkapp.com/support/nouveau
Keywords: google-drive,cloud,sync,gtk4,libadwaita,ubuntu,gnome
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: X11 Applications :: GTK
Classifier: Intended Audience :: End Users/Desktop
Classifier: Natural Language :: French
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: File Transfer Protocol (FTP)
Classifier: Topic :: System :: Archiving :: Backup
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: google-auth>=2.30
Requires-Dist: google-auth-oauthlib>=1.2
Requires-Dist: requests>=2.31
Requires-Dist: watchdog>=4.0
Provides-Extra: dev
Requires-Dist: babel>=2.14; extra == "dev"
Requires-Dist: hypothesis>=6.100; extra == "dev"
Requires-Dist: mypy>=1.11; extra == "dev"
Requires-Dist: pre-commit>=3.7; extra == "dev"
Requires-Dist: pytest-cov>=5; extra == "dev"
Requires-Dist: pytest-timeout>=2.3; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: types-requests; extra == "dev"

# HtkCloudSync

**Synchronisation bidirectionnelle entre votre cloud et votre ordinateur Ubuntu.**
Google Drive en premier ; d'autres services suivront. Par [HTKapp](https://htkapp.com).

> État (11 octobre 2026) : **M1 validé sur un compte Google Drive réel** (première synchronisation
> d'un compte d'essai, 1 344 fichiers / 13 Go, dans les deux sens, MD5 vérifiés, réaction en
> quelques secondes via inotify) ; **M2** (transferts parallèles et débit, inotify incrémental,
> reconstruction d'index, performance mesurée à 50 000 fichiers, fuzz du moteur) et **M3**
> (indicateur, notifications, lancement avec la session, fichiers-liens) **livrés** ; paquets
> `.deb` et **Flatpak construits et contrôlés** sur ce poste (`make deb-simple`, `make flatpak`).
> Reste pour la publication (M4) : licence, vérification OAuth Google, Flathub.
> Voir [docs/10-feuille-de-route.md](docs/10-feuille-de-route.md).

![Page Comptes](docs/screenshots/accounts.png)

## Ce que fait l'application

- Garde un dossier local (`~/Google Drive` par défaut) identique à votre Drive, **dans les deux sens**.
- **Cochez / décochez** les dossiers cloud à conserver sur l'ordinateur (synchronisation sélective).
- **Rien n'est perdu** : les conflits conservent les deux versions, les suppressions vont à la
  corbeille des deux côtés, les suppressions massives demandent confirmation.
- **Rien n'est collecté** : vos fichiers ne circulent qu'entre vous et votre cloud ; les jetons
  de connexion sont dans le trousseau GNOME.
- Interface native GTK4 / libadwaita aux couleurs d'HTKapp, service en arrière-plan, CLI.

## Démarrage rapide (développement)

```bash
./scripts/setup-dev.sh   # paquets Ubuntu + venv + intégration bureau (~/.local)
make demo                # interface avec données factices, sans compte Google
make check               # lint + types + tests + validation des fichiers bureau
```

Pour un vrai compte Google Drive, créez vos identifiants OAuth en suivant
[docs/04-google-drive.md](docs/04-google-drive.md), puis `make run` (ou `make cli ARGS=add-account`).

## Structure du dépôt

| Dossier | Contenu |
|---|---|
| `src/htkcloudsync/core/` | moteur : modèle, index SQLite, réconciliation à trois voies, exécuteur, boucle |
| `src/htkcloudsync/providers/` | fournisseurs cloud (`gdrive/`, `fake.py` pour tests et démo) |
| `src/htkcloudsync/daemon/` | service D-Bus `com.htkapp.CloudSync.Daemon` |
| `src/htkcloudsync/ui/` | interface GTK4 / libadwaita (comptes, dossiers, activité, paramètres) |
| `src/htkcloudsync/cli/` | `htkcloudsync-cli` |
| `tests/` | unitaires (`unit/`), interface (`ui/`), compte réel (`integration/`) |
| `docs/` | spécifications, architecture, algorithme, design, packaging, feuille de route, ADR |
| `data/` | `.desktop`, metainfo AppStream, icônes, activation D-Bus, logo HTKapp vectoriel (`data/brand/`) |
| `packaging/` | `debian/`, `flatpak/`, unité systemd |
| `po/` | traductions (msgid anglais, `fr.po`) |

## Documentation

1. [Vision produit](docs/01-vision-produit.md)
2. [Architecture](docs/02-architecture.md)
3. [Algorithme de synchronisation](docs/03-algorithme-de-synchronisation.md)
4. [Google Drive : API et OAuth](docs/04-google-drive.md)
5. [Interface utilisateur](docs/05-interface-utilisateur.md)
6. [Design system](docs/06-design-system.md)
7. [Environnement de développement](docs/07-environnement-de-dev.md)
8. [Tests](docs/08-tests.md)
9. [Packaging](docs/09-packaging.md)
10. [Feuille de route](docs/10-feuille-de-route.md)
11. [Sécurité et confidentialité](docs/11-securite-et-confidentialite.md)
12. [Glossaire et règles de traduction](docs/12-glossaire.md)
13. [Jeu de démonstration](docs/13-jeu-de-demonstration.md)
14. [Documentation utilisateur (htkapp.com)](docs/14-documentation-utilisateur.md)
15. [Vidéo de démonstration pour la vérification Google](docs/15-video-verification-google.md)
13. [Décisions d'architecture (ADR)](docs/adr/)

## Licence

À définir par HTKapp (voir `pyproject.toml`, `packaging/debian/copyright`, `data/*.metainfo.xml`).
