Arbeitsdatei .tmp-patch.mjs aus dem Baum nehmen und .tmp-* ignorieren

Beim vorigen Commit ist ein Patch-Skript mitgerutscht - git add -A nimmt
alles, was nicht ignoriert ist. Die Zwischendateien heissen durchgehend
.tmp-*, deshalb steht das Muster jetzt in .gitignore.
This commit is contained in:
2026-09-04 17:09:30 +02:00
parent 8557bfe230
commit ffaed3f544
2 changed files with 3 additions and 49 deletions
+3
View File
@@ -18,3 +18,6 @@ Thumbs.db
# Protokolle
*.log
# Arbeitsdateien dieser Werkzeugkette (Patch-Skripte, Zwischenstaende)
.tmp-*
-49
View File
@@ -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")