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');