UI web d'admin + garde-fou recettes premium (supplément hors abonnement)
- Refus des recettes payantes (chargeSetting) à la sélection, override allow_premium - Recipe.surcharge_cents/is_premium exposés dans summary(); propose() les exclut - hellofresh/webui.py : page d'admin + API JSON montées sur FastMCP (/, /api/*) édition à chaud des excludes et préférences (liked/disliked)
This commit is contained in:
20
README.md
20
README.md
@@ -35,9 +35,11 @@ intervention ni re-sync. Le navigateur headless ne sert plus que de filet de sec
|
||||
|
||||
```
|
||||
Hermes ──HTTP──▶ server.py (FastMCP, :9200/mcp)
|
||||
navigateur ──▶ server.py (UI admin, :9200/)
|
||||
├─ hellofresh/auth.py session storage_state + refresh HTTP /gw/refresh
|
||||
├─ hellofresh/api.py httpx : menu, détails, deliveries, PUT cart
|
||||
├─ hellofresh/filter.py exclusion (coco !) + scoring préférences
|
||||
├─ hellofresh/webui.py page d'admin + API JSON (édition à chaud)
|
||||
└─ config/ excludes.json · prefs.json · endpoints.json
|
||||
```
|
||||
|
||||
@@ -129,10 +131,24 @@ Enregistrer AntiCoco dans la config MCP de Hermes (côté homelab), URL
|
||||
| `hf_next_delivery()` | **prochaine box réellement sélectionnée** (≈4 recettes) + date/cutoff, images servables — prêt Telegram |
|
||||
| `hf_favorites()` | recettes **favorites** du compte (images servables) |
|
||||
| `hf_get_menu(week)` | toutes les recettes, avec `contains_excluded` et `is_favorite` |
|
||||
| `hf_propose(week, count=0)` | shortlist **sans coco**, classée par préférences |
|
||||
| `hf_confirm_selection(week, recipe_ids)` | **écrit** la sélection (refuse la coco) |
|
||||
| `hf_propose(week, count=0)` | shortlist **sans coco ni premium**, classée par préférences |
|
||||
| `hf_confirm_selection(week, recipe_ids, allow_premium=False)` | **écrit** la sélection (refuse coco **et** recettes payantes hors abonnement) |
|
||||
| `hf_get_excludes()` / `hf_add_exclude(term)` / `hf_remove_exclude(term)` | gérer la liste d'exclusion |
|
||||
|
||||
Les recettes premium (supplément, `chargeSetting` côté HelloFresh) portent `is_premium` /
|
||||
`surcharge_eur` dans chaque réponse. `hf_confirm_selection` les refuse par défaut ;
|
||||
`allow_premium=True` accepte sciemment le surcoût.
|
||||
|
||||
## Interface web d'admin
|
||||
|
||||
Sur le **même port que MCP** : `http://127.0.0.1:9200/` (MCP reste sur `/mcp`).
|
||||
Édition à chaud (prise en compte au prochain appel, sans redémarrage) de :
|
||||
- la **liste d'exclusion** (coco & co) ;
|
||||
- les **préférences** de scoring `liked` / `disliked`.
|
||||
|
||||
Le port est bindé sur `127.0.0.1` du homelab : y accéder via tunnel SSH
|
||||
(`ssh -L 9200:127.0.0.1:9200 homelab`) puis ouvrir `http://localhost:9200/`.
|
||||
|
||||
## Configuration
|
||||
|
||||
- `config/excludes.json` — ingrédients bannis (matching insensible casse/accents). Coco déjà listée.
|
||||
|
||||
Reference in New Issue
Block a user