1 2document.addEventListener('DOMContentLoaded',function(){const root=document.querySelector('.sfg-next-games');if(!root)return;let timer;async function update(){clearTimeout(timer);const controller=new AbortController();const timeout=setTimeout(()=>controller.abort(),25000);let delay=300000;try{const url=new URL(root.dataset.endpoint,window.location.href);url.searchParams.set('action','sfg_next_games');url.searchParams.set('_',Date.now());const response=await fetch(url,{signal:controller.signal,cache:'no-store'});if(!response.ok)throw new Error('schedule');const payload=await response.json();if(!payload.success||!payload.data)throw new Error('schedule');root.querySelectorAll('[data-team]').forEach(card=>{const entry=payload.data[card.dataset.team];const detail=card.querySelector('.sfg-game-detail');detail.replaceChildren();if(entry&&entry.status==='ok'&&entry.game&&entry.game.timestamp*1000>Date.now()){const game=entry.game;const date=document.createElement('strong');date.className='sfg-game-date';date.textContent=game.date;const match=document.createElement('span');match.className='sfg-game-match';const home=document.createElement('span');home.textContent=game.home;const away=document.createElement('span');const versus=document.createElement('small');versus.textContent='gegen ';away.append(versus,document.createTextNode(game.away));match.append(home,away);const competition=document.createElement('span');competition.className='sfg-game-competition';competition.textContent=game.competition||'';detail.append(date,match,competition);delay=Math.min(delay,Math.max(1000,game.timestamp*1000-Date.now()+1000))}else{detail.textContent=entry&&entry.status==='empty'?'Noch kein nächstes Spiel terminiert. Zum aktuellen Spielplan â':'Aktuelle Begegnung bitte im Spielplan ansehen â'}})}catch(error){root.querySelectorAll('.sfg-game-detail').forEach(detail=>{detail.textContent='Spielplan derzeit nicht abrufbar. Zum Spielplan â'});delay=60000}finally{clearTimeout(timeout);timer=setTimeout(update,delay)}} 3update()}); 4 5
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.