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:
@@ -18,3 +18,6 @@ Thumbs.db
|
||||
|
||||
# Protokolle
|
||||
*.log
|
||||
|
||||
# Arbeitsdateien dieser Werkzeugkette (Patch-Skripte, Zwischenstaende)
|
||||
.tmp-*
|
||||
|
||||
@@ -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")
|
||||
Reference in New Issue
Block a user