File: //tmp/dateweb_patch_local_sitemap.cjs
const fs = require('fs');
const file = 'scripts/generate-static-local-pages.mjs';
let s = fs.readFileSync(file, 'utf8');
s = s.replace(
"const description = 'Lokale Dating-Einstiege von dateweb.de für Singles ab 30 in München, Hamburg, Berlin, Köln und Frankfurt.';",
"const description = `Lokale Dating-Einstiege von dateweb.de für Singles ab 30 in ${cities.map((city) => city.name).join(', ')}.`;"
);
if (!s.includes('function ensureLocalSitemapEntries()')) {
const fn = String.raw`
function ensureLocalSitemapEntries() {
const sitemapPath = join(publicHtml, 'sitemap.xml');
if (!fs.existsSync(sitemapPath)) return;
let sitemap = fs.readFileSync(sitemapPath, 'utf8');
const localUrls = [
{ loc: site + '/dating', priority: '0.84' },
...cities.map((city) => ({ loc: site + '/dating/' + city.slug, priority: '0.74' })),
];
let changed = 0;
for (const item of localUrls) {
if (sitemap.includes('<loc>' + item.loc + '</loc>')) continue;
const entry = ' <url>\n <loc>' + item.loc + '</loc>\n <lastmod>2026-06-02</lastmod>\n <changefreq>weekly</changefreq>\n <priority>' + item.priority + '</priority>\n </url>\n';
sitemap = sitemap.replace('</urlset>', entry + '</urlset>');
changed += 1;
}
if (changed > 0) {
fs.writeFileSync(sitemapPath, sitemap, 'utf8');
console.log('added local sitemap URLs: ' + changed);
}
}
`;
const anchor = '\nfunction writePage(route, html) {';
if (!s.includes(anchor)) throw new Error('writePage anchor missing');
s = s.replace(anchor, fn + anchor);
}
if (!s.includes('ensureLocalSitemapEntries();')) {
s = s.replace("console.log(`generated static local pages: ${cities.length + 1}`);", "ensureLocalSitemapEntries();\nconsole.log(`generated static local pages: ${cities.length + 1}`);");
}
fs.writeFileSync(file, s, 'utf8');
const sitemapFile = 'public/sitemap.xml';
let sitemap = fs.readFileSync(sitemapFile, 'utf8');
const cities = ['duesseldorf','stuttgart','leipzig','dortmund','essen','bremen','dresden','hannover','nuernberg','karlsruhe'];
for (const slug of cities) {
const url = `https://dateweb.de/dating/${slug}`;
if (!sitemap.includes(url)) {
sitemap = sitemap.replace(' <url>\n <loc>https://dateweb.de/sitemap</loc>', ` <url>\n <loc>${url}</loc>\n <lastmod>2026-06-02</lastmod>\n <changefreq>weekly</changefreq>\n <priority>0.74</priority>\n </url>\n <url>\n <loc>https://dateweb.de/sitemap</loc>`);
}
}
fs.writeFileSync(sitemapFile, sitemap, 'utf8');