HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/thread-self/root/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');