iobroker.openligadb
Version:
ioBroker Adapter to get soccer sport match results from OpenLigaDB
111 lines (110 loc) • 25.4 kB
JavaScript
;(()=>{var W=(n,e)=>()=>(n&&(e=n(n=0)),e);var I=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var F=(n,e,t)=>new Promise((r,d)=>{var s=c=>{try{p(t.next(c))}catch(N){d(N)}},f=c=>{try{p(t.throw(c))}catch(N){d(N)}},p=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,f);p((t=t.apply(n,e)).next())});var H,E=W(()=>{H="1.8.0"});var R=I(J=>{E();fetch("widgets/openligadb/i18n/translations.json").then(n=>F(J,null,function*(){let e=yield n.json();$.extend(!0,systemDictionary,e)}));vis.binds.openligadb={version:H,showVersion:function(){vis.binds.openligadb.version&&(console.log(`Version openligadb: ${vis.binds.openligadb.version}`),vis.binds.openligadb.version=null)},pivottable2:{createWidget:function(n,e,t,r){let d=$(`#${n}`);if(!d.length)return setTimeout(function(){vis.binds.openligadb.pivottable2.createWidget(n,e,t,r)},100);let s=t["oid-allmatches"]?JSON.parse(vis.states.attr(`${t["oid-allmatches"]}.val`)):[],f=t["oid-currgameday"]?vis.states.attr(`${t["oid-currgameday"]}.val`):1;f=f||1;let p=t.maxicon||25,c=t.shortname||!1,N=t.onlylogo||!1,x=t.highlight||"",v=vis.binds.openligadb.prepareFilter(x),y=t.sort||"table",O=t.highlightontop||!1;function T(){vis.binds.openligadb.pivottable2.createWidget(n,e,t,r)}if(t["oid-allmatches"]&&t["oid-currgameday"]&&(vis.editMode||vis.binds.openligadb.bindStates2(d,[t["oid-allmatches"],t["oid-currgameday"]],T)),!s)return;let u=s.reduce(function(h,g){let k;Object.prototype.hasOwnProperty.call(h,g.team1.teamName)?k=h[g.team1.teamName]:k={teamName:g.team1.teamName,shortName:g.team1.shortName,teamIconUrl:g.team1.teamIconUrl,gamedays:[]};let w=vis.binds.openligadb.getResult(g.matchResults),D=Object.prototype.hasOwnProperty.call(w,"pointsTeam1")?w.pointsTeam1:"-",o=Object.prototype.hasOwnProperty.call(w,"pointsTeam2")?w.pointsTeam2:"-";g.group.groupOrderID>f&&(D="-",o="-");let b={matchDateTime:g.matchDateTime,result:`${D}:${o}`,groupName:g.group.groupName,groupOrderID:g.group.groupOrderID,teamName:g.team2.teamName,shortName:g.team2.shortName,teamIconUrl:g.team2.teamIconUrl};return k.gamedays[g.team2.teamName]=b,h[g.team1.teamName]=k,h},[]),m=vis.binds.openligadb.table4.calcTable(s,1,f,f),i=[];for(let h in m)i.push(m[h]);if(y=="table"&&(m=i.sort(function(h,g){return h.points>g.points?-1:g.points>h.points||h.goalDiff<g.goalDiff?1:h.goalDiff>g.goalDiff?-1:0})),y=="name"&&(m=i.sort(function(h,g){let k=c?h.shortName:h.teamName,w=c?g.shortName:g.teamName;return k>w?1:k<w?-1:0})),O&&v.map(h=>h.filter).join(";").trim()!=""){let h=v.map(g=>g.filter).join(";").split(";");h=h.reverse();for(let g=0;g<h.length;g++){let k=m.findIndex(function(w){return w.teamName.toLowerCase().indexOf(h[g].toLowerCase())>=0});k>0&&m.splice(0,0,m.splice(k,1)[0])}}let a="";a+=`<style>
`,a+=`#${n} .oldb-icon {
`,a+=` max-height: ${p}px;
`,a+=` max-width: ${p}px;
`,a+=`}
`,a+=`#${n} .oldb-center {
`,a+=` text-align: center;
`,a+=`}
`,a+=`#${n} .oldb-tt td{
`,a+=` white-space: nowrap;
`,a+=`}
`,a+=`#${n} .oldb-full {
`,a+=` width: 100%;
`,a+=`}
`,a+=`</style>
`,a+='<table class="oldb-tt">',a+=" <tr>",a+=' <th class="oldb-center oldb-rank">#</th><th></th><th></th>',m.forEach(function(h){a+=' <th class="oldb-center oldb-tdicon">',a+=` <img class="oldb-icon" src="${h.teamIconUrl}">`,a+=" </th>"}),a+=' <th class="oldb-center oldb-goaldiff">Diff</th><th class="oldb-center oldb-points">Punkte</th>',a+=" </tr>";let l;m.forEach(function(h){l=u[h.teamName];let g=c?h.shortName:h.teamName;vis.binds.openligadb.checkHighlite(h.teamName,v.map(k=>k.filter).join(";"))&&(g=`<b class="favorite ${vis.binds.openligadb.getCSSClass(g,v)}">${g}</b>`),a+=" <tr>",a+=' <td class="oldb-center oldb-rank">',a+=h.ranking[h.ranking.length-1],a+=" </td>",a+=' <td class="oldb-center oldb-tdicon">',a+=` <img class="oldb-icon" src="${h.teamIconUrl}">`,a+=" </td>",N||(a+=` <td class="oldb-teamname oldb-full">${g}</td>`),m.forEach(function(k){if(h.teamName==k.teamName){a+=' <td class=""></td>';return}let w=l.gamedays[k.teamName]&&l.gamedays[k.teamName].result||"-";a+=` <td class="oldb-center oldb-result">${w}</td>`}),a+=` <td class="oldb-center oldb-goaldiff">${h.goalDiff}</td>`,a+=` <td class="oldb-center oldb-points">${h.points}</td>`,a+=" </tr>"}),a+="</table>",$(`#${n}`).html(a)}},goalgetters2:{createWidget:function(n,e,t,r){let d=$(`#${n}`);if(!d.length)return setTimeout(function(){vis.binds.openligadb.goalgetters2.createWidget(n,e,t,r)},100);let s=t["oid-goalgetters"]?JSON.parse(vis.states.attr(`${t["oid-goalgetters"]}.val`)):[],f=t.maxcount||99999,p=t.sort||"goal",c=t.highlight||"",N=t.showonlyhighlight||!1;function x(){vis.binds.openligadb.goalgetters2.createWidget(n,e,t,r)}t["oid-goalgetters"]&&(vis.editMode||vis.binds.openligadb.bindStates2(d,[t["oid-goalgetters"]],x)),s=this.setName(s),p=="goal"&&(s=s.sort(function(O,T){return T.goalCount-O.goalCount})),p=="name"&&(s=s.sort(function(O,T){return`${O.lastname} ${O.prename}`.localeCompare(`${T.lastname} ${T.prename}`)}));let v="";v+=`<style>
`,v+=`#${n} .oldb-tt td{
`,v+=` white-space: nowrap;
`,v+=`}
`,v+=`#${n} .oldb-left {
`,v+=` text-align: left;
`,v+=`}
`,v+=`</style>
`,v+='<table class="oldb-gg">',v+=" <tr>",v+=' <th class="oldb-left">Name</td>',v+=' <th class="oldb-left">Tore</td>',v+=" </tr>";let y=0;s.forEach(function(O){if(y<f){let T="";T+=O.lastname,O.prename?T+=`, ${O.prename}`:T+=O.prename;let u=vis.binds.openligadb.checkHighlite(T,c);u&&(T=`<b>${T}</b>`),(!N||N&&u)&&(v+=" <tr>",v+=` <td class="oldb-left">${T}</td>`,v+=` <td class="oldb-left">${O.goalCount}</td>`,v+=" </tr>",y++)}}),v+="</table> ",$(`#${n}`).html(v)},setName:function(n){let e;return n.forEach(function(t){let r=/(.+), ?(.+)/g,d=/(.+)\. ?(.+)/g,s=t.goalGetterName.trim();if(t.ok=!1,e=r.exec(s),e&&e[1]&&e[2]){t.prename=e[2],t.lastname=e[1],t.ok=!0;return}if(e=d.exec(s),e&&e[1]&&e[2]){t.lastname=e[2],t.prename=`${e[1]}.`,t.ok=!0;return}if(e=s.split(" "),e&&e.length>1){t.lastname=e.pop(),t.prename=e.join(" "),t.ok=!0;return}e&&e.length==1&&(t.lastname=e.pop(),t.prename="",t.ok=!0)}),n}},favgames3:{createWidget:function(n,e,t,r){let d=$(`#${n}`);if(!d.length)return setTimeout(function(){vis.binds.openligadb.favgames3.createWidget(n,e,t,r)},100);let s=[],f=t.showabbreviation||!1,p=t.onlylogo||!1,c=t.showweekday||!1,N=t.showresult||!1,x=t.maxicon||25,v="",y=[];for(let a=1;a<=t.lcount;a++){let l=t[`oid-allmatches${a}`]?JSON.parse(vis.states.attr(`${t[`oid-allmatches${a}`]}.val`)):[],h=t[`oid-currgameday${a}`]?vis.states.attr(`${t[`oid-currgameday${a}`]}.val`):1;t[`oid-allmatches${a}`]&&y.push(t[`oid-allmatches${a}`]),t[`oid-currgameday${a}`]&&y.push(t[`oid-currgameday${a}`]);let g=t[`showgameday${a}`]||"";vis.editMode&&/{.*}/gm.test(g)&&(g=""),g==0&&(g=""),g=g||h||"";let k=t[`showgamedaycount${a}`]||9999;k==0&&(k=9999);let w=t[`abbreviation${a}`]||"",D=t[`shortname${a}`]||!1,o=t[`filter${a}`]||"",b=vis.binds.openligadb.prepareFilter(o);s=s.concat(this.filterFavGames(l,g,k,h,b,D,w)),o==""&&(v+=`group${a} `)}function O(){vis.binds.openligadb.favgames3.createWidget(n,e,t,r)}y.length>0&&(vis.editMode||vis.binds.openligadb.bindStates2(d,y,O)),s=this.sortFavGames(s);let T={weekday:"short"},u={month:"2-digit",day:"2-digit"},m={hour:"2-digit",minute:"2-digit"},i="";i+=`<style>
`,i+=`#${n} .oldb-icon {
`,i+=` max-height: ${x}px;
`,i+=` max-width: ${x}px;
`,i+=`}
`,i+=`#${n} .oldb-tdicon {
`,i+=` width: ${x}px;
`,i+=`}
`,i+=`#${n} .oldb-tt {
`,i+=` width: 100%;
`,i+=`}
`,i+=`#${n} .oldb-tt td{
`,i+=` white-space: nowrap;
`,i+=`}
`,i+=`#${n} .oldb-full {
`,i+=` width: 50%;
`,i+=`}
`,i+=`#${n} .oldb-center {
`,i+=` text-align: center;
`,i+=`}
`,i+=`#${n} .oldb-right {
`,i+=` text-align: right;
`,i+=`}
`,i+=`#${n} .oldb-left {
`,i+=` text-align: left;
`,i+=`}
`,i+=`#${n} .oldb-datetime {
`,i+=` font-weight: bold;
`,i+=`}
`,i+=`</style>
`,i+='<table class="oldb-tt">',s.forEach(function(a){let l=a.shortname?a.team1.shortName:a.team1.teamName,h=a.shortname?a.team2.shortName:a.team2.teamName;vis.binds.openligadb.checkHighlite(l,a.filter.map(b=>b.filter).join(";"))&&(l=`<b class="favorite ${vis.binds.openligadb.getCSSClass(l,a.filter)}">${l}</b>`),vis.binds.openligadb.checkHighlite(h,a.filter.map(b=>b.filter).join(";"))&&(h=`<b class="favorite ${vis.binds.openligadb.getCSSClass(h,a.filter)}">${h}</b>`);let g=vis.binds.openligadb.getResult(a.matchResults),k=Object.prototype.hasOwnProperty.call(g,"pointsTeam1")?g.pointsTeam1:"-",w=Object.prototype.hasOwnProperty.call(g,"pointsTeam2")?g.pointsTeam2:"-",D=new Date,o=vis.binds.openligadb.getDateFromJSON(a.matchDateTime);vis.binds.openligadb.compareDate(D,o)?i+=' <tr class="todaygame">':i+=" <tr>",c&&(i+=` <td class="oldb-left">${vis.binds.openligadb.getDateFromJSON(a.matchDateTime).toLocaleString(vis.language,T)}</td>`),i+=` <td class="oldb-left">${vis.binds.openligadb.getDateFromJSON(a.matchDateTime).toLocaleString(vis.language,u)}</td>`,i+=` <td class="oldb-left">${vis.binds.openligadb.getDateFromJSON(a.matchDateTime).toLocaleString(vis.language,m)}</td>`,f&&(i+=` <td class="oldb-left">${a.abbreviation}</td>`),i+=' <td class="oldb-center oldb-tdicon">',i+=` <img class="oldb-icon" src="${a.team1.teamIconUrl}">`,i+=" </td>",p||(i+=` <td class="oldb-full">${l}</td>`),N&&(i+=` <td class="oldb-left">${k}</td>`),i+=' <td class="oldb-left">:</td>',N&&(i+=` <td class="oldb-left">${w}</td>`),i+=' <td class="oldb-center oldb-tdicon">',i+=` <img class="oldb-left oldb-icon" src="${a.team2.teamIconUrl}">`,i+=" </td>",p||(i+=` <td class="oldb-full">${h}</td>`),i+=" </tr>"}),v!=""&&(i+=`<tr><td>No filter set for: ${v}</td></tr>`),i+="</table> ",$(`#${n}`).html(i)},filterFavGames:function(n,e,t,r,d,s,f){return Array.isArray(n)?(e=parseInt(e),t=parseInt(t),r=parseInt(r),n.reduce(function(p,c){let N;return c.abbreviation=f,e>0&&c.group.groupOrderID>=e&&c.group.groupOrderID<e+t&&(N=c),e<0&&c.group.groupOrderID>=r+e&&c.group.groupOrderID<r+e+t&&(N=c),c.filter=d,c.shortname=s,N&&(vis.binds.openligadb.checkHighlite(c.team1.teamName,d.map(x=>x.filter).join(";"))||vis.binds.openligadb.checkHighlite(c.team2.teamName,d.map(x=>x.filter).join(";")))&&p.push(c),p},[])):[]},sortFavGames:function(n){return n.sort(function(e,t){let r=0;return vis.binds.openligadb.getDateFromJSON(e.matchDateTime).getTime()>vis.binds.openligadb.getDateFromJSON(t.matchDateTime).getTime()&&(r=1),vis.binds.openligadb.getDateFromJSON(e.matchDateTime).getTime()<vis.binds.openligadb.getDateFromJSON(t.matchDateTime).getTime()&&(r=-1),r})}},gameday2:{createWidget:function(n,e,t,r){let d=$(`#${n}`);if(!d.length)return setTimeout(function(){vis.binds.openligadb.gameday2.createWidget(n,e,t,r)},100);let s=t["oid-allmatches"]?JSON.parse(vis.states.attr(`${t["oid-allmatches"]}.val`)):[],f=t["oid-currgameday"]?vis.states.attr(`${t["oid-currgameday"]}.val`):1,p=t.showgameday||"";vis.editMode&&/{.*}/gm.test(p)&&(p=""),p==0&&(p="");let c=t.showgamedaycount||1;c==0&&(c=1);let N=t.showweekday||!1,x=t.showgoals||!1,v=t.maxicon||25,y=t.shortname||!1,O=t.onlylogo||!1,T=t.highlight||"",u=vis.binds.openligadb.prepareFilter(T);function m(){vis.binds.openligadb.gameday2.createWidget(n,e,t,r)}t["oid-allmatches"]&&t["oid-currgameday"]&&(vis.editMode||vis.binds.openligadb.bindStates2(d,[t["oid-allmatches"],t["oid-currgameday"]],m));let i=this.filterGameDay(s,p||f||"",c,f),a=this.groupGameDay(i,y,u.map(k=>k.filter).join(";")),l="";l+=`<style>
`,l+=`#${n} .oldb-icon {
`,l+=` max-height: ${v}px;
`,l+=` max-width: ${v}px;
`,l+=`}
`,l+=`#${n} .oldb-tdicon {
`,l+=` width: ${v}px;
`,l+=`}
`,l+=`#${n} .oldb-tt {
`,l+=` width: 100%;
`,l+=`}
`,l+=`#${n} .oldb-tt td{
`,l+=` white-space: nowrap;
`,l+=`}
`,l+=`#${n} .oldb-wrap {
`,l+=` white-space: normal !important;
`,l+=`}
`,l+=`#${n} .oldb-goal {
`,l+=` white-space: nowrap;
`,l+=` display: inline-block;
`,l+=`}
`,l+=`#${n} .oldb-full {
`,l+=` width: 50%;
`,l+=`}
`,l+=`#${n} .oldb-center {
`,l+=` text-align: center;
`,l+=`}
`,l+=`#${n} .oldb-right {
`,l+=` text-align: right;
`,l+=`}
`,l+=`#${n} .oldb-left {
`,l+=` text-align: left;
`,l+=`}
`,l+=`#${n} .oldb-datetime {
`,l+=` font-weight: bold;
`,l+=`}
`,l+=`</style>
`,l+='<table class="oldb-tt">';let h=N?{weekday:"short",month:"2-digit",day:"2-digit"}:{month:"2-digit",day:"2-digit"},g={hour:"2-digit",minute:"2-digit"};a.forEach(function(k){let w=new Date,D=vis.binds.openligadb.getDateFromJSON(k.matchDateTime),o=vis.binds.openligadb.compareDate(w,D)?"todaygameheader":"";o+=k.favorite?" favorite":"",o!=""?l+=` <tr class="${o}">`:l+=" <tr>",l+=` <td class="oldb-right oldb-datetime" colspan="3">${D.toLocaleString(vis.language,h)}</td>`,l+=' <td class=""></td>',l+=` <td class="oldb-left oldb-datetime" colspan="3">${D.toLocaleString(vis.language,g)}</td>`,l+=" </tr>",k.matches.forEach(function(b){let C=vis.binds.openligadb.getDateFromJSON(b.matchDateTime),S=y?b.team1.shortName:b.team1.teamName,j=y?b.team2.shortName:b.team2.teamName;b.team1.favorite&&(S=`<b class="favorite ${vis.binds.openligadb.getCSSClass(S,u)}">${S}</b>`),b.team2.favorite&&(j=`<b class="favorite ${vis.binds.openligadb.getCSSClass(j,u)}">${j}</b>`),O&&(S=" ",j=" ");let G=vis.binds.openligadb.getResult(b.matchResults),U=Object.prototype.hasOwnProperty.call(G,"pointsTeam1")?G.pointsTeam1:"-",M=Object.prototype.hasOwnProperty.call(G,"pointsTeam2")?G.pointsTeam2:"-";vis.binds.openligadb.compareDate(w,C)?l+=' <tr class="todaygame">':l+=" <tr>",l+=` <td class="oldb-right oldb-full">${S}</td>`,l+=' <td class="oldb-center oldb-tdicon">',l+=` <img class="oldb-icon" src="${b.team1.teamIconUrl}">`,l+=" </td>",l+=` <td class="oldb-center">${U}</td>`,l+=' <td class="oldb-center">:</td>',l+=` <td class="oldb-center">${M}</td>`,l+=' <td class="oldb-center oldb-tdicon">',l+=` <img class="oldb-center oldb-icon" src="${b.team2.teamIconUrl}">`,l+=" </td>",l+=` <td class="oldb-left oldb-full">${j}</td>`,l+=" </tr>";let P=this.getGoals(b);x&&P!=""&&(l+=" <tr>",l+=` <td class="oldb-center oldb-wrap" colspan="7"><small>${this.getGoals(b)}</small></td>`,l+=" </tr>")}.bind(this))}.bind(this)),l+="</table> ",$(`#${n}`).html(l)},filterGameDay:function(n,e,t,r){return e=parseInt(e),t=parseInt(t),r=parseInt(r),n.reduce(function(d,s){return e>0&&s.group.groupOrderID>=e&&s.group.groupOrderID<e+t&&d.push(s),e<0&&s.group.groupOrderID>=r+e&&s.group.groupOrderID<r+e+t&&d.push(s),d},[])},groupGameDay:function(n,e,t){let r=[],d=n.reduce(function(s,f){let p;Object.prototype.hasOwnProperty.call(s,f.matchDateTime)?p=s[f.matchDateTime]:p={matchDateTime:f.matchDateTime,matches:[],favorite:!1};let c=e?f.team1.shortName:f.team1.teamName,N=e?f.team2.shortName:f.team2.teamName;return f.team1.favorite=!1,f.team2.favorite=!1,vis.binds.openligadb.checkHighlite(c,t)&&(f.team1.favorite=!0,p.favorite=!0),vis.binds.openligadb.checkHighlite(N,t)&&(N=`<b class="favorite">${N}</b>`,f.team2.favorite=!0,p.favorite=!0),p.matches.push(f),s[f.matchDateTime]=p,s},[]);for(let s in d)r.push(d[s]);return r},getGoals:function(n){let e="";return n.goals.forEach(function(t,r,d){let s="",f=t.goalGetterName?` ${t.goalGetterName}`:"",p=t.matchMinute?` (${t.matchMinute})`:"";s+=`${t.scoreTeam1}:${t.scoreTeam2}${f}${p}`,s+=t.isPenalty?" (Elfmeter)":"",s+=t.isOwnGoal?" (Eigentor)":"",s+=r<d.length-1?", ":"",e+=`<span class="oldb-goal">${s}</span>`}),e}},table4:{createWidget:function(n,e,t,r){let d=$(`#${n}`);if(!d.length)return setTimeout(function(){vis.binds.openligadb.table4.createWidget(n,e,t,r)},100);let s=t["oid-allmatches"]?JSON.parse(vis.states.attr(`${t["oid-allmatches"]}.val`)):[],f=t["oid-currgameday"]?vis.states.attr(`${t["oid-currgameday"]}.val`):1,p=t.showgameday||"";vis.editMode&&/{.*}/gm.test(p)&&(p=""),p==0&&(p=""),p=p||f||"";let c=t.lastgamecount||p;c==0&&(c=p);let N=t.showtrend||!1,x=t.iconup||"widgets/openligadb/img/trend_up.png",v=t.icondn||"widgets/openligadb/img/trend_dn.png",y=t.iconst||"widgets/openligadb/img/trend_st.png",O=t.mode_binding||"";t.mode="1total,2home,3away,4round1,5round2".indexOf(O)>=0&&O!=""?O:t.mode;let u=(t.mode||"1total")[0];function m(){vis.binds.openligadb.table4.createWidget(n,e,t,r)}t["oid-allmatches"]&&t["oid-currgameday"]&&(vis.editMode||vis.binds.openligadb.bindStates2(d,[t["oid-allmatches"],t["oid-currgameday"]],m));let i=this.calcTable(s,u,p,c),a=[];for(let b in i)a.push(i[b]);i=a.sort(function(b,C){return b.points>C.points?-1:C.points>b.points||b.goalDiff<C.goalDiff?1:b.goalDiff>C.goalDiff?-1:0});let l=t.maxicon||25,h=t.onlylogo||!1,g=t.shortname||!1,k=t.highlight||"",w=t.filter||"",D=vis.binds.openligadb.prepareFilter(k),o="";o+=`<style>
`,o+=`#${n} .oldb-icon {
`,o+=` max-height: ${l}px;
`,o+=` max-width: ${l}px;
`,o+=`}
`,o+=`#${n} .oldb-tt {
`,o+=` width: 100%;
`,o+=`}
`,o+=`#${n} .oldb-tt td{
`,o+=` white-space: nowrap;
`,o+=`}
`,o+=`#${n} .oldb-full {
`,o+=` width: 100%;
`,o+=`}
`,o+=`#${n} .oldb-center {
`,o+=` text-align: center;
`,o+=`}
`,o+=`</style>
`,o+='<table class="oldb-tt">',o+=" <thead>",o+=" <tr >",o+=' <th class="oldb-center oldb-rank">',o+=" #",o+=" </th>",o+=' <th colspan="2" class="oldb-clubheader" style="text-align: left;">',o+=" Club",o+=" </th>",o+="",o+=' <th class="oldb-center oldb-games">',o+=" Sp",o+=" </th>",o+=' <th class="oldb-center oldb-won">',o+=" S",o+=" </th>",o+=' <th class="oldb-center oldb-draw">',o+=" U",o+=" </th>",o+=' <th class="oldb-center oldb-lost">',o+=" N",o+=" </th>",o+=' <th class="oldb-center oldb-goals">',o+=" Tore",o+=" </th>",o+=' <th class="oldb-center oldb-goaldiff">',o+=" Diff",o+=" </th>",o+=' <th class="oldb-center oldb-points">',o+=" Punkte",o+=" </th>",N&&(o+=' <th class="oldb-center oldb-trend">'),N&&(o+=" T"),N&&(o+=" </th>"),o+=" </tr>",o+=" </thead>",o+=' <tbody class="oldb-tb">',i.forEach(function(b,C){let S=g?b.shortName:b.teamName;if(!(vis.binds.openligadb.checkHighlite(S,w)||w==""))return;vis.binds.openligadb.checkHighlite(S,D.map(G=>G.filter).join(";"))&&(S=`<b class="favorite ${vis.binds.openligadb.getCSSClass(S,D)}">${S}</b>`),o+=" <tr>",o+=' <td class="oldb-center oldb-rank">',o+=C+1,o+=" </td>",o+=' <td class="oldb-center">',o+=` <img class="oldb-icon" src="${b.teamIconUrl}">`,o+=" </td>",h||(o+=' <td class="oldb-teamname oldb-full">',o+=` <span>${S}</span>`,o+=" </td>"),o+=' <td class="oldb-center oldb-games">',o+=b.matches,o+=" </td>",o+=' <td class="oldb-center oldb-won">',o+=b.won,o+=" </td>",o+=' <td class="oldb-center oldb-draw">',o+=b.draw,o+=" </td>",o+=' <td class="oldb-center oldb-lost">',o+=b.lost,o+=" </td>",o+=' <td class="oldb-center oldb-goals">',o+=`${b.goals}:${b.opponentGoals}`,o+=" </td>",o+=' <td class="oldb-center oldb-goaldiff">',o+=b.goalDiff,o+=" </td>",o+=' <td class="oldb-center oldb-points">',o+=` <strong>${b.points}</strong>`,o+=" </td>";let j="";N&&(b.ranking[b.ranking.length-1]<b.ranking[b.ranking.length-2]&&(j=x),b.ranking[b.ranking.length-1]>b.ranking[b.ranking.length-2]&&(j=v),b.ranking[b.ranking.length-1]==b.ranking[b.ranking.length-2]&&(j=y)),N&&(o+=' <td class="oldb-center oldb-points">',o+=` <img class="oldb-icon" src="${j}">`,o+=" </td>"),o+=" </tr>"}),o+=" </tbody>",o+="</table> ",$(`#${n}`).html(o)},addRanking:function(n,e){let t=[];for(let r in n)t.push(n[r]);t=t.sort(function(r,d){return r.points>d.points?-1:d.points>r.points||r.goalDiff<d.goalDiff?1:r.goalDiff>d.goalDiff?-1:0}),t.forEach(function(r,d){n[r.teamName].ranking[e]=d+1})},calcTable:function(n,e,t,r){let d=0;if(!n)return[];let s=n.reduce(function(p,c){return Math.max(p,c.group.groupOrderID)},0),f=n.reduce((p,c)=>{c.group.groupOrderID!=d&&c.group.groupOrderID<=t&&this.addRanking(p,d),d=c.group.groupOrderID;let N=c.team1.teamName,x=c.team1.shortName,v=c.team1.teamIconUrl,y=c.team2.teamName,O=c.team2.shortName,T=c.team2.teamIconUrl,u;Object.prototype.hasOwnProperty.call(p,N)?u=p[N]:u={teamName:N,shortName:x,teamIconUrl:v,points:0,ranking:[],opponentGoals:0,goals:0,matches:0,won:0,lost:0,draw:0,goalDiff:0};let m;Object.prototype.hasOwnProperty.call(p,y)?m=p[y]:m={teamName:y,shortName:O,teamIconUrl:T,points:0,ranking:[],opponentGoals:0,goals:0,matches:0,won:0,lost:0,draw:0,goalDiff:0};let i=vis.binds.openligadb.getResult(c.matchResults);return Object.prototype.hasOwnProperty.call(i,"pointsTeam1")&&c.group.groupOrderID<=t&&c.group.groupOrderID>t-r&&(i.pointsTeam1>i.pointsTeam2&&((e==1||e==2||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(u.points+=3,u.opponentGoals+=i.pointsTeam2,u.goals+=i.pointsTeam1,u.matches+=1,u.won+=1,u.goalDiff=u.goals-u.opponentGoals),(e==1||e==3||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(m.points+=0,m.opponentGoals+=i.pointsTeam1,m.goals+=i.pointsTeam2,m.matches+=1,m.lost+=1,m.goalDiff=m.goals-m.opponentGoals)),i.pointsTeam1==i.pointsTeam2&&((e==1||e==2||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(u.points+=1,u.opponentGoals+=i.pointsTeam2,u.goals+=i.pointsTeam1,u.matches+=1,u.draw+=1,u.goalDiff=u.goals-u.opponentGoals),(e==1||e==3||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(m.points+=1,m.opponentGoals+=i.pointsTeam1,m.goals+=i.pointsTeam2,m.matches+=1,m.draw+=1,m.goalDiff=m.goals-m.opponentGoals)),i.pointsTeam1<i.pointsTeam2&&((e==1||e==2||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(u.points+=0,u.opponentGoals+=i.pointsTeam2,u.goals+=i.pointsTeam1,u.matches+=1,u.lost+=1,u.goalDiff=u.goals-u.opponentGoals),(e==1||e==3||e==4&&c.group.groupOrderID<=s/2||e==5&&c.group.groupOrderID>s/2)&&(m.points+=3,m.opponentGoals+=i.pointsTeam1,m.goals+=i.pointsTeam2,m.matches+=1,m.won+=1,m.goalDiff=m.goals-m.opponentGoals))),p[N]=u,p[y]=m,p},[]);return this.addRanking(f,t),f}},prepareFilter:function(n){try{return n.split(";").map(e=>{let t=/(.+)\[(.*)\]|(.+)/gm.exec(e);if(!t)return{filter:"",color:""};let r=t[1]||t[3]||"",d=t[2]||"";return{filter:r,class:d}})}catch(e){return[]}},bindStates:function(n,e,t){let r=$(n),d=r.data("bound");if(d)for(let s=0;s<d.bound.length;s++)vis.states.unbind(d.bound[s],d.change_callback);r.data("bound",null),r.data("bindHandler",null),vis.conn.gettingStates=0,vis.conn.getStates(e,function(s,f){vis.updateStates(f),vis.conn.subscribe(e);for(let p=0;p<e.length;p++)e[p]=`${e[p]}.val`,vis.states.bind(e[p],t);r.data("bound",{bound:e,change_callback:t}),r.data("bindHandler",t)}.bind({change_callback:t}))},bindStates2:function(n,e,t){let r=$(n),d=r.data("bound");if(d)for(let s=0;s<d.bound.length;s++)vis.states.unbind(d.bound[s],d.bindHandler);r.data("bound",null);for(let s=0;s<e.length;s++)e[s]=`${e[s]}.val`,vis.states.bind(e[s],t);r.data("bound",{bound:e,bindHandler:t})},checkHighlite:function(n,e,t){return t=typeof t!="undefined"?t:";",e.split(t).reduce(function(d,s){return s==""?d:d||n.toLowerCase().indexOf(s.toLowerCase())>=0},!1)},getCSSClass:function(n,e){return e.find(t=>n.toLowerCase().indexOf(t.filter.toLowerCase())>=0).class},getDateFromJSON:function(n){let e=n.split("T")[0].split("-"),t=n.split("T")[1].split(":");return new Date(e[0],e[1]-1,e[2],t[0],t[1])},getResult:function(n){return n.length==0?{}:(n=n.reduce(function(e,t){return t.resultTypeID>(e.resultTypeID||0)&&(e=t),e},{}),n)},compareDate:function(n,e){return n.getDate()==e.getDate()&&n.getMonth()==e.getMonth()&&n.getYear()==e.getYear()},checkTodayFavorite:function(n,e){if(n){let t=vis.states.attr(`${n}.val`);if(t&&t!="null"){if(!vis.subscribing.IDs.includes(n)){vis.subscribing.IDs.push(n);let d=[];d.push(n),vis.conn.gettingStates=0,vis.conn.getStates(d,function(s,f){vis.updateStates(f);let p=[];p.push(n),vis.conn.subscribe(p)})}let r=JSON.parse(t);if(r){let d=new Date;return r.reduce(function(s,f){let p=vis.binds.openligadb.getDateFromJSON(f.matchDateTime),c=vis.binds.openligadb.compareDate(d,p)&&(vis.binds.openligadb.checkHighlite(f.team1.teamName,e,",")||vis.binds.openligadb.checkHighlite(f.team2.teamName,e,","));return s||c},!1)}}else{vis.subscribing.IDs.includes(n)||vis.subscribing.IDs.push(n);let r=[];r.push(n),vis.conn.gettingStates=0,vis.conn.getStates(r,function(d,s){vis.updateStates(s);let f=[];f.push(n),vis.conn.subscribe(f)})}}return!1}};vis.binds.openligadb.showVersion()});R();})();
//# sourceMappingURL=openligadb-dist.js.map