Live-Monitoring: Parser toleranter (Dash optional, Datum ohne zweiten Punkt) + Backfill-Script
Claude Haiku 4.5 laesst gelegentlich den fuehrenden Dash oder den zweiten
Datums-Punkt im Bullet-Format weg (z.B. "[18.04 21:49]" statt
"- [18.04. 21:49]"). Der strikte Parser-Regex verwarf dadurch alle Bullets.
- Regex akzeptiert nun Dash als optional und zweiten Datums-Punkt als optional
- Parser normalisiert Datum + Zeit auf kanonisches Format "DD.MM. HH:MM" mit Zero-Padding
- Frontend-Regex analog toleranter (auch fuer Altdaten-Mix)
- OUTPUT-FORMAT-Hinweis im Prompt verschaerft ("JEDE Zeile beginnt mit - ")
Backfill-Skript (scripts/backfill_latest_developments.py): Laedt die N
neuesten Artikel einer Lage aus der DB und ruft generate_latest_developments
mit previous_developments=None auf — nuetzlich nach DB-Cleanups, wenn die
inkrementelle Logik zu wenige Bullets liefert.
Einmaliger Run fuer Lage #66 (Militaerblogger): 8 Bullets vom 18.04. mit
aufgeloesten Quellen (Spiegel, Guardian, Bloomberg, n-tv, Telegram-Kanaele).
Dieser Commit ist enthalten in:
@@ -754,12 +754,12 @@ const UI = {
|
||||
let sources = [];
|
||||
try { sources = JSON.parse(sourcesJson || '[]'); } catch(e) {}
|
||||
|
||||
const bulletLines = text.split("\n").map(l => l.trim()).filter(l => l.startsWith("- "));
|
||||
const bulletLines = text.split("\n").map(l => l.trim()).filter(l => l && (l.startsWith("- ") || l.startsWith("[")));
|
||||
if (bulletLines.length === 0) {
|
||||
return this.renderZusammenfassung(text, sourcesJson);
|
||||
}
|
||||
|
||||
const bulletRe = /^-\s*\[(\d{1,2}\.\d{1,2}\.)\s+(\d{1,2}:\d{2})\]\s*(.+?)\s*$/;
|
||||
const bulletRe = /^(?:-\s*)?\[\s*(\d{1,2})\.(\d{1,2})\.?(?:\d{2,4})?\s+(\d{1,2}:\d{2})\s*\]\s*(.+?)\s*$/;
|
||||
const citationRe = /\[(\d+[a-z]?)\]/g;
|
||||
const trailingNamesRe = /\s*\{([^{}]+)\}\s*\.?\s*$/;
|
||||
|
||||
@@ -800,9 +800,11 @@ const UI = {
|
||||
const body = this.escape(line.replace(/^-\s*/, ''));
|
||||
return `<div class="dev-bullet"><div class="dev-body">${body}</div></div>`;
|
||||
}
|
||||
const date = m[1];
|
||||
const time = m[2];
|
||||
let rawBody = m[3];
|
||||
const day = m[1].padStart(2, '0');
|
||||
const month = m[2].padStart(2, '0');
|
||||
const date = `${day}.${month}.`;
|
||||
const time = m[3];
|
||||
let rawBody = m[4];
|
||||
|
||||
let pillsHtml = '';
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren