API HelloFresh réelle câblée + filtrage coco validé en local
- Endpoints découverts: menu (menus-service) + détails batch (recipes/recipes) - get_menu en 2 temps: menu (ids) -> batch détails (ingrédients/allergènes) - Fix faux positifs: exclusion sur ingrédients/allergènes/nom, plus sur les tags (HelloFresh pose un tag interne 'coconut' sur ~la moitié des recettes) - Token mis en cache (pas de navigateur si frais) - endpoints.json versionné (sans secret), semaine optionnelle (défaut = courante) - Testé: 4 recettes coco/85 détectées, shortlist classée, tous les outils MCP OK - set_selection (écriture) reste à découvrir sur un compte avec box active
This commit is contained in:
@@ -24,6 +24,7 @@ Sortie :
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
@@ -71,10 +72,19 @@ def main() -> None:
|
||||
print("Ouvre le menu de la semaine, change une recette si tu veux capturer l'écriture.")
|
||||
page.goto(auth.BASE_URL + "/my-account", wait_until="domcontentloaded", timeout=30000)
|
||||
|
||||
try:
|
||||
input("\n>>> Quand tu as fini de naviguer, appuie sur Entrée pour générer le rapport...\n")
|
||||
except (EOFError, KeyboardInterrupt):
|
||||
pass
|
||||
# Si on a un vrai terminal : on attend Entrée. Sinon (lancé en arrière-plan,
|
||||
# sans TTY) : on attend une durée fixe pour laisser le temps de se connecter
|
||||
# et de naviguer, tout en continuant à logger les requêtes.
|
||||
if sys.stdin and sys.stdin.isatty():
|
||||
try:
|
||||
input("\n>>> Quand tu as fini de naviguer, appuie sur Entrée pour générer le rapport...\n")
|
||||
except (EOFError, KeyboardInterrupt):
|
||||
pass
|
||||
else:
|
||||
wait_s = int(os.environ.get("ANTICOCO_DISCOVER_WAIT", "240"))
|
||||
print(f"\n>>> Pas de terminal interactif : capture pendant {wait_s}s. "
|
||||
"Connecte-toi et navigue dans la fenêtre ouverte...")
|
||||
page.wait_for_timeout(wait_s * 1000)
|
||||
|
||||
ctx.close()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user