diff --git a/.gitignore b/.gitignore index db92b3b..7e68ef6 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ Thumbs.db # Protokolle *.log + +# Arbeitsdateien dieser Werkzeugkette (Patch-Skripte, Zwischenstaende) +.tmp-* diff --git a/.tmp-patch.mjs b/.tmp-patch.mjs deleted file mode 100644 index 67596a9..0000000 --- a/.tmp-patch.mjs +++ /dev/null @@ -1,49 +0,0 @@ -import { readFileSync, writeFileSync } from "node:fs" -const p = "custom_components/audi_dashboard/shell_beleg_parser.py" -let s = readFileSync(p, "utf8") -const alt = [ - "def _marke(zeilen):", - ' """Markenname aus dem Belegkopf ("SHELL STATION" -> "Shell"). None, wenn', - ' keine bekannte Marke draufsteht - dann bleibt es beim Betreibernamen."""', - ' kopf = "\n".join(zeilen[:8])', - " for marke in _MARKEN:", - ' if re.search(r"\b" + re.escape(marke) + r"\b", kopf, re.IGNORECASE):', - " return marke", - " return None", -].join("\n") -const neu = [ - "def _betragszeile(zeile):", - ' """Eine Summenzeile ("GESAMT 78,78 EUR")? Sie darf im Kopf nicht nach', - " Marken durchsucht werden.", - "", - ' Grund: "Total" ist beides - eine Kopfmarke und ein Summenwort. Auf einem', - " Beleg mit knappem Kopf, der den Betrag schon in den ersten acht Zeilen", - ' druckt, wuerde daraus faelschlich die Marke "Total" (am 04.09.2026 an', - " einem echten Beleg mit vorangestellter Summenzeile nachgestellt und", - " reproduziert). Verlangt werden beide Kennzeichen zugleich - Summenwort", - " UND echte Geldangabe -, damit eine Anschrift mit Hausnummer oder eine", - ' Postleitzahl ("SHELL TANKSTELLE, 6450 SÖLDEN") nicht mitfaellt."""', - ' kompakt = re.sub(r"\s+", "", zeile).upper()', - " if not any(wort in kompakt for wort in _GESAMT_WOERTER):", - " return False", - " return bool(re.search(_GELD, zeile))", - "", - "", - "def _marke(zeilen):", - ' """Markenname aus dem Belegkopf ("SHELL STATION" -> "Shell"). None, wenn', - " keine bekannte Marke draufsteht - dann bleibt es beim Betreibernamen.", - "", - " Acht Zeilen, weil die Marke in den bekannten Belegen in Zeile 0 steht und", - " im oesterreichischen Format in Zeile 1 (am 04.09.2026 ueber alle zwoelf", - ' abgelegten Belege gemessen) - das Fenster ist der Puffer, nicht die",', - ' Erwartung."""', - " kopf = [z for z in zeilen[:8] if not _betragszeile(z)]", - ' text = "\n".join(kopf)', - " for marke in _MARKEN:", - ' if re.search(r"\b" + re.escape(marke) + r"\b", text, re.IGNORECASE):', - " return marke", - " return None", -].join("\n") -if (s.split(alt).length - 1 !== 1) throw new Error("Anker nicht eindeutig") -writeFileSync(p, s.replace(alt, neu)) -console.log("ok")