AGGIORNAMENTO : 25 Gennaio 2026 - 17:17
10.8 C
Napoli
AGGIORNAMENTO : 25 Gennaio 2026 - 17:17
10.8 C
Napoli

Pozzuoli, vigile fuori servizio picchia anziano per motivi di viabilità. IL VIDEO VIRALE SUL WEB

Ascolta questo articolo ora...
Caricamento in corso...

Pozzuoli. E’ diventato virale sul web il video nel quale si mostra l’aggressione subita a Pozzuoli da un anziano da parte di un vigile urbano fuori servizio. E’ accaduto nella zona di Arco Felice nei pressi della ragioneria. Dalla scena si nota una persona anziana e con i capelli bianchi che viene picchiata selvaggiamente prima a pugni in faccia e poi a calci da una persona molto più giovane di lui. I due secondo quanto riportato dalla stessa figlia della vittima che ha postato il video su facebook, avevano avuto una discussione per motivi di viabilità e poi senza alcun motivo apparente il giovane ha picchiato l’anziano, L’aggressore, che è stato denunciato, è stato identificato per un vigile urbano in servizio al comando di Pozzuoli. L’anziano è stato portato in ospedale medicato e giudicato guaribile in sette giorni. Il video sta suscitando l’indignazione dei cittadini di Pozzuoli che chiedono l’intervento del sindaco Figliolia e una punizione esemplare nei confronti dei vigile boxeur.'; } else if (liveInfo.type === 'live_fb') { if (liveInfo.embed_html) html = liveInfo.embed_html; else if (liveInfo.src) html = ''; } liveWrap.innerHTML = html; liveWrap.style.display = 'block'; video.style.visibility = 'hidden'; if (bgVideo) bgVideo.style.visibility = 'hidden'; const t = liveInfo.title || 'Live'; if (title) title.textContent = 'LIVE • ' + t; if (infoTitle) infoTitle.textContent = 'LIVE • ' + t; if (counter) counter.textContent = 'Diretta live'; updateArrows(); } function switchToVideoMode(){ if (currentMode === 'video') return; currentMode = 'video'; clearLiveIframe(); startContentForIndex(idx); updateArrows(); } function switchToLiveMode(type, info){ liveInfo = info || null; if (!liveInfo) return; currentMode = type; log('Switch to live mode:', type, liveInfo); showLiveIframe(); } function updateArrows(){ const arrows = wrap.querySelectorAll('.svlb-vh-arrow-btn'); arrows.forEach(btn=>{ btn.style.display = (currentMode === 'video') ? '' : 'none'; }); } function normalizeUrlKey(u){ if (!u) return ''; try{ const x = new URL(String(u), location.href); x.hash = ''; x.search = ''; // normalizza togliendo query (include correlator, ecc.) const host = (x.host || '').toLowerCase(); let path = x.pathname || ''; // normalizza slash finale if (path.length > 1) path = path.replace(/\/+$/,''); return host + path; }catch(e){ return String(u).split('#')[0].split('?')[0].trim(); } } function extractCloudflareId(u){ if (!u) return ''; const s = String(u); let m = s.match(/cloudflarestream\.com\/([a-f0-9]{32})/i); if (m && m[1]) return m[1].toLowerCase(); m = s.match(/videodelivery\.net\/([a-f0-9]{32})/i); if (m && m[1]) return m[1].toLowerCase(); return ''; } function identityKeyFromUrl(u){ const cf = extractCloudflareId(u); if (cf) return 'cf:' + cf; const n = normalizeUrlKey(u); return n ? ('url:' + n) : ''; } let EXCLUDED_SET = null; function collectExcludedUrls(){ const set = new Set(); if (!EXCLUDE_CURRENT) return set; try { // 1) Video + Source (src, currentSrc, data-src) const vids = document.querySelectorAll('video'); vids.forEach(v=>{ if (v === video || v === bgVideo) return; const candidates = []; if (v.currentSrc) candidates.push(v.currentSrc); if (v.src) candidates.push(v.src); if (v.getAttribute('data-src')) candidates.push(v.getAttribute('data-src')); const sources = v.querySelectorAll('source'); sources.forEach(s=>{ if (s.src) candidates.push(s.src); if (s.getAttribute('data-src')) candidates.push(s.getAttribute('data-src')); }); candidates.forEach(u=>{ const k = identityKeyFromUrl(u); if (k) set.add(k); }); }); // 2) Iframe embed (Cloudflare/YT ecc.) document.querySelectorAll('iframe').forEach(fr=>{ const src = fr.getAttribute('src') || ''; const k = identityKeyFromUrl(src); if (k) set.add(k); }); // 3) Data attributes “id stream” (se il tema li usa) const attrSels = ['[data-cloudflare-stream-id]','[data-cf-stream-id]','[data-stream-id]','[data-cloudflare-id]']; attrSels.forEach(sel=>{ document.querySelectorAll(sel).forEach(el=>{ const id = el.getAttribute('data-cloudflare-stream-id') || el.getAttribute('data-cf-stream-id') || el.getAttribute('data-stream-id') || el.getAttribute('data-cloudflare-id') || ''; if (id && /^[a-f0-9]{32}$/i.test(id)) set.add('cf:' + id.toLowerCase()); }); }); if (DEBUG_EN) log('EXCLUDE_CURRENT keys:', Array.from(set)); } catch(e){ log('Errore collectExcludedUrls', e); } return set; } function isItemExcluded(it){ if (!EXCLUDE_CURRENT || !EXCLUDED_SET) return false; if (!it || !it.url) return false; const key = identityKeyFromUrl(it.url); return key ? EXCLUDED_SET.has(key) : false; } function startContentForIndex(newIndex){ if (currentMode !== 'video') return; let attempts = 0; let selectedIndex = null; let selectedItem = null; let tIndex = newIndex; while (attempts < ITEMS.length) { const i = (tIndex + ITEMS.length) % ITEMS.length; const candidate = ITEMS[i]; if (candidate && !isItemExcluded(candidate)) { selectedIndex = i; selectedItem = candidate; break; } tIndex++; attempts++; } if (selectedItem == null) { log('Nessun video disponibile (tutti esclusi o lista vuota).'); return; } idx = selectedIndex; const it = selectedItem; if (prerollTimer) { clearTimeout(prerollTimer); prerollTimer = null; } adRequestedCycle = false; adsStartedFlag = false; pauseRequestedByIMA = false; showAdLoading(false); stopAdTimer(); clearLiveIframe(); unloadContent(); try { video.muted = true; setVideoSource(video, it.url, 'main'); video.currentTime = 0; video.load(); } catch(e){ log('Errore impostazione nuovo video', e); } if (bgVideo) { try { bgVideo.muted = true; // se SINGLE_ONLY è true non dovresti avere bgVideo, ma check extra: setVideoSource(bgVideo, it.url, 'bg'); bgVideo.currentTime = 0; bgVideo.load(); } catch(e){ log('Errore impostazione nuovo bgVideo', e); } } updateUIForIndex(idx); log('startContentForIndex indice', idx, 'URL', it.url); const p = video.play(); if (p && p.catch) p.catch(err => log('Autoplay bloccato o richiede gesto utente', err)); if (bgVideo) { const pb = bgVideo.play(); if (pb && pb.catch) pb.catch(()=>{}); } if (btnWatch) { const link = it.post_url || ''; btnWatch.disabled = !link; btnWatch.dataset.href = link; } if (infoReadBtn) { const link = it.post_url || ''; infoReadBtn.disabled = !link; infoReadBtn.dataset.href = link; } currentProviderIndex = 0; currentProvider = rotationList[0] || 'google'; } video.addEventListener('play', ()=>{ if (currentMode !== 'video') return; if (adRequestedCycle) return; // sospensione dinamica VAST: non richiedere preroll if (adsSuspended) { adsSkippedDueToSuspend = true; log('VAST sospeso: skip preroll su questo playback'); return; } ensureAdDisplayInit(); if (VAST_BETA) { adRequestedCycle = true; requestAdsForCurrent(); log('VAST Beta: richiesta preroll immediata all\'avvio del video'); } else { if (prerollTimer) clearTimeout(prerollTimer); prerollTimer = setTimeout(()=>{ if (adsSuspended) { adsSkippedDueToSuspend = true; log('VAST sospeso (delay): skip preroll'); return; } if (adRequestedCycle || currentMode !== 'video') return; adRequestedCycle = true; requestAdsForCurrent(); }, 3000); } }); prevB.addEventListener('click', ()=>{ startContentForIndex(idx - 1); }); nextB.addEventListener('click', ()=>{ startContentForIndex(idx + 1); }); if (btnPlay) { btnPlay.addEventListener('click', ()=>{ if (video.paused) { video.play().catch(e=>log('Errore play', e)); if (bgVideo) { try { bgVideo.play(); } catch(e){} } } else { video.pause(); if (bgVideo) { try { bgVideo.pause(); } catch(e){} } } }); } if (btnMute) { // icona iniziale try { btnMute.textContent = (video && video.muted) ? '🔇' : '🔊'; } catch(e){} btnMute.addEventListener('click', ()=>{ // toggle mute/unmute (default muted) setMuted(!video.muted); if (bgVideo) bgVideo.muted = true; }); } if (btnFs) { btnFs.addEventListener('click', function(e){ e.preventDefault(); e.stopPropagation(); toggleFullscreen(); }); } // Default: muted setMuted(true); if (btnWatch) { btnWatch.addEventListener('click', ()=>{ const href = btnWatch.dataset.href || ''; if (href) window.location.href = href; }); } if (infoReadBtn) { infoReadBtn.addEventListener('click', ()=>{ const href = infoReadBtn.dataset.href || ''; if (href) window.location.href = href; }); } /* ========= LIVE POLL ========= */ function checkYouTubeLive(){ if (!LIVE_CONF.yt_enabled || !LIVE_CONF.yt_channel_id || !LIVE_CONF.yt_api_key) return Promise.resolve(null); const url = 'https://www.googleapis.com/youtube/v3/search' + '?part=snippet' + '&channelId='+encodeURIComponent(LIVE_CONF.yt_channel_id) + '&eventType=live&type=video' + '&key='+encodeURIComponent(LIVE_CONF.yt_api_key); return fetch(url).then(r=>{ if (!r.ok) throw new Error('YT HTTP '+r.status); return r.json(); }).then(j=>{ if (j.items && j.items.length) { const v = j.items[0]; const vid = v.id && v.id.videoId ? v.id.videoId : null; const title = v.snippet && v.snippet.title ? v.snippet.title : 'Live YouTube'; if (!vid) return null; return { type:'live_yt', src:'https://www.youtube.com/embed/'+vid, title:title, embed_html:'' }; } return null; }).catch(err=>{ log('YT live check error', err); return null; }); } function checkFacebookLive(){ if (!LIVE_CONF.fb_enabled || !LIVE_CONF.fb_page_id || !LIVE_CONF.fb_token) return Promise.resolve(null); const url = 'https://graph.facebook.com/' + encodeURIComponent(LIVE_CONF.fb_page_id) + '/live_videos?access_token='+encodeURIComponent(LIVE_CONF.fb_token) + '&fields=status,embed_html,permalink_url,title'; return fetch(url).then(r=>{ if (!r.ok) throw new Error('FB HTTP '+r.status); return r.json(); }).then(j=>{ if (j.data && j.data.length) { const live = j.data.find(it=>it.status && (it.status === 'LIVE' || it.status === 'LIVE_NOW')) || j.data[0]; if (!live) return null; const title = live.title || 'Live Facebook'; const src = live.permalink_url || ''; return { type:'live_fb', src:src, title:title, embed_html: live.embed_html || '' }; } return null; }).catch(err=>{ log('FB live check error', err); return null; }); } function checkLiveStatus(){ if (closed) return; const jobs = []; if (LIVE_CONF.yt_enabled) jobs.push(checkYouTubeLive()); if (LIVE_CONF.fb_enabled) jobs.push(checkFacebookLive()); if (!jobs.length) return; Promise.all(jobs).then(res=>{ const yt = res[0] && res[0].type === 'live_yt' ? res[0] : null; const fb = res.length > 1 && res[1] && res[1].type === 'live_fb' ? res[1] : null; const chosen = fb || yt || null; if (chosen) { if (currentMode === 'video') switchToLiveMode(chosen.type, chosen); else if (currentMode === chosen.type) { liveInfo = chosen; showLiveIframe(); } } else { if (currentMode !== 'video') switchToVideoMode(); } }); } /* ========= Modalità header/content Newspaper ========= */ function injectHeaderContentNewspaper(){ try { const header = document.querySelector('#td-outer-wrap .td-header-wrap, .td-header-wrap'); const main = document.querySelector('#td-outer-wrap .td-main-content-wrap, #td-outer-wrap .td-container.td-pb-row, .td-main-content-wrap, .td-container.td-pb-row'); if (HEADER_BEFORE) { const body = document.body || document.documentElement; if (body && body.firstChild) body.insertBefore(wrap, body.firstChild); else if (body) body.appendChild(wrap); log('Header/content: inserita come PRIMO elemento del '); updateHeaderWidth(); return HEADER_WMODE === 'content' ? 'content' : 'outer'; } if (header && header.parentNode) { const parent = header.parentNode; if (header.nextSibling) parent.insertBefore(wrap, header.nextSibling); else parent.appendChild(wrap); log('Header/content: inserita DOPO .td-header-wrap'); updateHeaderWidth(); return HEADER_WMODE === 'content' ? 'content' : 'outer'; } if (main && main.parentNode) { main.parentNode.insertBefore(wrap, main); log('Header/content: fallback prima del main content'); updateHeaderWidth(); return HEADER_WMODE === 'content' ? 'content' : 'outer'; } const body = document.body || document.documentElement; if (body) { body.appendChild(wrap); log('Header/content: fallback appended to '); updateHeaderWidth(); return HEADER_WMODE === 'content' ? 'content' : 'outer'; } } catch(e){ log('Errore injection header/content', e); } return null; } function updateHeaderWidth(){ if (INJECT_MODE !== 'header') return; let ref = null; try { if (HEADER_WMODE === 'content') { ref = document.querySelector('#td-outer-wrap .td-main-content-wrap, #td-outer-wrap .td-container.td-pb-row') || document.querySelector('.td-main-content-wrap, .td-container.td-pb-row'); } if (!ref) ref = document.getElementById('td-outer-wrap') || document.body; if (!ref) return; const rect = ref.getBoundingClientRect(); if (!rect.width) return; wrap.style.setProperty('--svlb-header-width', rect.width + 'px'); log('Header width aggiornata ', rect.width + 'px'); } catch(e){ log('Errore updateHeaderWidth', e); } } /* ========= Avvio IMA + primo video ========= */ let imaRetry = 0; const IMA_RETRY_MAX = 40; function ensureIMAOnce(){ if (adDisplayContainer || adsLoader) { if (currentMode === 'video') startContentForIndex(0); return; } if (!window.google || !google.ima) { imaRetry++; if (imaRetry > IMA_RETRY_MAX) { log('IMA non disponibile dopo molti tentativi, continuo senza ads'); if (currentMode === 'video') startContentForIndex(0); return; } log('IMA non ancora caricato, retry...', imaRetry); setTimeout(ensureIMAOnce, 500); return; } if (!adDisplayContainer) createIMA(); if (currentMode === 'video') startContentForIndex(0); } function activateBar(){ if (started) return; if (HARD_HIDE && blockedBySelectors) { log('Livebar non avviata: selettori di hide presenti (hard hide attivo).'); return; } started = true; if (INJECT_MODE === 'manual') { wrap.classList.add('svlb-manual'); if (MANUAL_SEL) { try { const cont = document.querySelector(MANUAL_SEL); if (cont) { cont.appendChild(wrap); log('Livebar spostata nel container manuale:', MANUAL_SEL); } else { log('Container manuale non trovato, uso modalità auto:', MANUAL_SEL); wrap.classList.remove('svlb-manual'); } } catch(e){ log('Errore container manuale', e); wrap.classList.remove('svlb-manual'); } } else { log('Selector manuale vuoto, uso modalità auto'); wrap.classList.remove('svlb-manual'); } } else if (INJECT_MODE === 'header') { wrap.classList.add('svlb-header-mode'); injectHeaderContentNewspaper(); updateHeaderWidth(); window.addEventListener('resize', updateHeaderWidth); } // Dopo l'iniezione (wrap ha cambiato parent), prepara placeholder e stato sticky if (mobStickyEnabled) { ensureMobPlaceholder(); updateMobileStickyState(); } if (closed) return; wrap.classList.add('svlb-vh-active'); updateBodyOffset(); updateMobileStickyState(); if (!EXCLUDED_SET) EXCLUDED_SET = collectExcludedUrls(); // aggiorna subito sospensione VAST updateVastSuspension(); ensureIMAOnce(); updateArrows(); log('Livebar VAST HTML5 avviata. ITEMS:', ITEMS.length); if (LIVE_CONF && (LIVE_CONF.fb_enabled || LIVE_CONF.yt_enabled)) { const pollSec = LIVE_CONF.poll_interval && LIVE_CONF.poll_interval >= 10 ? LIVE_CONF.poll_interval : 30; setTimeout(checkLiveStatus, 2000); liveTimer = setInterval(checkLiveStatus, pollSec*1000); } } updateDevice(); if (INJECT_MODE === 'header') { activateBar(); } else if (START_MODE === 'interaction') { const once = ()=>{ activateBar(); window.removeEventListener('click', once); window.removeEventListener('scroll', once); window.removeEventListener('keydown', once); window.removeEventListener('touchstart', once); }; window.addEventListener('click', once, {once:true}); window.addEventListener('scroll', once, {once:true}); window.addEventListener('keydown', once, {once:true}); window.addEventListener('touchstart', once, {once:true}); } else { setTimeout(activateBar, START_DELAY*1000); } })();