overtime-live-trading-utils 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main.js +1 -1
- package/package.json +1 -1
- package/src/constants/sports.ts +30 -2
- package/src/enums/sports.ts +20 -3
- package/src/utils/sports.ts +79 -79
package/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var t in a)e.o(a,t)&&!e.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:a[t]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{adjustSpreadOnOdds:()=>F,allowGameSportWithPeriodConstraint:()=>U,allowSoccerGame:()=>v,allowTennisMatch:()=>g,calculateImpliedOddsDifference:()=>l,checkGameContraints:()=>R,checkOddsFromBookmakers:()=>N,extractOddsForGamePerProvider:()=>C,gamesDatesMatching:()=>G,getBookmakersArray:()=>E,getLeagueSport:()=>V,getSpreadData:()=>D,teamNamesMatching:()=>f}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),t=1;t<arguments.length;t++){var o=arguments[t];if(null!=o)for(var _ in o)Object.prototype.hasOwnProperty.call(o,_)&&(a[_]=o[_])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function t(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-t(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,_,i={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=t("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,t=[0,1],o=[1,0],_=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var t=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?t=r:0===o?t=r.substring(1,r.length):o<r.length&&(t=r.substring(0,o)+r.substring(o+1,r.length));var _=t,i=_.toString().length,n=e,A=n.toString().length;0===n&&(A=0);var s,E=i-A;for(s=E;s>0&&_%2==0;s--)_/=2;for(s=E;s>0&&_%5==0;s--)_/=5;return _}(e),i=e,n=Math.pow(10,-r)/2,A=2;A<1e3;A++){var s=Math.floor(i);if(t[A]=s*t[A-1]+t[A-2],Math.abs(t[A])>_)return;if(o[A]=s*o[A-1]+o[A-2],a=t[A]/o[A],Math.abs(a-e)<n||NaN==a)return t[A].toString()+"/"+o[A].toString();i=1/(i-s)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},n=((_=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=i[e].from(r);return new _(a)},o);n.prototype.to=function(e,r){if(!i.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=i[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=t("round",a,-r.precision)),a};var A,s=n.from,E=function(e,r,a){var t=e.find((function(e){return Number(e.sportId)===Number(r)}));if(t){if(""==t.primaryBookmaker)return a;var o=[];return t.primaryBookmaker&&o.push(t.primaryBookmaker),t.secondaryBookmaker&&o.push(t.secondaryBookmaker),t.tertiaryBookmaker&&o.push(t.tertiaryBookmaker),o}return a},N=function(e,r,a,t,o){var _=r.some((function(r){var t=e.get(r);return!!t&&(0===t.homeOdds||0===t.awayOdds||!a&&0===t.drawOdds||1===t.homeOdds||1===t.awayOdds||!a&&1===t.drawOdds)}));if(1==r.length){if(_)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=r[0],n=e.get(i);return[{homeOdds:n.homeOdds,awayOdds:n.awayOdds,drawOdds:a?0:n.drawOdds}]}if(_)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var A=e.get(r[0]),E=A.homeOdds,N=A.awayOdds,I=A.drawOdds;if(r.slice(1).some((function(r){var _=e[r];if(_){var i=_.homeOdds,n=_.awayOdds,A=_.drawOdds,S=s("decimal",E).to("impliedProbability"),d=s("decimal",N).to("impliedProbability"),u=a?0:s("decimal",I).to("impliedProbability"),L=s("decimal",i).to("impliedProbability"),c=s("decimal",n).to("impliedProbability"),m=a?0:s("decimal",A).to("impliedProbability"),P=l(S,L),O=l(d,c),w=a?0:l(u,m);if(P>t&&S>o&&L>o||O>t&&d>o&&c>o||!a&&w>t&&u>o&&m>o)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var S=[];return r.forEach((function(r){return S.push(e.get(r))})),null!=S[0]?S.map((function(e){return{homeOdds:e.homeOdds,awayOdds:e.awayOdds,drawOdds:a?0:e.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},l=function(e,r){var a=Math.abs(e-r)/e*100;return console.log("% diff: "+a),a},I="Soccer",S="Football",d="Basketball",u="Baseball",L="Hockey",c="Fighting",m="Tennis",P="eSports",O="Cricket",w="Motosport",M="Golf",T={NCAAF:1,NFL:2,MLB:3,NBA:4,NCAAB:5,NHL:6,UFC:7,WNBA:8,MLS:10,EPL:11,LIGUE_ONE:12,BUNDESLIGA:13,LA_LIGA:14,SERIE_A:15,UEFA_CL:16,UEFA_EL:17,FIFA_WC:18,J1_LEAGUE:19,IPL:20,T20_BLAST:21,IIHF_WORLD_CHAMPIONSHIP:33,COPA_AMERICA:44,COPA_LIBERTADORES:45,UEFA_EURO:50,EREDIVISIE:57,PRIMEIRA_LIGA:61,FIFA_WC_WOMEN:76,ENGLAND_CUP:132,FRANCE_CUP:134,SPAIN_CUP:138,ITALY_CUP:141,TENNIS_GS:153,TENNIS_MASTERS:156,GERMANY_CUP:209,LIGA_MX:230,BRAZIL_1:268,UEFA_EURO_U21:288,FIFA_WORLD_CUP_U20:296,EUROLEAGUE:399,FIBA_WORLD_CUP:409,FORMULA1:445,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,BOXING:9196,UEFA_NATIONS_LEAGUE:9806,CONCACAF_NATIONS_LEAGUE:9821,CSGO:9977,DOTA2:9983,SUMMER_OLYMPICS_QUALIFICATION:10502,LOL:10138,CONMEBOL_WC_QUALIFICATIONS:10199,UEFA_CONFERENCE_LEAGUE:10216,NON_TITLE_BOXING:10595,GOLF_H2H:100021,GOLF_WINNER:100121,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1:15312,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2:15313,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3:15314,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4:15315,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5:15316,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6:15317,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7:15318,TENNIS_MASTERS_LIVE_MAPPING_V2_1:15622,TENNIS_MASTERS_LIVE_MAPPING_V2_2:15623,TENNIS_MASTERS_LIVE_MAPPING_V2_3:15624,TENNIS_MASTERS_LIVE_MAPPING_V2_4:15625,TENNIS_MASTERS_LIVE_MAPPING_V2_5:15626,TENNIS_MASTERS_LIVE_MAPPING_V2_6:15627,TENNIS_MASTERS_LIVE_MAPPING_V2_7:15628,TENNIS_MASTERS_LIVE_MAPPING_V2_8:15632,TENNIS_MASTERS_LIVE_MAPPING_V2_9:15633,TENNIS_MASTERS_LIVE_MAPPING_V2_10:15634,TENNIS_MASTERS_LIVE_MAPPING_V2_11:15635,TENNIS_MASTERS_LIVE_MAPPING_V2_12:15636,TENNIS_MASTERS_LIVE_MAPPING_V2_13:15637,TENNIS_MASTERS_LIVE_MAPPING_V2_14:15638,TENNIS_MASTERS_LIVE_MAPPING_V2_15:15641,TENNIS_MASTERS_LIVE_MAPPING_V2_16:15642,TENNIS_MASTERS_LIVE_MAPPING_V2_17:15643,TENNIS_MASTERS_LIVE_MAPPING_V2_18:15644,TENNIS_MASTERS_LIVE_MAPPING_V2_19:15645,TENNIS_MASTERS_LIVE_MAPPING_V2_20:15646,TENNIS_MASTERS_LIVE_MAPPING_V2_21:15647,TENNIS_MASTERS_LIVE_MAPPING_V2_22:15648,UEFA_CHAMPIONS_LEAGUE_QUALIFICATION:10611,UEFA_EUROPA_LEAGUE_QUALIFICATION:10613,UEFA_CONFERENCE_LEAGUE_QUALIFICATION:10615},p=[T.CSGO,T.DOTA2,T.LOL,T.TENNIS_GS,T.TENNIS_MASTERS,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_1,T.TENNIS_MASTERS_LIVE_MAPPING_V2_2,T.TENNIS_MASTERS_LIVE_MAPPING_V2_3,T.TENNIS_MASTERS_LIVE_MAPPING_V2_4,T.TENNIS_MASTERS_LIVE_MAPPING_V2_5,T.TENNIS_MASTERS_LIVE_MAPPING_V2_6,T.TENNIS_MASTERS_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_8,T.TENNIS_MASTERS_LIVE_MAPPING_V2_9,T.TENNIS_MASTERS_LIVE_MAPPING_V2_10,T.TENNIS_MASTERS_LIVE_MAPPING_V2_11,T.TENNIS_MASTERS_LIVE_MAPPING_V2_12,T.TENNIS_MASTERS_LIVE_MAPPING_V2_13,T.TENNIS_MASTERS_LIVE_MAPPING_V2_14,T.TENNIS_MASTERS_LIVE_MAPPING_V2_15,T.TENNIS_MASTERS_LIVE_MAPPING_V2_16,T.TENNIS_MASTERS_LIVE_MAPPING_V2_17,T.TENNIS_MASTERS_LIVE_MAPPING_V2_18,T.TENNIS_MASTERS_LIVE_MAPPING_V2_19,T.TENNIS_MASTERS_LIVE_MAPPING_V2_20,T.TENNIS_MASTERS_LIVE_MAPPING_V2_21,T.TENNIS_MASTERS_LIVE_MAPPING_V2_22],f=function(e,r,a,t,o,_){var i,n;if(p.includes(e)?(i=t.toLowerCase()==r.toLowerCase()||t.toLowerCase()==a.toLowerCase(),n=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(i=t.toLowerCase()==r.toLowerCase(),n=o.toLowerCase()==a.toLowerCase()),!0!==i){var A=_.get(t.toLowerCase()),s=_.get(r.toLowerCase()),E=_.get(a.toLowerCase());if([A,s].some((function(e){return null==e})))return!1;i=p.includes(e)?A==s||A==E:A==s}if(!0!==n){var N=_.get(o.toLowerCase());if(s=_.get(r.toLowerCase()),[N,E=_.get(a.toLowerCase())].some((function(e){return null==e})))return!1;n=p.includes(e)&&N==s||N==E}return i&&n},G=function(e,r,a,t){var o;if(a.toString().startsWith(T.TENNIS_GS.toString())||a.toString().startsWith(T.TENNIS_MASTERS.toString())){var _=r.getTime(),i=e.getTime();o=Math.abs(i-_)<=Number(60*t*1e3)}else o=r.toUTCString()==e.toUTCString();return o},C=function(e,r,a,t,o){var _=new Map;return e.forEach((function(e){var i,n,A=r.odds.filter((function(r){return r.sports_book_name.toLowerCase()==e.toLowerCase()})),s=t.get(a.homeTeam.toLowerCase()),E=t.get(a.awayTeam.toLowerCase()),N=0;null!=(i=null==s?A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.homeTeam.toLowerCase():r==a.homeTeam.toLowerCase()})):A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==s:r==s})))&&(N=i.price);var l=0;null!=(n=null==E?A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==a.awayTeam.toLowerCase():r==a.awayTeam.toLowerCase()})):A.find((function(e){var r=t.get(e.name.toLowerCase());return null==r?e.name.toLowerCase()==E:r==E})))&&(l=n.price);var I=0;if(o){var S=A.find((function(e){return"draw"==e.name.toLowerCase()}));null!=S&&(I=S.price)}_.set(e.toLowerCase(),{homeOdds:N,awayOdds:l,drawOdds:I})})),_},b=((A={})[T.NCAAF]={sport:S,id:T.NCAAF,isDrawAvailable:!1},A[T.NFL]={sport:S,id:T.NFL,isDrawAvailable:!1},A[T.MLB]={sport:u,id:T.MLB,isDrawAvailable:!1},A[T.NBA]={sport:d,id:T.NBA,isDrawAvailable:!1},A[T.NCAAB]={sport:d,id:T.NCAAB,isDrawAvailable:!1},A[T.NHL]={sport:L,id:T.NHL,isDrawAvailable:!1},A[T.UFC]={sport:c,id:T.UFC,isDrawAvailable:!1},A[T.WNBA]={sport:d,id:T.WNBA,isDrawAvailable:!1},A[T.MLS]={sport:I,id:T.MLS,isDrawAvailable:!0},A[T.EPL]={sport:I,id:T.EPL,isDrawAvailable:!0},A[T.LIGUE_ONE]={sport:I,id:T.LIGUE_ONE,isDrawAvailable:!0},A[T.BUNDESLIGA]={sport:I,id:T.BUNDESLIGA,isDrawAvailable:!0},A[T.LA_LIGA]={sport:I,id:T.LA_LIGA,isDrawAvailable:!0},A[T.SERIE_A]={sport:I,id:T.SERIE_A,isDrawAvailable:!0},A[T.UEFA_CL]={sport:I,id:T.UEFA_CL,isDrawAvailable:!0},A[T.UEFA_EL]={sport:I,id:T.UEFA_EL,isDrawAvailable:!0,priority:104},A[T.FIFA_WC]={sport:I,id:T.FIFA_WC,isDrawAvailable:!0},A[T.J1_LEAGUE]={sport:I,id:T.J1_LEAGUE,isDrawAvailable:!0},A[T.IPL]={sport:O,id:T.IPL,isDrawAvailable:!1},A[T.T20_BLAST]={sport:O,id:T.T20_BLAST,isDrawAvailable:!1},A[T.IIHF_WORLD_CHAMPIONSHIP]={sport:L,id:T.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},A[T.COPA_AMERICA]={sport:I,id:T.COPA_AMERICA,isDrawAvailable:!0},A[T.COPA_LIBERTADORES]={sport:I,id:T.COPA_LIBERTADORES,isDrawAvailable:!0},A[T.UEFA_EURO]={sport:I,id:T.UEFA_EURO,isDrawAvailable:!0},A[T.EREDIVISIE]={sport:I,id:T.EREDIVISIE,isDrawAvailable:!0},A[T.PRIMEIRA_LIGA]={sport:I,id:T.PRIMEIRA_LIGA,isDrawAvailable:!0},A[T.FIFA_WC_WOMEN]={sport:I,id:T.FIFA_WC_WOMEN,priority:112},A[T.ENGLAND_CUP]={sport:I,id:T.ENGLAND_CUP,isDrawAvailable:!0},A[T.FRANCE_CUP]={sport:I,isDrawAvailable:!0},A[T.SPAIN_CUP]={sport:I,id:T.SPAIN_CUP,isDrawAvailable:!0},A[T.ITALY_CUP]={sport:I,isDrawAvailable:!0},A[T.TENNIS_GS]={sport:m,id:T.TENNIS_GS,isDrawAvailable:!1},A[T.TENNIS_MASTERS]={sport:m,id:T.TENNIS_MASTERS,isDrawAvailable:!1},A[T.GERMANY_CUP]={sport:I,id:T.GERMANY_CUP,isDrawAvailable:!0},A[T.BRAZIL_1]={sport:I,id:T.BRAZIL_1,isDrawAvailable:!0},A[T.UEFA_EURO_U21]={sport:I,id:T.UEFA_EURO_U21,isDrawAvailable:!0},A[T.FIFA_WORLD_CUP_U20]={sport:I,id:T.FIFA_WORLD_CUP_U20,isDrawAvailable:!0},A[T.EUROLEAGUE]={sport:d,id:T.EUROLEAGUE,isDrawAvailable:!1},A[T.FIBA_WORLD_CUP]={sport:d,id:T.FIBA_WORLD_CUP,isDrawAvailable:!1},A[T.FORMULA1]={sport:w,id:T.FORMULA1,isDrawAvailable:!1},A[T.MOTOGP]={sport:w,id:T.MOTOGP,isDrawAvailable:!1},A[T.SAUDI_PROFESSIONAL_LEAGUE]={sport:I,id:T.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0},A[T.BOXING]={sport:c,id:T.BOXING,isDrawAvailable:!1},A[T.UEFA_NATIONS_LEAGUE]={sport:I,id:T.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0},A[T.CONCACAF_NATIONS_LEAGUE]={sport:I,id:T.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0},A[T.CSGO]={sport:P,id:T.CSGO,isDrawAvailable:!1},A[T.DOTA2]={sport:P,id:T.DOTA2,isDrawAvailable:!1},A[T.SUMMER_OLYMPICS_QUALIFICATION]={sport:d,id:T.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1},A[T.LOL]={sport:P,id:T.LOL,isDrawAvailable:!1},A[T.CONMEBOL_WC_QUALIFICATIONS]={sport:I,id:T.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0},A[T.UEFA_CONFERENCE_LEAGUE]={sport:I,id:T.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0},A[T.NON_TITLE_BOXING]={sport:c,isDrawAvailable:!1},A[T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:I,id:T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0},A[T.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:I,id:T.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0},A[T.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:I,isDrawAvailable:!0},A[T.GOLF_H2H]={sport:M,id:T.GOLF_H2H,isDrawAvailable:!1},A[T.GOLF_WINNER]={sport:M,id:T.GOLF_WINNER,isDrawAvailable:!1},A[T.LIGA_MX]={sport:I,id:T.LIGA_MX,isDrawAvailable:!0},A),V=function(e){var r=b[e];return r?r.sport:""},R=function(e,r,a){var t,o=e.score_home_total,_=e.score_away_total,i=e.clock,n=e.period,A=e.status,s=e.home_team,E=e.away_team,N=V(r);return"completed"==A.toLowerCase()?(console.log("Blocking game ".concat(s," - ").concat(E," because it is no longer live.")),null):(N===d&&(t=U(s,E,n,a.get(d))),N===L&&(t=U(s,E,n,a.get(L))),N===u&&(t=U(s,E,n,a.get(u))),N===I&&(t=v(s,E,i,n,a.get(I))),N===m&&(t=g(e,s,E,n,o,_,r)),t)},U=function(e,r,a,t){return Number(a)>=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},v=function(e,r,a,t,o){var _=Number(a);return!Number.isNaN(_)&&_>=o||Number.isNaN(_)&&"HALF"!=t?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},g=function(e,r,a,t,o,_,i){var n,A,s=Number(t),E="atp"==e.league.toLowerCase();if(i==T.TENNIS_GS&&E){if(2==Number(o)||2==Number(_)){switch(s){case 3:n=Number(e.score_home_period_3),A=Number(e.score_away_period_3);break;case 4:n=Number(e.score_home_period_4),A=Number(e.score_away_period_4);break;case 5:n=Number(e.score_home_period_5),A=Number(e.score_away_period_5)}return 2==Number(o)&&n>=5||2==Number(_)&&A>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(o," - ").concat(_," (").concat(n," - ").concat(A,")")}:{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}return{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}if(1==Number(o)||1==Number(_)){switch(s){case 2:n=Number(e.score_home_period_2),A=Number(e.score_away_period_2);break;case 3:n=Number(e.score_home_period_3),A=Number(e.score_away_period_3)}return 1==Number(o)&&n>=5||1==Number(_)&&A>=5?{allow:!1,message:"Blocking game ".concat(r," - ").concat(a," due to current result: ").concat(o," - ").concat(_," (").concat(n," - ").concat(A,")")}:{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}}return{allow:!0,message:"",currentHomeGameScore:n,currentAwayGameScore:A}},F=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var t=e.reduce((function(e,r){return e+r}),0);if(t<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(t-1)))return e;a=r}var o=1+a/100,_=o/t,i=e.map((function(e){return e*_}));if(i.some((function(e){return e>=1})))return Array(e.length).fill(0);var n=i.reduce((function(e,r){return e+r}),0);if(n<1)return Array(e.length).fill(0);var A=o/n;return i.map((function(e){return e*A}))},D=function(e,r,a,t){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):t,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:t,targetSpread:0}};return r})()));
|
|
1
|
+
!function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.thalesUtils=e():r.thalesUtils=e()}(this,(()=>(()=>{"use strict";var r={d:(e,a)=>{for(var _ in a)r.o(a,_)&&!r.o(e,_)&&Object.defineProperty(e,_,{enumerable:!0,get:a[_]})},o:(r,e)=>Object.prototype.hasOwnProperty.call(r,e),r:r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})}},e={};r.r(e),r.d(e,{adjustSpreadOnOdds:()=>y,allowGameSportWithPeriodConstraint:()=>v,allowGameSportWithResultConstraint:()=>D,allowSoccerGame:()=>g,calculateImpliedOddsDifference:()=>I,checkGameContraints:()=>V,checkOddsFromBookmakers:()=>N,extractOddsForGamePerProvider:()=>G,gamesDatesMatching:()=>f,getBookmakersArray:()=>s,getLeagueSport:()=>b,getSpreadData:()=>B,teamNamesMatching:()=>R}),"function"!=typeof Object.assign&&(Object.assign=function(r,e){if(null==r)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(r),_=1;_<arguments.length;_++){var t=arguments[_];if(null!=t)for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(a[o]=t[o])}return a});var a=function(r){return parseFloat(r.toPrecision(12))};function _(r,e,a){return void 0===a||0==+a?Math[r](e):(e=+e,a=+a,isNaN(e)||"number"!=typeof a||a%1!=0?NaN:e<0?-_(r,-e,a):(e=e.toString().split("e"),+((e=(e=Math[r](+(e[0]+"e"+(e[1]?+e[1]-a:-a)))).toString().split("e"))[0]+"e"+(e[1]?+e[1]+a:a))))}var t,o,i={decimal:{from:function(r){if((r=parseFloat(r))<=1)throw new Error("Outside valid range.");return r},to:function(){return this.decimalValue}},moneyline:{from:function(r){return(r=parseFloat(r))>=0?r/100+1:100/-r+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(r){if((r=parseFloat(r))<0)throw new Error("Outside valid range.");return r+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(r){if((r="string"==typeof r&&"%"==r.slice(-1)?parseFloat(r)/100:parseFloat(r))<=0||r>=1)throw new Error("Outside valid range");return 1/r},to:function(r){if(r.percentage){var e=a(100/this.decimalValue);return null!==r.precision&&(e=_("round",e,-r.precision)),e.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(r){var e,a=r.toString().split("/");if(r=parseFloat(a[0]),2===a.length)e=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");e=1}if(0===r||0===e||r/e<=0)throw new Error("Outside valid range");return 1+r/e},to:function(r){return function(r,e){for(var a,_=[0,1],t=[1,0],o=function(r){var e=null,a=r.toString().indexOf("E");-1==a&&(a=r.toString().indexOf("e"));var _=null,t=(e=-1==a?r.toString():r.toString().substring(0,a)).toString().indexOf(".");-1==t?_=e:0===t?_=e.substring(1,e.length):t<e.length&&(_=e.substring(0,t)+e.substring(t+1,e.length));var o=_,i=o.toString().length,A=r,E=A.toString().length;0===A&&(E=0);var n,s=i-E;for(n=s;n>0&&o%2==0;n--)o/=2;for(n=s;n>0&&o%5==0;n--)o/=5;return o}(r),i=r,A=Math.pow(10,-e)/2,E=2;E<1e3;E++){var n=Math.floor(i);if(_[E]=n*_[E-1]+_[E-2],Math.abs(_[E])>o)return;if(t[E]=n*t[E-1]+t[E-2],a=_[E]/t[E],Math.abs(a-r)<A||NaN==a)return _[E].toString()+"/"+t[E].toString();i=1/(i-n)}}(this.decimalValue-1,r.precision||12)}},malay:{from:function(r){if((r=parseFloat(r))<=-1||r>1)throw new Error("Outside valid range.");return r<0&&(r=-1/r),r+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(r){if(0===(r=parseFloat(r)))throw new Error("Outside valid range.");return r>=1?r+1:-1/r+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},A=((o=function(r){if("number"!=typeof r||isNaN(r))throw new Error("Invalid odds");this.decimalValue=a(r)}).prototype=(t=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,t.from=function(r,e){if(!i.hasOwnProperty(r))throw new Error("Unknown format "+r+".");var a=i[r].from(e);return new o(a)},t);A.prototype.to=function(r,e){if(!i.hasOwnProperty(r))throw new Error("Unknown format "+r+".");e=Object.assign({precision:null,percentage:!1},e);var a=i[r].to.call(this,e);return"number"==typeof a&&null!==e.precision&&(a=_("round",a,-e.precision)),a};var E,n=A.from,s=function(r,e,a){var _=r.find((function(r){return Number(r.sportId)===Number(e)}));if(_){if(""==_.primaryBookmaker)return a;var t=[];return _.primaryBookmaker&&t.push(_.primaryBookmaker),_.secondaryBookmaker&&t.push(_.secondaryBookmaker),_.tertiaryBookmaker&&t.push(_.tertiaryBookmaker),t}return a},N=function(r,e,a,_,t){var o=e.some((function(e){var _=r.get(e);return!!_&&(0===_.homeOdds||0===_.awayOdds||!a&&0===_.drawOdds||1===_.homeOdds||1===_.awayOdds||!a&&1===_.drawOdds)}));if(1==e.length){if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var i=e[0],A=r.get(i);return[{homeOdds:A.homeOdds,awayOdds:A.awayOdds,drawOdds:a?0:A.drawOdds}]}if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var E=r.get(e[0]),s=E.homeOdds,N=E.awayOdds,S=E.drawOdds;if(e.slice(1).some((function(e){var o=r[e];if(o){var i=o.homeOdds,A=o.awayOdds,E=o.drawOdds,l=n("decimal",s).to("impliedProbability"),L=n("decimal",N).to("impliedProbability"),d=a?0:n("decimal",S).to("impliedProbability"),M=n("decimal",i).to("impliedProbability"),u=n("decimal",A).to("impliedProbability"),O=a?0:n("decimal",E).to("impliedProbability"),P=I(l,M),c=I(L,u),w=a?0:I(d,O);if(P>_&&l>t&&M>t||c>_&&L>t&&u>t||!a&&w>_&&d>t&&O>t)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var l=[];return e.forEach((function(e){return l.push(r.get(e))})),null!=l[0]?l.map((function(r){return{homeOdds:r.homeOdds,awayOdds:r.awayOdds,drawOdds:a?0:r.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},I=function(r,e){var a=Math.abs(r-e)/r*100;return console.log("% diff: "+a),a},S="Soccer",l="Football",L="Basketball",d="Baseball",M="Hockey",u="Fighting",O="Tennis",P="eSports",c="Volleyball",w="Cricket",T="Motosport",m="Golf",C={NCAAF:1,NFL:2,MLB:3,NBA:4,NCAAB:5,NHL:6,UFC:7,WNBA:8,MLS:10,EPL:11,LIGUE_ONE:12,BUNDESLIGA:13,LA_LIGA:14,SERIE_A:15,UEFA_CL:16,UEFA_EL:17,FIFA_WC:18,J1_LEAGUE:19,IPL:20,T20_BLAST:21,IIHF_WORLD_CHAMPIONSHIP:33,COPA_AMERICA:44,COPA_LIBERTADORES:45,UEFA_EURO:50,EREDIVISIE:57,PRIMEIRA_LIGA:61,SUMMER_OLYMPICS_SOCCER_WOMEN:65,SUMMER_OLYMPICS_SOCCER:66,FIFA_WC_WOMEN:76,ENGLAND_CUP:132,FRANCE_CUP:134,SPAIN_CUP:138,ITALY_CUP:141,TENNIS_GS:153,TENNIS_MASTERS:156,GERMANY_CUP:209,LIGA_MX:230,BRAZIL_1:268,UEFA_EURO_U21:288,FIFA_WORLD_CUP_U20:296,SUMMER_OLYMPICS_HANDBALL_WOMEN:380,SUMMER_OLYMPICS_HANDBALL:381,EUROLEAGUE:399,SUMMER_OLYMPICS_BASKETBALL:406,SUMMER_OLYMPICS_BASKETBALL_WOMEN:407,FIBA_WORLD_CUP:409,FORMULA1:445,MOTOGP:497,SAUDI_PROFESSIONAL_LEAGUE:536,SUMMER_OLYMPICS_WATERPOLO:8881,SUMMER_OLYMPICS_VOLEYBALL_WOMEN:8893,SUMMER_OLYMPICS_VOLEYBALL:8894,BOXING:9196,SUMMER_OLYMPICS_RUGBY:9578,SUMMER_OLYMPICS_RUGBY_WOMEN:9588,UEFA_NATIONS_LEAGUE:9806,CONCACAF_NATIONS_LEAGUE:9821,CSGO:9977,DOTA2:9983,SUMMER_OLYMPICS_BASKETBALL_3X3:10071,SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN:10072,SUMMER_OLYMPICS_QUALIFICATION:10502,LOL:10138,CONMEBOL_WC_QUALIFICATIONS:10199,UEFA_CONFERENCE_LEAGUE:10216,NON_TITLE_BOXING:10595,UEFA_CHAMPIONS_LEAGUE_QUALIFICATION:10611,UEFA_EUROPA_LEAGUE_QUALIFICATION:10613,UEFA_CONFERENCE_LEAGUE_QUALIFICATION:10615,GOLF_H2H:100021,GOLF_WINNER:100121,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1:15312,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2:15313,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3:15314,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4:15315,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5:15316,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6:15317,TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7:15318,TENNIS_MASTERS_LIVE_MAPPING_V2_1:15622,TENNIS_MASTERS_LIVE_MAPPING_V2_2:15623,TENNIS_MASTERS_LIVE_MAPPING_V2_3:15624,TENNIS_MASTERS_LIVE_MAPPING_V2_4:15625,TENNIS_MASTERS_LIVE_MAPPING_V2_5:15626,TENNIS_MASTERS_LIVE_MAPPING_V2_6:15627,TENNIS_MASTERS_LIVE_MAPPING_V2_7:15628,TENNIS_MASTERS_LIVE_MAPPING_V2_8:15632,TENNIS_MASTERS_LIVE_MAPPING_V2_9:15633,TENNIS_MASTERS_LIVE_MAPPING_V2_10:15634,TENNIS_MASTERS_LIVE_MAPPING_V2_11:15635,TENNIS_MASTERS_LIVE_MAPPING_V2_12:15636,TENNIS_MASTERS_LIVE_MAPPING_V2_13:15637,TENNIS_MASTERS_LIVE_MAPPING_V2_14:15638,TENNIS_MASTERS_LIVE_MAPPING_V2_15:15641,TENNIS_MASTERS_LIVE_MAPPING_V2_16:15642,TENNIS_MASTERS_LIVE_MAPPING_V2_17:15643,TENNIS_MASTERS_LIVE_MAPPING_V2_18:15644,TENNIS_MASTERS_LIVE_MAPPING_V2_19:15645,TENNIS_MASTERS_LIVE_MAPPING_V2_20:15646,TENNIS_MASTERS_LIVE_MAPPING_V2_21:15647,TENNIS_MASTERS_LIVE_MAPPING_V2_22:15648},p=[C.CSGO,C.DOTA2,C.LOL,C.TENNIS_GS,C.TENNIS_MASTERS,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,C.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,C.TENNIS_MASTERS_LIVE_MAPPING_V2_1,C.TENNIS_MASTERS_LIVE_MAPPING_V2_2,C.TENNIS_MASTERS_LIVE_MAPPING_V2_3,C.TENNIS_MASTERS_LIVE_MAPPING_V2_4,C.TENNIS_MASTERS_LIVE_MAPPING_V2_5,C.TENNIS_MASTERS_LIVE_MAPPING_V2_6,C.TENNIS_MASTERS_LIVE_MAPPING_V2_7,C.TENNIS_MASTERS_LIVE_MAPPING_V2_8,C.TENNIS_MASTERS_LIVE_MAPPING_V2_9,C.TENNIS_MASTERS_LIVE_MAPPING_V2_10,C.TENNIS_MASTERS_LIVE_MAPPING_V2_11,C.TENNIS_MASTERS_LIVE_MAPPING_V2_12,C.TENNIS_MASTERS_LIVE_MAPPING_V2_13,C.TENNIS_MASTERS_LIVE_MAPPING_V2_14,C.TENNIS_MASTERS_LIVE_MAPPING_V2_15,C.TENNIS_MASTERS_LIVE_MAPPING_V2_16,C.TENNIS_MASTERS_LIVE_MAPPING_V2_17,C.TENNIS_MASTERS_LIVE_MAPPING_V2_18,C.TENNIS_MASTERS_LIVE_MAPPING_V2_19,C.TENNIS_MASTERS_LIVE_MAPPING_V2_20,C.TENNIS_MASTERS_LIVE_MAPPING_V2_21,C.TENNIS_MASTERS_LIVE_MAPPING_V2_22],R=function(r,e,a,_,t,o){var i,A;if(p.includes(r)?(i=_.toLowerCase()==e.toLowerCase()||_.toLowerCase()==a.toLowerCase(),A=t.toLowerCase()==e.toLowerCase()||t.toLowerCase()==a.toLowerCase()):(i=_.toLowerCase()==e.toLowerCase(),A=t.toLowerCase()==a.toLowerCase()),!0!==i){var E=o.get(_.toLowerCase()),n=o.get(e.toLowerCase()),s=o.get(a.toLowerCase());if([E,n].some((function(r){return null==r})))return!1;i=p.includes(r)?E==n||E==s:E==n}if(!0!==A){var N=o.get(t.toLowerCase());if(n=o.get(e.toLowerCase()),[N,s=o.get(a.toLowerCase())].some((function(r){return null==r})))return!1;A=p.includes(r)&&N==n||N==s}return i&&A},f=function(r,e,a,_){var t;if(a.toString().startsWith(C.TENNIS_GS.toString())||a.toString().startsWith(C.TENNIS_MASTERS.toString())){var o=e.getTime(),i=r.getTime();t=Math.abs(i-o)<=Number(60*_*1e3)}else t=e.toUTCString()==r.toUTCString();return t},G=function(r,e,a,_,t){var o=new Map;return r.forEach((function(r){var i,A,E=e.odds.filter((function(e){return e.sports_book_name.toLowerCase()==r.toLowerCase()})),n=_.get(a.homeTeam.toLowerCase()),s=_.get(a.awayTeam.toLowerCase()),N=0;null!=(i=null==n?E.find((function(r){var e=_.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==a.homeTeam.toLowerCase():e==a.homeTeam.toLowerCase()})):E.find((function(r){var e=_.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==n:e==n})))&&(N=i.price);var I=0;null!=(A=null==s?E.find((function(r){var e=_.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==a.awayTeam.toLowerCase():e==a.awayTeam.toLowerCase()})):E.find((function(r){var e=_.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==s:e==s})))&&(I=A.price);var S=0;if(t){var l=E.find((function(r){return"draw"==r.name.toLowerCase()}));null!=l&&(S=l.price)}o.set(r.toLowerCase(),{homeOdds:N,awayOdds:I,drawOdds:S})})),o},U=((E={})[C.NCAAF]={sport:l,id:C.NCAAF,isDrawAvailable:!1},E[C.NFL]={sport:l,id:C.NFL,isDrawAvailable:!1},E[C.MLB]={sport:d,id:C.MLB,isDrawAvailable:!1},E[C.NBA]={sport:L,id:C.NBA,isDrawAvailable:!1},E[C.NCAAB]={sport:L,id:C.NCAAB,isDrawAvailable:!1},E[C.NHL]={sport:M,id:C.NHL,isDrawAvailable:!1},E[C.UFC]={sport:u,id:C.UFC,isDrawAvailable:!1},E[C.WNBA]={sport:L,id:C.WNBA,isDrawAvailable:!1},E[C.MLS]={sport:S,id:C.MLS,isDrawAvailable:!0},E[C.EPL]={sport:S,id:C.EPL,isDrawAvailable:!0},E[C.LIGUE_ONE]={sport:S,id:C.LIGUE_ONE,isDrawAvailable:!0},E[C.BUNDESLIGA]={sport:S,id:C.BUNDESLIGA,isDrawAvailable:!0},E[C.LA_LIGA]={sport:S,id:C.LA_LIGA,isDrawAvailable:!0},E[C.SERIE_A]={sport:S,id:C.SERIE_A,isDrawAvailable:!0},E[C.UEFA_CL]={sport:S,id:C.UEFA_CL,isDrawAvailable:!0},E[C.UEFA_EL]={sport:S,id:C.UEFA_EL,isDrawAvailable:!0},E[C.FIFA_WC]={sport:S,id:C.FIFA_WC,isDrawAvailable:!0},E[C.J1_LEAGUE]={sport:S,id:C.J1_LEAGUE,isDrawAvailable:!0},E[C.IPL]={sport:w,id:C.IPL,isDrawAvailable:!1},E[C.T20_BLAST]={sport:w,id:C.T20_BLAST,isDrawAvailable:!1},E[C.IIHF_WORLD_CHAMPIONSHIP]={sport:M,id:C.IIHF_WORLD_CHAMPIONSHIP,isDrawAvailable:!0},E[C.COPA_AMERICA]={sport:S,id:C.COPA_AMERICA,isDrawAvailable:!0},E[C.COPA_LIBERTADORES]={sport:S,id:C.COPA_LIBERTADORES,isDrawAvailable:!0},E[C.UEFA_EURO]={sport:S,id:C.UEFA_EURO,isDrawAvailable:!0},E[C.EREDIVISIE]={sport:S,id:C.EREDIVISIE,isDrawAvailable:!0},E[C.PRIMEIRA_LIGA]={sport:S,id:C.PRIMEIRA_LIGA,isDrawAvailable:!0},E[C.FIFA_WC_WOMEN]={sport:S,id:C.FIFA_WC_WOMEN,isDrawAvailable:!0},E[C.ENGLAND_CUP]={sport:S,id:C.ENGLAND_CUP,isDrawAvailable:!0},E[C.FRANCE_CUP]={sport:S,isDrawAvailable:!0},E[C.SPAIN_CUP]={sport:S,id:C.SPAIN_CUP,isDrawAvailable:!0},E[C.ITALY_CUP]={sport:S,isDrawAvailable:!0},E[C.TENNIS_GS]={sport:O,id:C.TENNIS_GS,isDrawAvailable:!1},E[C.TENNIS_MASTERS]={sport:O,id:C.TENNIS_MASTERS,isDrawAvailable:!1},E[C.GERMANY_CUP]={sport:S,id:C.GERMANY_CUP,isDrawAvailable:!0},E[C.BRAZIL_1]={sport:S,id:C.BRAZIL_1,isDrawAvailable:!0},E[C.UEFA_EURO_U21]={sport:S,id:C.UEFA_EURO_U21,isDrawAvailable:!0},E[C.FIFA_WORLD_CUP_U20]={sport:S,id:C.FIFA_WORLD_CUP_U20,isDrawAvailable:!0},E[C.EUROLEAGUE]={sport:L,id:C.EUROLEAGUE,isDrawAvailable:!1},E[C.FIBA_WORLD_CUP]={sport:L,id:C.FIBA_WORLD_CUP,isDrawAvailable:!1},E[C.FORMULA1]={sport:T,id:C.FORMULA1,isDrawAvailable:!1},E[C.MOTOGP]={sport:T,id:C.MOTOGP,isDrawAvailable:!1},E[C.SAUDI_PROFESSIONAL_LEAGUE]={sport:S,id:C.SAUDI_PROFESSIONAL_LEAGUE,isDrawAvailable:!0},E[C.BOXING]={sport:u,id:C.BOXING,isDrawAvailable:!1},E[C.UEFA_NATIONS_LEAGUE]={sport:S,id:C.UEFA_NATIONS_LEAGUE,isDrawAvailable:!0},E[C.CONCACAF_NATIONS_LEAGUE]={sport:S,id:C.CONCACAF_NATIONS_LEAGUE,isDrawAvailable:!0},E[C.CSGO]={sport:P,id:C.CSGO,isDrawAvailable:!1},E[C.DOTA2]={sport:P,id:C.DOTA2,isDrawAvailable:!1},E[C.SUMMER_OLYMPICS_QUALIFICATION]={sport:L,id:C.SUMMER_OLYMPICS_QUALIFICATION,isDrawAvailable:!1},E[C.LOL]={sport:P,id:C.LOL,isDrawAvailable:!1},E[C.CONMEBOL_WC_QUALIFICATIONS]={sport:S,id:C.CONMEBOL_WC_QUALIFICATIONS,isDrawAvailable:!0},E[C.UEFA_CONFERENCE_LEAGUE]={sport:S,id:C.UEFA_CONFERENCE_LEAGUE,isDrawAvailable:!0},E[C.NON_TITLE_BOXING]={sport:u,isDrawAvailable:!1},E[C.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:S,id:C.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,isDrawAvailable:!0},E[C.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:S,id:C.UEFA_EUROPA_LEAGUE_QUALIFICATION,isDrawAvailable:!0},E[C.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:S,isDrawAvailable:!0},E[C.GOLF_H2H]={sport:m,id:C.GOLF_H2H,isDrawAvailable:!1},E[C.GOLF_WINNER]={sport:m,id:C.GOLF_WINNER,isDrawAvailable:!1},E[C.LIGA_MX]={sport:S,id:C.LIGA_MX,isDrawAvailable:!0},E[C.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:S,id:C.SUMMER_OLYMPICS_SOCCER_WOMEN,isDrawAvailable:!0},E[C.SUMMER_OLYMPICS_SOCCER]={sport:S,id:C.SUMMER_OLYMPICS_SOCCER,isDrawAvailable:!0},E[C.SUMMER_OLYMPICS_BASKETBALL]={sport:L,id:C.SUMMER_OLYMPICS_BASKETBALL,isDrawAvailable:!1},E[C.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:L,id:C.SUMMER_OLYMPICS_BASKETBALL_WOMEN,isDrawAvailable:!1},E[C.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:c,id:C.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,isDrawAvailable:!1},E[C.SUMMER_OLYMPICS_VOLEYBALL]={sport:c,isDrawAvailable:!1},E),b=function(r){var e=U[r];return e?e.sport:""},V=function(r,e,a){var _,t=r.score_home_total,o=r.score_away_total,i=r.clock,A=r.period,E=r.status,n=r.home_team,s=r.away_team,N=b(e);return"completed"==E.toLowerCase()?(console.log("Blocking game ".concat(n," - ").concat(s," because it is no longer live.")),null):(N===L&&(_=v(n,s,A,a.get(L))),N===M&&(_=v(n,s,A,a.get(M))),N===d&&(_=v(n,s,A,a.get(d))),N===S&&(_=g(n,s,i,A,a.get(S))),N===O&&(_=D(r,n,s,A,t,o,e,N)),N===c&&(_=D(r,n,s,A,t,o,e,N)),_)},v=function(r,e,a,_){return Number(a)>=_?{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to period: ").concat(a,". period")}:{allow:!0,message:""}},g=function(r,e,a,_,t){var o=Number(a);return!Number.isNaN(o)&&o>=t||Number.isNaN(o)&&"HALF"!=_?{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},D=function(r,e,a,_,t,o,i,A){var E=Number(_),n=F(E,r),s="atp"==r.league.toLowerCase(),N={home:t,away:o};return A==c?h(e,a,n,N,2,20):i.startsWith(C.TENNIS_GS)&&s?h(e,a,n,N,2,5):i.startsWith(C.TENNIS_GS)&&!s||i.startsWith(C.TENNIS_MASTERS)?h(e,a,n,N,1,5):void 0},F=function(r,e){var a=0,_=0;switch(r){case 2:a=Number(e.score_home_period_2),_=Number(e.score_away_period_2);break;case 3:a=Number(e.score_home_period_3),_=Number(e.score_away_period_3);break;case 4:a=Number(e.score_home_period_4),_=Number(e.score_away_period_4);break;case 5:a=Number(e.score_home_period_5),_=Number(e.score_away_period_5)}return{home:a,away:_}},h=function(r,e,a,_,t,o){return Number(_.home)!=t&&Number(_.away)!=t||!(2==Number(_.home)&&a.home>=o||2==Number(_.away)&&a.away>=o)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to current result: ").concat(_.home," - ").concat(_.away," (").concat(a.home," - ").concat(a.away,")")}},y=function(r,e,a){if(r.some((function(r){return 0===r})))return r;var _=r.reduce((function(r,e){return r+e}),0);if(_<=1)return Array(r.length).fill(0);if(0===a){if(!(e>100*(_-1)))return r;a=e}var t=1+a/100,o=t/_,i=r.map((function(r){return r*o}));if(i.some((function(r){return r>=1})))return Array(r.length).fill(0);var A=i.reduce((function(r,e){return r+e}),0);if(A<1)return Array(r.length).fill(0);var E=t/A;return i.map((function(r){return r*E}))},B=function(r,e,a,_){var t=r.find((function(r){return Number(r.typeId)===Number(a)&&Number(r.sportId)===Number(e)}));return t?{minSpread:t.minSpread?Number(t.minSpread):_,targetSpread:t.targetSpread?Number(t.targetSpread):0}:{minSpread:_,targetSpread:0}};return e})()));
|
package/package.json
CHANGED
package/src/constants/sports.ts
CHANGED
|
@@ -81,7 +81,6 @@ export const LeagueMap: Record<number, any> = {
|
|
|
81
81
|
sport: Sport.SOCCER,
|
|
82
82
|
id: League.UEFA_EL,
|
|
83
83
|
isDrawAvailable: true,
|
|
84
|
-
priority: 104,
|
|
85
84
|
},
|
|
86
85
|
[League.FIFA_WC]: {
|
|
87
86
|
sport: Sport.SOCCER,
|
|
@@ -136,7 +135,7 @@ export const LeagueMap: Record<number, any> = {
|
|
|
136
135
|
[League.FIFA_WC_WOMEN]: {
|
|
137
136
|
sport: Sport.SOCCER,
|
|
138
137
|
id: League.FIFA_WC_WOMEN,
|
|
139
|
-
|
|
138
|
+
isDrawAvailable: true,
|
|
140
139
|
},
|
|
141
140
|
[League.ENGLAND_CUP]: {
|
|
142
141
|
sport: Sport.SOCCER,
|
|
@@ -289,4 +288,33 @@ export const LeagueMap: Record<number, any> = {
|
|
|
289
288
|
id: League.LIGA_MX,
|
|
290
289
|
isDrawAvailable: true,
|
|
291
290
|
},
|
|
291
|
+
[League.SUMMER_OLYMPICS_SOCCER_WOMEN]: {
|
|
292
|
+
sport: Sport.SOCCER,
|
|
293
|
+
id: League.SUMMER_OLYMPICS_SOCCER_WOMEN,
|
|
294
|
+
isDrawAvailable: true,
|
|
295
|
+
},
|
|
296
|
+
[League.SUMMER_OLYMPICS_SOCCER]: {
|
|
297
|
+
sport: Sport.SOCCER,
|
|
298
|
+
id: League.SUMMER_OLYMPICS_SOCCER,
|
|
299
|
+
isDrawAvailable: true,
|
|
300
|
+
},
|
|
301
|
+
[League.SUMMER_OLYMPICS_BASKETBALL]: {
|
|
302
|
+
sport: Sport.BASKETBALL,
|
|
303
|
+
id: League.SUMMER_OLYMPICS_BASKETBALL,
|
|
304
|
+
isDrawAvailable: false,
|
|
305
|
+
},
|
|
306
|
+
[League.SUMMER_OLYMPICS_BASKETBALL_WOMEN]: {
|
|
307
|
+
sport: Sport.BASKETBALL,
|
|
308
|
+
id: League.SUMMER_OLYMPICS_BASKETBALL_WOMEN,
|
|
309
|
+
isDrawAvailable: false,
|
|
310
|
+
},
|
|
311
|
+
[League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]: {
|
|
312
|
+
sport: Sport.VOLLEYBALL,
|
|
313
|
+
id: League.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,
|
|
314
|
+
isDrawAvailable: false,
|
|
315
|
+
},
|
|
316
|
+
[League.SUMMER_OLYMPICS_VOLEYBALL]: {
|
|
317
|
+
sport: Sport.VOLLEYBALL,
|
|
318
|
+
isDrawAvailable: false,
|
|
319
|
+
},
|
|
292
320
|
};
|
package/src/enums/sports.ts
CHANGED
|
@@ -7,6 +7,10 @@ export const Sport = {
|
|
|
7
7
|
FIGHTING: 'Fighting',
|
|
8
8
|
TENNIS: 'Tennis',
|
|
9
9
|
ESPORTS: 'eSports',
|
|
10
|
+
RUGBY: 'Rugby',
|
|
11
|
+
VOLLEYBALL: 'Volleyball',
|
|
12
|
+
HANDBALL: 'Handball',
|
|
13
|
+
WATERPOLO: 'Waterpolo',
|
|
10
14
|
CRICKET: 'Cricket',
|
|
11
15
|
MOTOSPORT: 'Motosport',
|
|
12
16
|
GOLF: 'Golf',
|
|
@@ -40,6 +44,8 @@ export const League = {
|
|
|
40
44
|
UEFA_EURO: 50,
|
|
41
45
|
EREDIVISIE: 57,
|
|
42
46
|
PRIMEIRA_LIGA: 61,
|
|
47
|
+
SUMMER_OLYMPICS_SOCCER_WOMEN: 65,
|
|
48
|
+
SUMMER_OLYMPICS_SOCCER: 66,
|
|
43
49
|
FIFA_WC_WOMEN: 76,
|
|
44
50
|
ENGLAND_CUP: 132,
|
|
45
51
|
FRANCE_CUP: 134,
|
|
@@ -52,21 +58,35 @@ export const League = {
|
|
|
52
58
|
BRAZIL_1: 268,
|
|
53
59
|
UEFA_EURO_U21: 288,
|
|
54
60
|
FIFA_WORLD_CUP_U20: 296,
|
|
61
|
+
SUMMER_OLYMPICS_HANDBALL_WOMEN: 380,
|
|
62
|
+
SUMMER_OLYMPICS_HANDBALL: 381,
|
|
55
63
|
EUROLEAGUE: 399,
|
|
64
|
+
SUMMER_OLYMPICS_BASKETBALL: 406,
|
|
65
|
+
SUMMER_OLYMPICS_BASKETBALL_WOMEN: 407,
|
|
56
66
|
FIBA_WORLD_CUP: 409,
|
|
57
67
|
FORMULA1: 445,
|
|
58
68
|
MOTOGP: 497,
|
|
59
69
|
SAUDI_PROFESSIONAL_LEAGUE: 536,
|
|
70
|
+
SUMMER_OLYMPICS_WATERPOLO: 8881,
|
|
71
|
+
SUMMER_OLYMPICS_VOLEYBALL_WOMEN: 8893,
|
|
72
|
+
SUMMER_OLYMPICS_VOLEYBALL: 8894,
|
|
60
73
|
BOXING: 9196,
|
|
74
|
+
SUMMER_OLYMPICS_RUGBY: 9578,
|
|
75
|
+
SUMMER_OLYMPICS_RUGBY_WOMEN: 9588,
|
|
61
76
|
UEFA_NATIONS_LEAGUE: 9806,
|
|
62
77
|
CONCACAF_NATIONS_LEAGUE: 9821,
|
|
63
78
|
CSGO: 9977,
|
|
64
79
|
DOTA2: 9983,
|
|
80
|
+
SUMMER_OLYMPICS_BASKETBALL_3X3: 10071,
|
|
81
|
+
SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN: 10072,
|
|
65
82
|
SUMMER_OLYMPICS_QUALIFICATION: 10502,
|
|
66
83
|
LOL: 10138,
|
|
67
84
|
CONMEBOL_WC_QUALIFICATIONS: 10199,
|
|
68
85
|
UEFA_CONFERENCE_LEAGUE: 10216,
|
|
69
86
|
NON_TITLE_BOXING: 10595,
|
|
87
|
+
UEFA_CHAMPIONS_LEAGUE_QUALIFICATION: 10611,
|
|
88
|
+
UEFA_EUROPA_LEAGUE_QUALIFICATION: 10613,
|
|
89
|
+
UEFA_CONFERENCE_LEAGUE_QUALIFICATION: 10615,
|
|
70
90
|
GOLF_H2H: 100021,
|
|
71
91
|
GOLF_WINNER: 100121,
|
|
72
92
|
TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1: 15312,
|
|
@@ -98,9 +118,6 @@ export const League = {
|
|
|
98
118
|
TENNIS_MASTERS_LIVE_MAPPING_V2_20: 15646,
|
|
99
119
|
TENNIS_MASTERS_LIVE_MAPPING_V2_21: 15647,
|
|
100
120
|
TENNIS_MASTERS_LIVE_MAPPING_V2_22: 15648,
|
|
101
|
-
UEFA_CHAMPIONS_LEAGUE_QUALIFICATION: 10611,
|
|
102
|
-
UEFA_EUROPA_LEAGUE_QUALIFICATION: 10613,
|
|
103
|
-
UEFA_CONFERENCE_LEAGUE_QUALIFICATION: 10615,
|
|
104
121
|
};
|
|
105
122
|
|
|
106
123
|
export const LEAGUES_NO_FORMAL_HOME_AWAY = [
|
package/src/utils/sports.ts
CHANGED
|
@@ -61,14 +61,28 @@ export const checkGameContraints = (opticOddsScoresApiResponse, marketLeague, co
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
if (marketSport === Sport.TENNIS) {
|
|
64
|
-
allowedObject =
|
|
64
|
+
allowedObject = allowGameSportWithResultConstraint(
|
|
65
65
|
opticOddsScoresApiResponse,
|
|
66
66
|
homeTeam,
|
|
67
67
|
awayTeam,
|
|
68
68
|
currentPeriod,
|
|
69
69
|
currentScoreHome,
|
|
70
70
|
currentScoreAway,
|
|
71
|
-
marketLeague
|
|
71
|
+
marketLeague,
|
|
72
|
+
marketSport
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (marketSport === Sport.VOLLEYBALL) {
|
|
77
|
+
allowedObject = allowGameSportWithResultConstraint(
|
|
78
|
+
opticOddsScoresApiResponse,
|
|
79
|
+
homeTeam,
|
|
80
|
+
awayTeam,
|
|
81
|
+
currentPeriod,
|
|
82
|
+
currentScoreHome,
|
|
83
|
+
currentScoreAway,
|
|
84
|
+
marketLeague,
|
|
85
|
+
marketSport
|
|
72
86
|
);
|
|
73
87
|
}
|
|
74
88
|
|
|
@@ -97,101 +111,87 @@ export const allowSoccerGame = (homeTeam, awayTeam, currentClock, currentPeriod,
|
|
|
97
111
|
return { allow: true, message: '' };
|
|
98
112
|
};
|
|
99
113
|
|
|
100
|
-
export const
|
|
114
|
+
export const allowGameSportWithResultConstraint = (
|
|
101
115
|
opticOddsScoresApiResponse,
|
|
102
116
|
homeTeam,
|
|
103
117
|
awayTeam,
|
|
104
118
|
currentPeriod,
|
|
105
119
|
currentScoreHome,
|
|
106
120
|
currentScoreAway,
|
|
107
|
-
marketLeague
|
|
121
|
+
marketLeague,
|
|
122
|
+
marketSport
|
|
108
123
|
) => {
|
|
109
124
|
const setInProgress = Number(currentPeriod);
|
|
110
|
-
|
|
111
|
-
let currentAwayGameScore;
|
|
112
|
-
|
|
125
|
+
const currentResultInSet = fetchResultInCurrentSet(setInProgress, opticOddsScoresApiResponse);
|
|
113
126
|
const atpGrandSlamMatch = opticOddsScoresApiResponse.league.toLowerCase() == 'atp';
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
127
|
+
const currentSetsScore = { home: currentScoreHome, away: currentScoreAway };
|
|
128
|
+
|
|
129
|
+
if (marketSport == Sport.VOLLEYBALL) {
|
|
130
|
+
return checkResultConstraint(homeTeam, awayTeam, currentResultInSet, currentSetsScore, 2, 20);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (marketLeague.startsWith(League.TENNIS_GS) && atpGrandSlamMatch) {
|
|
134
|
+
return checkResultConstraint(homeTeam, awayTeam, currentResultInSet, currentSetsScore, 2, 5);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (
|
|
138
|
+
(marketLeague.startsWith(League.TENNIS_GS) && !atpGrandSlamMatch) ||
|
|
139
|
+
marketLeague.startsWith(League.TENNIS_MASTERS)
|
|
140
|
+
) {
|
|
141
|
+
return checkResultConstraint(homeTeam, awayTeam, currentResultInSet, currentSetsScore, 1, 5);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
const fetchResultInCurrentSet = (currentSet: number, opticOddsScoresApiResponse) => {
|
|
146
|
+
let currentHomeGameScore = 0;
|
|
147
|
+
let currentAwayGameScore = 0;
|
|
148
|
+
switch (currentSet) {
|
|
149
|
+
case 2:
|
|
150
|
+
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_2);
|
|
151
|
+
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_2);
|
|
152
|
+
break;
|
|
153
|
+
case 3:
|
|
154
|
+
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_3);
|
|
155
|
+
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_3);
|
|
156
|
+
break;
|
|
157
|
+
case 4:
|
|
158
|
+
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_4);
|
|
159
|
+
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_4);
|
|
160
|
+
break;
|
|
161
|
+
case 5:
|
|
162
|
+
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_5);
|
|
163
|
+
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_5);
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
return { home: currentHomeGameScore, away: currentAwayGameScore };
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const checkResultConstraint = (homeTeam, awayTeam, currentResultInSet, currentSetsWon, setThreshold, resultLimit) => {
|
|
170
|
+
if (Number(currentSetsWon.home) == setThreshold || Number(currentSetsWon.away) == setThreshold) {
|
|
171
|
+
if (Number(currentSetsWon.home) == 2 && currentResultInSet.home >= resultLimit) {
|
|
143
172
|
return {
|
|
144
|
-
allow:
|
|
145
|
-
message:
|
|
146
|
-
currentHomeGameScore: currentHomeGameScore,
|
|
147
|
-
currentAwayGameScore: currentAwayGameScore,
|
|
173
|
+
allow: false,
|
|
174
|
+
message: `Blocking game ${homeTeam} - ${awayTeam} due to current result: ${currentSetsWon.home} - ${currentSetsWon.away} (${currentResultInSet.home} - ${currentResultInSet.away})`,
|
|
148
175
|
};
|
|
149
176
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
allow: true,
|
|
153
|
-
message: '',
|
|
154
|
-
currentHomeGameScore: currentHomeGameScore,
|
|
155
|
-
currentAwayGameScore: currentAwayGameScore,
|
|
156
|
-
};
|
|
157
|
-
} else {
|
|
158
|
-
if (Number(currentScoreHome) == 1 || Number(currentScoreAway) == 1) {
|
|
159
|
-
switch (setInProgress) {
|
|
160
|
-
case 2:
|
|
161
|
-
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_2);
|
|
162
|
-
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_2);
|
|
163
|
-
break;
|
|
164
|
-
case 3:
|
|
165
|
-
currentHomeGameScore = Number(opticOddsScoresApiResponse.score_home_period_3);
|
|
166
|
-
currentAwayGameScore = Number(opticOddsScoresApiResponse.score_away_period_3);
|
|
167
|
-
break;
|
|
168
|
-
}
|
|
169
|
-
if (Number(currentScoreHome) == 1 && currentHomeGameScore >= 5) {
|
|
170
|
-
return {
|
|
171
|
-
allow: false,
|
|
172
|
-
message: `Blocking game ${homeTeam} - ${awayTeam} due to current result: ${currentScoreHome} - ${currentScoreAway} (${currentHomeGameScore} - ${currentAwayGameScore})`,
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (Number(currentScoreAway) == 1 && currentAwayGameScore >= 5) {
|
|
177
|
-
return {
|
|
178
|
-
allow: false,
|
|
179
|
-
message: `Blocking game ${homeTeam} - ${awayTeam} due to current result: ${currentScoreHome} - ${currentScoreAway} (${currentHomeGameScore} - ${currentAwayGameScore})`,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
177
|
+
|
|
178
|
+
if (Number(currentSetsWon.away) == 2 && currentResultInSet.away >= resultLimit) {
|
|
182
179
|
return {
|
|
183
|
-
allow:
|
|
184
|
-
message:
|
|
185
|
-
currentHomeGameScore: currentHomeGameScore,
|
|
186
|
-
currentAwayGameScore: currentAwayGameScore,
|
|
180
|
+
allow: false,
|
|
181
|
+
message: `Blocking game ${homeTeam} - ${awayTeam} due to current result: ${currentSetsWon.home} - ${currentSetsWon.away} (${currentResultInSet.home} - ${currentResultInSet.away})`,
|
|
187
182
|
};
|
|
188
183
|
}
|
|
189
|
-
// RETURN TRUE IF NO PLAYER HAS STILL WON A SET
|
|
190
184
|
return {
|
|
191
185
|
allow: true,
|
|
192
186
|
message: '',
|
|
193
|
-
currentHomeGameScore:
|
|
194
|
-
currentAwayGameScore:
|
|
187
|
+
currentHomeGameScore: currentResultInSet.home,
|
|
188
|
+
currentAwayGameScore: currentResultInSet.away,
|
|
195
189
|
};
|
|
196
190
|
}
|
|
191
|
+
return {
|
|
192
|
+
allow: true,
|
|
193
|
+
message: '',
|
|
194
|
+
currentHomeGameScore: currentResultInSet.home,
|
|
195
|
+
currentAwayGameScore: currentResultInSet.away,
|
|
196
|
+
};
|
|
197
197
|
};
|