feat(search): Treffer ohne Recipe-JSON-LD rausfiltern
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m17s
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m17s
Wir fetchen die Trefferseite sowieso schon fürs Thumbnail — prüfen jetzt in der gleichen HTML-Parse-Runde, ob überhaupt ein schema.org/Recipe JSON-LD vorhanden ist. Fehlt es, wird der Treffer aus der Liste entfernt, weil der Importer auf dieser Seite später sowieso mit „Diese Seite enthält kein Rezept" scheitern würde. - Migration 007: thumbnail_cache.has_recipe (NULL=unbekannt, 0=nein, 1=ja). - Fetch-Fehler hinterlassen NULL → Treffer bleibt konservativ sichtbar. - Neue export `hasRecipeJsonLd(html)` in json-ld-recipe.ts. - Alle Cache-Reads/Writes nehmen den neuen Wert mit. Tests: +2 für Filter/Failover, bestehende Thumbnail-Tests mit Recipe-JSON-LD-Stub ergänzt, damit sie nicht selber rausgefiltert werden. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -106,6 +106,14 @@ function findRecipeNode(html: string): JsonLdNode | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
export function hasRecipeJsonLd(html: string): boolean {
|
||||
try {
|
||||
return findRecipeNode(html) !== null;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function extractRecipeFromHtml(html: string): Recipe | null {
|
||||
const node = findRecipeNode(html);
|
||||
if (!node) return null;
|
||||
|
||||
Reference in New Issue
Block a user