fix: KoePi KW-Erkennung praeziser (kein Datensatz-Text mehr), (weekly) aus ALDI-Titel entfernt
This commit is contained in:
@@ -171,10 +171,23 @@ async function fetchLeafletDetail(leafletId, cache) {
|
|||||||
// ("... KW32 ...") — die wird dann selbst eingeklammert, damit die Anzeige
|
// ("... KW32 ...") — die wird dann selbst eingeklammert, damit die Anzeige
|
||||||
// überall einheitlich aussieht.
|
// überall einheitlich aussieht.
|
||||||
function extractWeekInfo(name) {
|
function extractWeekInfo(name) {
|
||||||
const bracket = (name || '').match(/\([^)]*KW\s*\d+[^)]*\)/i);
|
// Fängt nur "KW29" bzw. "KW 29" plus optional einen kurzen Wochentag-Bereich
|
||||||
if (bracket) return bracket[0];
|
// wie "Do-Sa" direkt danach ein — ignoriert bewusst alles andere drumherum
|
||||||
const bare = (name || '').match(/KW\s*\d+(?:\s*[A-Za-zÄÖÜäöüß-]+)?/i);
|
// (z.B. technischen Datensatz-Text wie "HHZ Dataset 2"), egal ob das Ganze
|
||||||
return bare ? `(${bare[0]})` : '';
|
// in Klammern steht oder nicht. Klammert das Ergebnis immer selbst neu ein,
|
||||||
|
// damit die Anzeige überall einheitlich aussieht.
|
||||||
|
const m = (name || '').match(/KW\s*\d+(?:\s*[A-Za-zÄÖÜäöüß]{2,3}-[A-Za-zÄÖÜäöüß]{2,3})?/i);
|
||||||
|
return m ? `(${m[0].replace(/\s+/g, ' ').trim()})` : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Entfernt bekannten Stör-/Metatext aus dem angezeigten Prospekt-Titel (z.B.
|
||||||
|
// "(weekly)" bei ALDI). Liste bei Bedarf einfach erweitern, falls andere
|
||||||
|
// Ketten ähnlichen Text im name-Feld mitliefern.
|
||||||
|
const TITLE_NOISE_PATTERNS = [/\(weekly\)/gi];
|
||||||
|
function cleanTitle(name) {
|
||||||
|
let t = name || '';
|
||||||
|
for (const p of TITLE_NOISE_PATTERNS) t = t.replace(p, '');
|
||||||
|
return t.replace(/\s{2,}/g, ' ').trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Löst die feste Liste gewünschter Filialen (LOCAL_STORE_SEED_LEAFLETS) einmalig
|
// Löst die feste Liste gewünschter Filialen (LOCAL_STORE_SEED_LEAFLETS) einmalig
|
||||||
@@ -536,7 +549,7 @@ async function scrapeProspekte() {
|
|||||||
all.push({
|
all.push({
|
||||||
id: f.id,
|
id: f.id,
|
||||||
publisher: f.advertiser?.name || '',
|
publisher: f.advertiser?.name || '',
|
||||||
title: detail.name || f.advertiser?.name || '',
|
title: cleanTitle(detail.name) || f.advertiser?.name || '',
|
||||||
weekInfo,
|
weekInfo,
|
||||||
street: store.address || '',
|
street: store.address || '',
|
||||||
zip: MG_ZIP,
|
zip: MG_ZIP,
|
||||||
|
|||||||
Reference in New Issue
Block a user