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/bewertemich-viral-share.mjs
import fs from 'node:fs';
const generator = 'web/scripts/generate-seo-pages.mjs';
let gen = fs.readFileSync(generator, 'utf8');
const fn = fs.readFileSync('/tmp/viral-share-snippet.txt', 'utf8');
if (!gen.includes('const renderViralSharePanel =')) gen = gen.replace('const renderRelatedLinks = (page, relatedMap) => {', `${fn}\nconst renderRelatedLinks = (page, relatedMap) => {`);
if (!gen.includes('${renderViralSharePanel(page, canonical)}')) gen = gen.replace("      ${renderDecisionGuide({\n", "      ${renderViralSharePanel(page, canonical)}\n\n      ${renderDecisionGuide({\n");
fs.writeFileSync(generator, gen, 'utf8');

const catalog = 'web/src/modules/seo/catalog.js';
let cat = fs.readFileSync(catalog, 'utf8');
cat = cat.replace("primaryEvent: 'seo_related_click',\n    sampleSlugs: ['clara-berlin'", "primaryEvent: 'seo_related_click',\n    shareTitle: 'Profilbild Challenge: Bewerte 5 Fotos',\n    shareText: 'Mach die 5-Fotos-Challenge mit: Bewerte kurz Profilbilder und hilf der Community beim besten Foto.',\n    shareUrl: '/profilbild-challenge/',\n    sampleSlugs: ['clara-berlin'");
cat = cat.replace("primaryEvent: 'seo_related_click',\n    sampleSlugs: ['emilia-duesseldorf'", "primaryEvent: 'seo_related_click',\n    shareTitle: 'Foto bewerten Spiel',\n    shareText: 'Teste das Foto-bewerten-Spiel: Schätze Profilbilder fair ein und entdecke, welches Bild besser wirkt.',\n    shareUrl: '/foto-bewerten-spiel/',\n    sampleSlugs: ['emilia-duesseldorf'");
fs.writeFileSync(catalog, cat, 'utf8');

const css = 'web/public/landing.css';
let style = fs.readFileSync(css, 'utf8');
if (!style.includes('.viral-share-panel')) {
  style += `

.viral-share-panel {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.95fr);
  gap: 20px;
  align-items: center;
  border-color: rgba(249, 115, 22, 0.28);
  background: linear-gradient(135deg, #fff7ed, #ffffff 58%, #fef2f2);
}

.share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.share-hint {
  grid-column: 1 / -1;
  margin: 0;
  color: #6b7280;
  font-size: 0.95rem;
}

@media (max-width: 760px) {
  .viral-share-panel {
    grid-template-columns: 1fr;
  }
  .share-actions {
    justify-content: flex-start;
  }
}
`;
}
fs.writeFileSync(css, style, 'utf8');

const smoke = 'scripts/growth-smoke-check.mjs';
let smokeSrc = fs.readFileSync(smoke, 'utf8');
smokeSrc = smokeSrc.replace("{ path: '/profilbild-challenge/', contains: ['Profilbild Challenge', '5 Fotos mitbewerten', '/mitbewerten/'] }", "{ path: '/profilbild-challenge/', contains: ['Profilbild Challenge', '5 Fotos mitbewerten', '/mitbewerten/', 'seo_viral_share_click', 'data-viral-share-target=\"whatsapp\"'] }");
if (!smokeSrc.includes("/foto-bewerten-spiel/")) {
  smokeSrc = smokeSrc.replace("  { path: '/profilbild-challenge/', contains: ['Profilbild Challenge', '5 Fotos mitbewerten', '/mitbewerten/', 'seo_viral_share_click', 'data-viral-share-target=\"whatsapp\"'] },", "  { path: '/profilbild-challenge/', contains: ['Profilbild Challenge', '5 Fotos mitbewerten', '/mitbewerten/', 'seo_viral_share_click', 'data-viral-share-target=\"whatsapp\"'] },\n  { path: '/foto-bewerten-spiel/', contains: ['Foto bewerten Spiel', '/mitbewerten/', 'seo_viral_share_click', 'data-viral-share-target=\"telegram\"'] },");
}
fs.writeFileSync(smoke, smokeSrc, 'utf8');