Μαρκό – Ολυμπιακός live για την 4η αγωνιστική της League Phase στο Superbet Κύπελλο Ελλάδας

&bsol;r&bsol;n &bsol;r&bsol;n<&bsol;&sol;div>”&rsqb;&semi;&NewLine; var ad&lowbar;number &equals; 0&semi;&NewLine; document&period;addEventListener&lpar;’DOMContentLoaded’&comma; function &lpar;&rpar; &lbrace;&NewLine; const events &equals; document&period;querySelectorAll&lpar;’&period;timeline-item’&rpar;&semi;&NewLine; let count &equals; 0&semi;&NewLine; for &lpar;let i &equals; events&period;length – 1&semi; i >&equals; 0&semi; i–&rpar; &lbrace;&NewLine; count&plus;&plus;&semi;&NewLine; if &lpar;count &equals;&equals;&equals; 15 &vert;&vert; count &percnt; 20 &equals;&equals;&equals; 5&rpar; &lbrace;&NewLine; const adBlock &equals; document&period;createElement&lpar;’div’&rpar;&semi;&NewLine; ad&lowbar;number&plus;&plus;&semi;&NewLine; adBlock&period;className &equals; ‘advert-block text-center fw my-2’&semi;&NewLine; adBlock&period;innerHTML &equals; &grave;

ΔΙΑΦΗΜΙΣΗ

` + adArray[ad_number % 3].replaceAll(‘gpt-passback-liveblog-1’, ‘gpt-passback-liveblog-‘ + ad_number) + `

&grave;&semi;&NewLine; if &lpar;i &equals;&equals;&equals; 0&rpar;&lbrace;&NewLine; events&lbrack;i&rsqb;&period;insertAdjacentElement&lpar;’afterend’&comma; adBlock&rpar;&semi;&NewLine; &rcub; else &lbrace;&NewLine; events&lbrack;i&rsqb;&period;insertAdjacentElement&lpar;’beforebegin’&comma; adBlock&rpar;&semi;&NewLine; &rcub;&NewLine; adBlock&period;querySelectorAll&lpar;’script’&rpar;&period;forEach&lpar;oldScript &equals;> &lbrace;&NewLine; const newScript &equals; document&period;createElement&lpar;’script’&rpar;&semi;&NewLine; if &lpar;oldScript&period;src&rpar; &lbrace;&NewLine; newScript&period;src &equals; oldScript&period;src&semi;&NewLine; newScript&period;async &equals; oldScript&period;async&semi;&NewLine; &rcub; else &lbrace;&NewLine; newScript&period;textContent &equals; oldScript&period;textContent&semi;&NewLine; &rcub;&NewLine; oldScript&period;replaceWith&lpar;newScript&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine;&NewLine; function playSound&lpar;filePath&rpar; &lbrace;&NewLine; const audio &equals; new Audio&lpar;filePath&rpar;&semi;&NewLine; audio&period;play&lpar;&rpar;&NewLine; &period;then&lpar;&lpar;&rpar; &equals;> console&period;log&lpar;&grave;Playing sound&colon; &dollar;&lbrace;filePath&rcub;&grave;&rpar;&rpar;&NewLine; &period;catch&lpar;error &equals;> console&period;error&lpar;&grave;Error playing sound&colon; &dollar;&lbrace;error&rcub;&grave;&rpar;&rpar;&semi;&NewLine; &rcub;&NewLine;&NewLine; function update&lowbar;event&lowbar;timeline&lpar;contentID&comma; limit &equals; null&comma; format &equals; null&rpar; &lbrace;&NewLine; let url &equals; ‘&sol;wp-admin&sol;admin-ajax&period;php&quest;action&equals;gem&lowbar;get&lowbar;post&lowbar;timeline&id&equals;’&plus;contentID&semi;&NewLine; if &lpar;limit&rpar;&lbrace;&NewLine; url &plus;&equals; ‘&limit&equals;’&plus;limit&semi;&NewLine; &rcub;&NewLine; if &lpar;format&rpar;&lbrace;&NewLine; url &plus;&equals; ‘&format&equals;1’&semi;&NewLine; &rcub;&NewLine; fetch&lpar;url&rpar;&NewLine; &period;then&lpar;response &equals;> &lbrace;&NewLine; if &lpar;&excl;response&rpar;&NewLine; return&semi;&NewLine; response&period;text&lpar;&rpar;&period;then&lpar;function &lpar;text&rpar; &lbrace;&NewLine; const parser &equals; new DOMParser&lpar;&rpar;&semi;&NewLine; const response&lowbar;doc &equals; parser&period;parseFromString&lpar;text&comma; “text&sol;html”&rpar;&semi;&NewLine; const newTimeline &equals; response&lowbar;doc&period;querySelector&lpar;’&period;timeline’&rpar;&semi;&NewLine; const liveTimeline &equals; document&period;querySelector&lpar;’&period;timeline’&rpar;&semi;&NewLine;&NewLine; let count &equals; 0&semi;&NewLine; Array&period;from&lpar;liveTimeline&period;children&rpar;&period;forEach&lpar;existingChild &equals;> &lbrace;&NewLine; const foundInNewTimeline &equals; Array&period;from&lpar;newTimeline&period;children&rpar;&period;some&lpar;newChild &equals;> newChild&period;id &equals;&equals;&equals; existingChild&period;id&rpar;&semi;&NewLine; if &lpar;&excl;foundInNewTimeline && &excl;existingChild&period;classList&period;contains&lpar;’advert-block’&rpar;&rpar; &lbrace;&NewLine; liveTimeline&period;removeChild&lpar;existingChild&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine;&NewLine; Array&period;from&lpar;newTimeline&period;children&rpar;&period;reverse&lpar;&rpar;&period;forEach&lpar;newChild &equals;> &lbrace;&NewLine; let not&lowbar;exists &equals; true&semi;&NewLine; Array&period;from&lpar;liveTimeline&period;children&rpar;&period;some&lpar;existingChild &equals;> &lbrace;&NewLine; if &lpar;existingChild&period;id &equals;&equals;&equals; newChild&period;id&rpar; &lbrace;&NewLine; if &lpar;existingChild&period;dataset&period;time &equals;&equals;&equals; newChild&period;dataset&period;time&rpar; &lbrace;&NewLine; if &lpar;existingChild&period;dataset&period;updated < newChild&period;dataset&period;updated&rpar; &lbrace;&NewLine; liveTimeline&period;replaceChild&lpar;newChild&period;cloneNode&lpar;true&rpar;&comma; existingChild&rpar;&semi;&NewLine; &rcub;&NewLine; not&lowbar;exists &equals; false&semi;&NewLine; &rcub;&NewLine; return true&semi; &sol;&sol; break loop&NewLine; &rcub;&NewLine; return false&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; const clonedNode &equals; newChild&period;cloneNode&lpar;true&rpar;&semi;&NewLine; if &lpar;not&lowbar;exists&rpar; &lbrace;&NewLine; const pinnedElements &equals; liveTimeline&period;querySelectorAll&lpar;’&lbrack;data-event-pinned&equals;”1″&rsqb;’&rpar;&semi;&NewLine; const lastPinned &equals; pinnedElements&lbrack;pinnedElements&period;length – 1&rsqb;&semi;&NewLine; if &lpar;newChild&period;dataset&period;eventPinned &equals;&equals;&equals; “1”&rpar; &lbrace;&NewLine; liveTimeline&period;prepend&lpar;clonedNode&rpar;&semi;&NewLine; &rcub; else &lbrace;&NewLine; if &lpar;lastPinned&rpar; &lbrace;&NewLine; lastPinned&period;insertAdjacentElement&lpar;’afterend’&comma; clonedNode&rpar;&semi;&NewLine; &rcub; else &lbrace;&NewLine; liveTimeline&period;prepend&lpar;clonedNode&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; if &lpar;format && limit && liveTimeline&period;childElementCount > limit&rpar; &lbrace;&NewLine; liveTimeline&period;removeChild&lpar;liveTimeline&period;lastChild&rpar;&semi;&NewLine; &rcub;&NewLine; const eventCount &equals; liveTimeline&period;querySelectorAll&lpar;’&period;timeline-item’&rpar;&semi;&NewLine; if &lpar;eventCount&period;length &percnt; 20 &equals;&equals;&equals; 5 &vert;&vert; eventCount&period;length &equals;&equals;&equals; 15&rpar;&lbrace;&NewLine; const adverts &equals; liveTimeline&period;querySelectorAll&lpar;’&period;advert-block’&rpar;&semi;&NewLine; const adNumber &equals; adverts&period;length &percnt; 3&semi;&NewLine; if &lpar;Number&period;isInteger&lpar;adNumber&rpar;&rpar; &lbrace;&NewLine; const adBlock &equals; document&period;createElement&lpar;’div’&rpar;&semi;&NewLine; ad&lowbar;number&plus;&plus;&semi;&NewLine; adBlock&period;className &equals; ‘advert-block text-center fw my-2’&semi;&NewLine; adBlock&period;innerHTML &equals; &grave;

ΔΙΑΦΗΜΙΣΗ

`+adArray[ad_number%3].replaceAll(‘gpt-passback-liveblog-1’, ‘gpt-passback-liveblog-‘ + ad_number)+`

&grave;&semi;&NewLine; if &lpar;lastPinned&rpar; &lbrace;&NewLine; lastPinned&period;insertAdjacentElement&lpar;’afterend’&comma; adBlock&rpar;&semi;&NewLine; &rcub; else &lbrace;&NewLine; clonedNode&period;insertAdjacentElement&lpar;’afterend’&comma; adBlock&rpar;&semi;&NewLine; &rcub;&NewLine; adBlock&period;querySelectorAll&lpar;’script’&rpar;&period;forEach&lpar;oldScript &equals;> &lbrace;&NewLine; const newScript &equals; document&period;createElement&lpar;’script’&rpar;&semi;&NewLine; if &lpar;oldScript&period;src&rpar; &lbrace;&NewLine; newScript&period;src &equals; oldScript&period;src&semi;&NewLine; newScript&period;async &equals; oldScript&period;async&semi;&NewLine; &rcub; else &lbrace;&NewLine; newScript&period;textContent &equals; oldScript&period;textContent&semi;&NewLine; &rcub;&NewLine; oldScript&period;replaceWith&lpar;newScript&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; count&plus;&plus;&semi;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine; if &lpar;count > 0&rpar; &lbrace;&NewLine; const events &equals; Array&period;from&lpar;liveTimeline&period;children&rpar;&semi;&NewLine; const scripts &equals; Array&period;from&lpar;document&period;body&period;querySelectorAll&lpar;’body > script’&rpar;&rpar;&semi;&NewLine; const newScripts &equals; &lbrack;&rsqb;&semi;&NewLine;&NewLine; events&period;forEach&lpar;ch &equals;> &lbrace;&NewLine; ch&period;querySelectorAll&lpar;’script’&rpar;&period;forEach&lpar;script &equals;> &lbrace;&NewLine; if &lpar;script&period;src&rpar; &lbrace;&NewLine; if &lpar;&excl;newScripts&period;some&lpar;s &equals;> s&period;src &equals;&equals;&equals; script&period;src&rpar;&rpar; &lbrace;&NewLine; newScripts&period;push&lpar;script&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; console&period;info&lpar;”Added ” &plus; count &plus; ” timeline events”&rpar;&semi;&NewLine; playSound&lpar;’&sol;wp-content&sol;themes&sol;generatepress&lowbar;child&sol;assets&sol;sounds&sol;notification&period;mp3’&rpar;&semi;&NewLine; newScripts&period;forEach&lpar;newScript &equals;> &lbrace;&NewLine; scripts&period;forEach&lpar;script &equals;> &lbrace;&NewLine; if &lpar;&lpar;script&period;src && script&period;src &equals;&equals;&equals; newScript&period;src&rpar; &vert;&vert;&NewLine; &lpar;&excl;script&period;src && script&period;textContent &equals;&equals;&equals; newScript&period;textContent&rpar;&rpar; &lbrace;&NewLine; document&period;body&period;removeChild&lpar;script&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine; const scriptTag &equals; document&period;createElement&lpar;’script’&rpar;&semi;&NewLine; Array&period;from&lpar;newScript&period;attributes&rpar;&period;forEach&lpar;attr &equals;> &lbrace;&NewLine; scriptTag&period;setAttribute&lpar;attr&period;name&comma; attr&period;value&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; if &lpar;newScript&period;src&rpar; scriptTag&period;src &equals; newScript&period;src&semi;&NewLine; if &lpar;newScript&period;textContent&rpar; scriptTag&period;textContent &equals; newScript&period;textContent&semi;&NewLine; document&period;body&period;appendChild&lpar;scriptTag&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&rpar;&NewLine; &period;catch&lpar;error &equals;> &lbrace;&NewLine; console&period;error&lpar;’Error&colon;’&comma; error&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine;&NewLine; function update&lowbar;match&lowbar;score&lpar;contentID&rpar; &lbrace;&NewLine; let url &equals; ‘&sol;wp-admin&sol;admin-ajax&period;php&quest;action&equals;gem&lowbar;get&lowbar;timeline&lowbar;header&id&equals;’&plus;contentID&semi;&NewLine; fetch&lpar;url&rpar;&NewLine; &period;then&lpar;response &equals;> &lbrace;&NewLine; if &lpar;&excl;response&rpar;&NewLine; return&semi;&NewLine; response&period;json&lpar;&rpar;&period;then&lpar;function &lpar;json&rpar; &lbrace;&NewLine; const match&lowbar;data &equals; json&quest;&period;data&semi;&NewLine; if &lpar;match&lowbar;data&quest;&period;match&lowbar;score&lowbar;desc&rpar;&lbrace;&NewLine; const period &equals; document&period;querySelector&lpar;’&period;match&lowbar;score&lowbar;desc’&rpar;&semi;&NewLine; if &lpar;period&rpar;&lbrace;&NewLine; period&period;innerText &equals; match&lowbar;data&period;match&lowbar;score&lowbar;desc&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; if &lpar;match&lowbar;data&quest;&period;match&lowbar;type &equals;&equals;&equals; ‘match’&rpar;&lbrace;&NewLine; const homeScoreEl &equals; document&period;querySelector&lpar;’&period;home&lowbar;score’&rpar;&semi;&NewLine; if &lpar;homeScoreEl && match&lowbar;data&quest;&period;score1Teama&rpar; &lbrace;&NewLine; homeScoreEl&period;innerText &equals; match&lowbar;data&period;score1Teama&semi;&NewLine; &rcub;&NewLine; const awayScoreEl &equals; document&period;querySelector&lpar;’&period;away&lowbar;score’&rpar;&semi;&NewLine; if &lpar;awayScoreEl && match&lowbar;data&quest;&period;score1Teamb&rpar; &lbrace;&NewLine; awayScoreEl&period;innerText &equals; match&lowbar;data&period;score1Teamb&semi;&NewLine; &rcub;&NewLine; &rcub; else if &lpar;match&lowbar;data&quest;&period;match&lowbar;type &equals;&equals;&equals; ‘tennis’&rpar;&lbrace;&NewLine; let scoreList &equals; &lbrack;&rsqb;&semi;&NewLine; for &lpar;let i &equals; 1&semi; i<&equals;5&semi; i&plus;&plus;&rpar;&lbrace;&NewLine; let home &equals; match&lowbar;data&lbrack;’score’ &plus; i &plus; ‘Teama’&rsqb;&semi;&NewLine; let away &equals; match&lowbar;data&lbrack;’score’ &plus; i &plus; ‘Teamb’&rsqb;&semi;&NewLine; if &lpar;Number&period;isInteger&lpar;home&rpar; &vert;&vert; Number&period;isInteger&lpar;away&rpar;&rpar;&lbrace;&NewLine; let round &equals; &lbrace;’home&lowbar;score’&colon; Number&period;isInteger&lpar;home&rpar; &quest; home &colon; 0&comma;&NewLine; ‘away&lowbar;score’&colon; Number&period;isInteger&lpar;away&rpar; &quest; away &colon; 0&comma;&NewLine; ‘winner’&colon; home > away &quest; ‘home’ &colon; ‘away’&rcub;&semi;&NewLine; scoreList&period;push&lpar;round&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; const scoreboard &equals; document&period;querySelector&lpar;’&period;scoreboard-tennis’&rpar;&semi;&NewLine; if &lpar;&excl;scoreboard&rpar; return&semi;&NewLine; const homeScoresParent &equals; scoreboard&period;querySelectorAll&lpar;’&period;score’&rpar;&lbrack;0&rsqb;&semi;&NewLine; const awayScoresParent &equals; scoreboard&period;querySelectorAll&lpar;’&period;score’&rpar;&lbrack;1&rsqb;&semi;&NewLine; const matchEnded &equals; document&period;querySelector&lpar;’&lbrack;data-event-type&equals;”match&lowbar;ended”&rsqb;’&rpar;&semi;&NewLine; for &lpar;let i &equals; 1&semi; i<&equals;scoreList&period;length&semi; i&plus;&plus;&rpar;&lbrace;&NewLine; let home&lowbar;scores &equals; homeScoresParent&period;getElementsByClassName&lpar;’home&lowbar;round&lowbar;score’&rpar;&semi;&NewLine; let away&lowbar;scores &equals; awayScoresParent&period;getElementsByClassName&lpar;’away&lowbar;round&lowbar;score’&rpar;&semi;&NewLine; let round &equals; scoreList&lbrack;i-1&rsqb;&semi;&NewLine; if &lpar;round&rpar;&lbrace;&NewLine; let home&lowbar;score &equals; home&lowbar;scores&lbrack;i-1&rsqb;&semi;&NewLine; let away&lowbar;score &equals; away&lowbar;scores&lbrack;i-1&rsqb;&semi;&NewLine; if &lpar;Number&period;isInteger&lpar;round&period;home&lowbar;score&rpar; &vert;&vert; Number&period;isInteger&lpar;round&period;away&lowbar;score&rpar;&rpar; &lbrace;&NewLine; if &lpar;home&lowbar;score&rpar;&lbrace;&NewLine; home&lowbar;score&period;innerText &equals; round&period;home&lowbar;score&semi;&NewLine; &rcub; else &lbrace;&NewLine; home&lowbar;score &equals; document&period;createElement&lpar;’strong’&rpar;&semi;&NewLine; home&lowbar;score&period;classList&period;add&lpar;’home&lowbar;round&lowbar;score’&rpar;&semi;&NewLine; home&lowbar;score&period;innerText &equals; round&period;home&lowbar;score&semi;&NewLine; homeScoresParent&period;appendChild&lpar;home&lowbar;score&rpar;&semi;&NewLine; &rcub;&NewLine; if &lpar;away&lowbar;score&rpar;&lbrace;&NewLine; away&lowbar;score&period;innerText &equals; round&period;away&lowbar;score&semi;&NewLine; &rcub; else &lbrace;&NewLine; away&lowbar;score &equals; document&period;createElement&lpar;’strong’&rpar;&semi;&NewLine; away&lowbar;score&period;classList&period;add&lpar;’away&lowbar;round&lowbar;score’&rpar;&semi;&NewLine; away&lowbar;score&period;innerText &equals; round&period;away&lowbar;score&semi;&NewLine; awayScoresParent&period;appendChild&lpar;away&lowbar;score&rpar;&semi;&NewLine; &rcub;&NewLine; if &lpar;scoreList&period;length &excl;&equals;&equals; i&rpar; &lbrace;&NewLine; if &lpar;round&period;winner &equals;&equals;&equals; ‘home’&rpar; &lbrace;&NewLine; away&lowbar;score&period;classList&period;add&lpar;’disabled’&rpar;&semi;&NewLine; &rcub; else if &lpar;round&period;winner &equals;&equals;&equals; ‘away’&rpar; &lbrace;&NewLine; home&lowbar;score&period;classList&period;add&lpar;’disabled’&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub; else &lbrace;&NewLine; if &lpar;matchEnded&rpar;&lbrace;&NewLine; home&lowbar;score&period;classList&period;remove&lpar;’disabled’&rpar;&semi;&NewLine; away&lowbar;score&period;classList&period;remove&lpar;’disabled’&rpar;&semi;&NewLine; home&lowbar;score&period;classList&period;add&lpar;’text-red’&rpar;&semi;&NewLine; away&lowbar;score&period;classList&period;add&lpar;’text-red’&rpar;&semi;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&rpar;&NewLine; &period;catch&lpar;error &equals;> &lbrace;&NewLine; console&period;error&lpar;’Error&colon;’&comma; error&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; &rcub;&NewLine;&NewLine; document&period;addEventListener&lpar;’DOMContentLoaded’&comma; function &lpar;&rpar; &lbrace;&NewLine; update&lowbar;match&lowbar;score&lpar;’4809172’&rpar;&semi;&NewLine; update&lowbar;event&lowbar;timeline&lpar;’4809172’&rpar;&semi;&NewLine;&NewLine; document&period;querySelector&lpar;’&num;timeline-loader’&rpar;&quest;&period;classList&period;add&lpar;’hidden’&rpar;&semi;&NewLine; &rcub;&rpar;&semi;&NewLine; setInterval&lpar;&lpar;&rpar; &equals;> update&lowbar;match&lowbar;score&lpar;’4809172’&rpar;&comma; 5000&rpar;&semi;&NewLine; setInterval&lpar;&lpar;&rpar; &equals;> update&lowbar;event&lowbar;timeline&lpar;’4809172’&rpar;&comma; 5000&rpar;&semi;&NewLine; &NewLine; &NewLine;&NewLine;

Ακολουθήστε το Νewsit.gr στο Google News και ενημερωθείτε πρώτοι για όλη την ειδησεογραφία και τα τελευταία νέα της ημέρας