v0.7.8 : l'acces internet sans rien installer

Moteur web integre en pur Go (http + readability + html-to-markdown),
selectionnable par WEB_ENGINE. Crawl4AI reste disponible pour le rendu
JavaScript et reste le defaut des installations qui l'ont deja configure.

Le schema de web_open n'annonce plus actions/wait_for/dismiss_popups avec
le moteur integre, et une page riche en HTML mais sans texte est diagnostiquee
comme rendue en JavaScript, pour que le modele change de source au lieu de
rouvrir la meme URL en boucle.
This commit is contained in:
nathaninline committed 2026-08-05 11:48:45 +02:00
1 parent 9dedba0e47
commit 3dba323aab
12 files changed
+648 -103

No files matched your search

+10
View File
@@ -582,8 +582,17 @@ func handleInternet(w http.ResponseWriter, r *http.Request) {
Enabled *bool `json:"enabled"`
URL *string `json:"url"`
Key *string `json:"key"`
Engine *string `json:"engine"`
}
_ = json.NewDecoder(r.Body).Decode(&req)
// Moteur web : "go" (intégré, rien à installer) ou "crawl4ai" (serveur
// externe, rendu JavaScript).
if req.Engine != nil {
if err := setWebEngine(strings.ToLower(strings.TrimSpace(*req.Engine))); err != nil {
sendJSON(w, 400, map[string]any{"ok": false, "error": err.Error()})
return
}
}
// Clé d'accès au serveur Crawl4AI : chaîne vide = on l'enlève.
if req.Key != nil {
if err := writeCrawlKey(strings.TrimSpace(*req.Key)); err != nil {
@@ -622,6 +631,7 @@ func handleInternet(w http.ResponseWriter, r *http.Request) {
sendJSON(w, 200, map[string]any{
"ok": true,
"enabled": internetEnabled(),
"engine": webEngine(),
"url": crawl4aiURL(),
"reachable": crawlReachable(),
"key_set": key != "",