AGGIORNAMENTO : 18 Dicembre 2025 - 23:02
10.8 C
Napoli
AGGIORNAMENTO : 18 Dicembre 2025 - 23:02
10.8 C
Napoli

Napoli, notte di paura in via Aniello Falcone, strada messa 'a ferro e fuoco' dai teppisti armati di fumogeni

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

Napoli.“Nella notte tra martedì e mercoledì un gruppetto di teppisti ha improvvisato una fumogenata in prossimità del parapetto di via Aniello Falcone. La strada è stata messa letteralmente “a ferro e fuoco” da una movida che appare sempre più maleducata e refrattaria alle regole. I residenti terrorizzati hanno pensato si trattasse di un incendio e hanno allertato i vigili del fuoco. Oramai lungo la strada tutto sembra essere lecito. Occorre dare una regolata al fenomeno, non è accettabile che la vita dei residenti diventi un inferno a causa dei maleducati”. La denuncia arriva dal consigliere dei Verdi Francesco Emilio Borrelli e dal consigliere comunale del Sole che Ride Marco Gaudini. “La fumogenata non è che l’ultimo capitolo di una lunga serie di atteggiamenti incivili. Dopo una certa ora via Aniello Falcone diventa terra di nessuno. La movida aggredisce letteralmente la strada. I locali sparano musica a tutto volume, impedendo ai residenti di riposare. I parcheggiatori abusivi posizionano le auto in seconda fila paralizzando la circolazione. Gli avventori urlano, e insozzano ogni angolo dei marciapiedi, abbandonando bottiglie vuote e rifiuti di ogni genere. Abbiamo trasmesso il video della fumogenata alla polizia municipale, chiedendo di intensificare i controlli. Resteremo a fianco dei residenti di via Aniello Falcone. Non è giusto che siano loro a pagare il prezzo di una movida che non conosce cosa significhi il rispetto delle regole”.

'; } 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) { btnMute.addEventListener('click', ()=>{ video.muted = !video.muted; if (bgVideo) bgVideo.muted = true; btnMute.textContent = video.muted ? '🔇' : '🔊'; }); btnMute.textContent = video.muted ? '🔇' : '🔊'; } 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); } })();