- outputs/platform, outputs/prospect : scripts de construction des decks commerciaux + captures sources et .pptx generes. - outputs/mnaha : seed complet de l'instance de demo luxembourgeoise (scripts par etape, contenus, images generees), le deck en version marque blanche et en version brandee, le PDF de presentation. - outputs/Wireframes : maquettes app mobile, app web et manager. - interview clients : notes de l'entretien Fourneau St Michel. state.json et les __pycache__ sont ignores : le premier porte les cles d'API de l'instance seedee, les scripts le regenerent.
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Sert les visuels de démonstration sur http://localhost:8099.
|
|
|
|
`POST /api/Resource/upload` n'écrit que des métadonnées : le fichier lui-même
|
|
vit dans le bucket Firebase, où c'est `manager-app` qui le dépose depuis le
|
|
navigateur. Un script qui parle à l'API n'a donc aucun moyen d'y placer un blob.
|
|
|
|
Les ressources de démonstration sont créées en type `ImageUrl` et pointent ici.
|
|
**Ce serveur doit tourner pendant les captures**, sinon les images ne
|
|
s'affichent pas.
|
|
"""
|
|
|
|
import http.server
|
|
from pathlib import Path
|
|
|
|
PORT = 8099
|
|
ROOT = Path(__file__).resolve().parent / "images"
|
|
|
|
|
|
class Handler(http.server.SimpleHTTPRequestHandler):
|
|
# Next demande une dizaine de visuels en parallèle : en HTTP/1.0 chaque
|
|
# image ouvre puis ferme sa propre connexion, ce qui multiplie les allers-retours.
|
|
protocol_version = "HTTP/1.1"
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, directory=str(ROOT), **kwargs)
|
|
|
|
def end_headers(self):
|
|
# manager-app et visitapp-web tournent sur d'autres origines.
|
|
self.send_header("Access-Control-Allow-Origin", "*")
|
|
self.send_header("Cache-Control", "public, max-age=3600")
|
|
super().end_headers()
|
|
|
|
def log_message(self, *args):
|
|
pass
|
|
|
|
|
|
if __name__ == "__main__":
|
|
http.server.ThreadingHTTPServer.allow_reuse_address = True
|
|
with http.server.ThreadingHTTPServer(("127.0.0.1", PORT), Handler) as httpd:
|
|
print(f"visuels servis sur http://localhost:{PORT} depuis {ROOT}")
|
|
httpd.serve_forever()
|