Config admin complète + IMAP polling

Config admin :
- Serveur upload : IP d'écoute, port, URL publique (QR code)
- Email IMAP : activer/désactiver, serveur, port, user, password,
  dossier, intervalle de polling
- Checkbox pour activer IMAP

Service IMAP :
- Thread daemon, polling configurable (défaut 30s)
- Connexion IMAP SSL, récupère mails UNSEEN
- Extrait les PJ photos (jpg/png/etc.)
- Sauvegarde dans data/photos/, notifie l'app via signal Qt
- Bouton Email passe au vert + Continuer quand photos reçues

main.py :
- Lit la config pour IP/port du serveur upload
- Démarre IMAP polling si activé dans la config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-21 22:34:37 +01:00
parent 532f8d91c0
commit d8d7cbde7c
5 changed files with 273 additions and 61 deletions

View File

@@ -275,7 +275,8 @@ class UploadSignals(QObject):
class UploadServer:
"""Serveur Flask d'upload, tourne dans un thread séparé."""
def __init__(self, port=80):
def __init__(self, host="0.0.0.0", port=80):
self.host = host
self.port = port
self.signals = UploadSignals()
self.app = Flask(__name__)
@@ -315,7 +316,7 @@ class UploadServer:
"""Démarre le serveur dans un thread daemon."""
self._thread = threading.Thread(
target=lambda: self.app.run(
host="0.0.0.0", port=self.port,
host=self.host, port=self.port,
debug=False, use_reloader=False
),
daemon=True