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/self/root/tmp/dateweb_patch_trends_integrations.cjs
const fs = require('fs');

function write(file, content) { fs.writeFileSync(file, content, 'utf8'); }
function read(file) { return fs.readFileSync(file, 'utf8'); }
function replaceOnce(file, from, to) {
  let s = read(file);
  if (!s.includes(from)) throw new Error(`${file}: anchor missing`);
  s = s.replace(from, to);
  write(file, s);
}

// deploy hook
{
  const file = 'scripts/deploy-webroot.sh';
  let s = read(file);
  const hook = `\n# dateweb growth route: Dating Trends 2026\nif [ -f scripts/generate-static-dating-trends-2026.mjs ]; then\n  node scripts/generate-static-dating-trends-2026.mjs\nfi\nif [ -f scripts/patch-dating-trends-2026-internal-links.mjs ]; then\n  node scripts/patch-dating-trends-2026-internal-links.mjs\nfi\n`;
  if (!s.includes('generate-static-dating-trends-2026.mjs')) {
    s = s.replace('# dateweb growth route: Feed and RSS', `${hook}\n# dateweb growth route: Feed and RSS`);
  }
  write(file, s);
}

// feed: prepend trend item and update description
{
  const file = 'scripts/generate-static-feed.mjs';
  let s = read(file);
  if (!s.includes("path: '/ratgeber/dating-trends-2026/'")) {
    s = s.replace('const items = [\n', `const items = [\n  {\n    title: 'Dating-Trends 2026: klare Absichten statt Swipen',\n    path: '/ratgeber/dating-trends-2026/',\n    description: 'Clear Coding, Dating-Fatigue, KI mit Grenzen und sichere erste Treffen: was Singles 2026 wirklich suchen.',\n  },\n`);
  }
  s = s.replace('Aktuelle dateweb.de Ratgeber zu Dating-Fatigue, Ghosting, Dating ab 40, Dating nach Trennung, Profilen und ersten Nachrichten.', 'Aktuelle dateweb.de Ratgeber zu Dating-Trends 2026, Dating-Fatigue, Ghosting, Dating ab 40, Dating nach Trennung, Profilen und ersten Nachrichten.');
  write(file, s);
}

// distribution: add campaign first
{
  const file = 'scripts/growth-distribution-plan.mjs';
  let s = read(file);
  if (!s.includes("slug: 'dating-trends-2026'")) {
    s = s.replace('const campaigns = [\n', `const campaigns = [\n  {\n    slug: 'dating-trends-2026',\n    title: 'Dating-Trends 2026',\n    path: '/ratgeber/dating-trends-2026/',\n    intent: 'Dating Trends 2026, Clear Coding, Dating-Fatigue, KI Dating, klare Absichten',\n    audience: 'Singles ab 30 und 40, die weniger App-Rauschen und mehr Verbindlichkeit suchen',\n    campaign: 'guide_dating_trends_2026_launch',\n    keyword: 'dating_trends_2026',\n    copy: [\n      'Dating 2026 wird klarer: weniger Swipen, mehr Absicht, KI mit Grenzen und sichere kleine Treffen. Neuer dateweb-Ratgeber.',\n      'Clear Coding statt Rätselraten: dateweb zeigt, wie Singles 2026 mit weniger Rauschen besser kennenlernen.'\n    ],\n    anchors: ['Dating-Trends 2026', 'Clear Coding beim Dating', 'klare Absichten statt endlosem Swipen']\n  },\n`);
  }
  write(file, s);
}

// public sitemap
{
  const file = 'public/sitemap.xml';
  let s = read(file);
  const url = 'https://dateweb.de/ratgeber/dating-trends-2026';
  if (!s.includes(url)) {
    const entry = `  <url>\n    <loc>${url}</loc>\n    <lastmod>2026-06-02</lastmod>\n    <changefreq>weekly</changefreq>\n    <priority>0.88</priority>\n  </url>\n`;
    s = s.replace('</urlset>', `${entry}</urlset>`);
  }
  write(file, s);
}

// robots
{
  const file = 'public/robots.txt';
  let s = read(file);
  if (!s.includes('Allow: /ratgeber/dating-trends-2026')) {
    s = s.replace('Allow: /ratgeber/dating-ab-30\n', 'Allow: /ratgeber/dating-ab-30\nAllow: /ratgeber/dating-trends-2026\n');
  }
  write(file, s);
}

// growth insights route lists
{
  const file = 'scripts/growth-insights.mjs';
  let s = read(file);
  if (!s.includes("'/ratgeber/dating-trends-2026/'")) {
    s = s.replace("  '/ratgeber/dating-fatigue/',\n", "  '/ratgeber/dating-fatigue/',\n  '/ratgeber/dating-trends-2026/',\n");
  }
  if (!s.includes("'/ratgeber/dating-trends-2026/'") || !s.includes('launchClusterRoutes')) throw new Error('growth insights route insertion failed');
  if (!s.match(/const launchClusterRoutes = \[[\s\S]*dating-trends-2026/)) {
    s = s.replace("  '/ratgeber/dating-nach-trennung/',\n];", "  '/ratgeber/dating-nach-trennung/',\n  '/ratgeber/dating-trends-2026/',\n];");
  }
  write(file, s);
}

// growth backlog tuple list
{
  const file = 'scripts/growth-backlog.mjs';
  let s = read(file);
  if (!s.includes("['/ratgeber/dating-trends-2026/'")) {
    s = s.replace("  ['/ratgeber/dating-fatigue/', 'Ratgeber Dating-Fatigue', 'App-Müdigkeit und Neustart-Suchintention'],\n", "  ['/ratgeber/dating-fatigue/', 'Ratgeber Dating-Fatigue', 'App-Müdigkeit und Neustart-Suchintention'],\n  ['/ratgeber/dating-trends-2026/', 'Ratgeber Dating-Trends 2026', 'Clear-Coding-, KI- und Intentional-Dating-Suchintention'],\n");
  }
  write(file, s);
}