790 lines
21 KiB
JavaScript
790 lines
21 KiB
JavaScript
|
|
let u = new URL(location.href)
|
|||
|
|
urlPrivateAPI = u.origin + '/api'
|
|||
|
|
|
|||
|
|
api = new API({
|
|||
|
|
url: urlPrivateAPI,
|
|||
|
|
timeout: 10000, // 10 sec
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
Football = 1
|
|||
|
|
Handball = 2
|
|||
|
|
|
|||
|
|
flashscoreWsURL = 'ws://195.189.227.88:5757/ws'
|
|||
|
|
onexbetWsURL = 'ws://195.189.227.88:5758/ws'
|
|||
|
|
tipperWsURL = 'ws://195.189.227.88:5759/ws'
|
|||
|
|
|
|||
|
|
document.addEventListener('DOMContentLoaded', ()=> {
|
|||
|
|
totalsModel = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'total',
|
|||
|
|
},
|
|||
|
|
container: 'totals',
|
|||
|
|
preFunc: (r) => {
|
|||
|
|
r.roi = Math.round(r.roi*100)/100
|
|||
|
|
r.profit = Math.round(r.profit*100)/100
|
|||
|
|
r.drawdown = Math.round(r.drawdown*100)/100
|
|||
|
|
r.accuracy = Math.round(r.accuracy*100)/100
|
|||
|
|
},
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
spa = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'spa',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
spa2 = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'spa2',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
eng = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'eng',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
eng2 = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'eng2',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
ger = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'ger',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
ita = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'ita',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
ita2 = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'ita2',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
por = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'por',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
ukr = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'ukr',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
swi = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'swi',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
tur = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'tur',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
rus = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'rus',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
rom = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'rom',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
mon = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'mon',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
bel = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'bel',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
gre = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'gre',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
che = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'che',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
cro = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'cro',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
den = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: 'den',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
= new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: '',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
= new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: '',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
= new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: '',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
= new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'report',
|
|||
|
|
},
|
|||
|
|
container: '',
|
|||
|
|
preFunc: modifyReport,
|
|||
|
|
})
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
//1xbet
|
|||
|
|
bookLiveModel = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'liveMatch',
|
|||
|
|
},
|
|||
|
|
container: 'book-live',
|
|||
|
|
preFunc: modifyLiveMatch,
|
|||
|
|
sort: {
|
|||
|
|
key: 'startTime',
|
|||
|
|
reverse: true
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// tips
|
|||
|
|
|
|||
|
|
tipModel = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'tip',
|
|||
|
|
renders: {
|
|||
|
|
tip: (tags, tip) => {
|
|||
|
|
//console.log('tags:', tags)
|
|||
|
|
//console.log('x:', x)
|
|||
|
|
if (tip.status == 1) {
|
|||
|
|
tags.matchName.classList.add('profit')
|
|||
|
|
} else if (tip.status == 2) {
|
|||
|
|
tags.matchName.classList.add('errmsg')
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
container: 'tips',
|
|||
|
|
preFunc: modifyTip,
|
|||
|
|
sort: {
|
|||
|
|
key: 'tipTime',
|
|||
|
|
//reverse: true
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
// strategies
|
|||
|
|
|
|||
|
|
strategiesModel = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'strategy',
|
|||
|
|
},
|
|||
|
|
container: 'strategies',
|
|||
|
|
preFunc: (r) => {
|
|||
|
|
r.roi = Math.round(r.roi*100)/100
|
|||
|
|
r.profit = Math.round(r.profit*100)/100
|
|||
|
|
r.drawdown = Math.round(r.drawdown*100)/100
|
|||
|
|
r.accuracy = Math.round(r.accuracy*100)/100
|
|||
|
|
},
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
// flashscore
|
|||
|
|
let ws = new WebsocketClient({
|
|||
|
|
//url: 'ws://localhost:5757/ws'
|
|||
|
|
//url: 'ws://167.99.157.181:5757/ws'
|
|||
|
|
url: flashscoreWsURL
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
//ws.onconnected =
|
|||
|
|
|
|||
|
|
ws.handle('footballChamps', resp => {
|
|||
|
|
console.log('champs:', resp)
|
|||
|
|
if (Array.isArray(resp.Champs)) {
|
|||
|
|
//console.log('array')
|
|||
|
|
resp.Champs.forEach(champ => {
|
|||
|
|
console.log(champ)
|
|||
|
|
updateChamp(champ)
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
ws.handle('footballMatchReports', resp => {
|
|||
|
|
console.log('reports:', resp)
|
|||
|
|
if (resp) {
|
|||
|
|
updateChamp(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
interesting = new ListModel({
|
|||
|
|
template: {
|
|||
|
|
id: 'interestingMatch',
|
|||
|
|
renders: {
|
|||
|
|
interestingMatch: (tags, match) => {
|
|||
|
|
let radios = new RadioList({
|
|||
|
|
container: tags.candidates,
|
|||
|
|
templateId: 'candidate-item',
|
|||
|
|
setEmptyMessage: 'нет матчей кандидатов'
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
tags.search.addEventListener('click', () => {
|
|||
|
|
let teamName = tags.teamName.value.trim()
|
|||
|
|
|
|||
|
|
if (teamName == '') {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'searchMatchCandidatesByTeamName',
|
|||
|
|
data: {
|
|||
|
|
sportID: Football,
|
|||
|
|
teamName: teamName
|
|||
|
|
},
|
|||
|
|
onError: err => {
|
|||
|
|
console.log(err)
|
|||
|
|
tags.candidates.textContent = "FUCK: " + err
|
|||
|
|
},
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
tags.submit.disabled = false
|
|||
|
|
radios.clear()
|
|||
|
|
|
|||
|
|
console.log(resp)
|
|||
|
|
if (Array.isArray(resp)) {
|
|||
|
|
resp.forEach(candidate => {
|
|||
|
|
candidate.startTimeStr = moment(candidate.startTime * 1000).format("MMM DD, HH:mm:ss")
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
// show model + form
|
|||
|
|
radios.setList(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
tags.submit.addEventListener('click', () => {
|
|||
|
|
//console.log(radios.getSelected())
|
|||
|
|
let candidate = radios.getSelected()
|
|||
|
|
if (!candidate) {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
api.req({
|
|||
|
|
func: 'addTeamsAliases',
|
|||
|
|
data: {
|
|||
|
|
home: {
|
|||
|
|
teamID: match.home.teamID,
|
|||
|
|
name: candidate.home
|
|||
|
|
},
|
|||
|
|
away: {
|
|||
|
|
teamID: match.away.teamID,
|
|||
|
|
name: candidate.away
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
onError: err => {
|
|||
|
|
//tags.candidates.textContent = 'FUCK: ' + err
|
|||
|
|
console.log(err)
|
|||
|
|
},
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
//console.log('ok')
|
|||
|
|
//tags.identification.click()
|
|||
|
|
radios.clear()
|
|||
|
|
tags.candidates.textContent = "Алиасы добавлены!"
|
|||
|
|
tags.submit.disabled = true
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
tags.identification.addEventListener('click', () => {
|
|||
|
|
//console.log('details:', tags.identification.open)
|
|||
|
|
//console.log(match)
|
|||
|
|
if (tags.identification.open) {
|
|||
|
|
//tags.candidates.innerHTML = ''
|
|||
|
|
} else {
|
|||
|
|
//tags.candidates.innerHTML = ''
|
|||
|
|
radios.clear()
|
|||
|
|
|
|||
|
|
//radios.setList([
|
|||
|
|
// {home: 'Arsenal', away: 'Mancity', sport: 'Football', champName: 'England. Premier League', startTimeStr: "Oct 06, 12:30:00"},
|
|||
|
|
// {home: 'Arsenal', away: 'Aston villa', sport: 'Football', champName: 'England. Premier League', startTimeStr: "Oct 06, 12:30:00"},
|
|||
|
|
//])
|
|||
|
|
|
|||
|
|
//tags.candidates.textContent = JSON.stringify(match)
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'searchMatchCandidates',
|
|||
|
|
data: {
|
|||
|
|
sportID: Football,
|
|||
|
|
home: match.home.canonicalName,
|
|||
|
|
away: match.away.canonicalName
|
|||
|
|
},
|
|||
|
|
onError: err => {
|
|||
|
|
console.log(err)
|
|||
|
|
tags.candidates.textContent = "FUCK: " + err
|
|||
|
|
},
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
tags.submit.disabled = false
|
|||
|
|
console.log(resp)
|
|||
|
|
if (Array.isArray(resp)) {
|
|||
|
|
resp.forEach(candidate => {
|
|||
|
|
candidate.startTimeStr = moment(candidate.startTime * 1000).format("MMM DD, HH:mm:ss")
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
// show model + form
|
|||
|
|
radios.setList(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
container: 'interesting',
|
|||
|
|
preFunc: modifyInterestingMatch,
|
|||
|
|
sort: {
|
|||
|
|
key: 'startTime',
|
|||
|
|
reverse: true
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// 1xbet
|
|||
|
|
let onexbetWs = new WebsocketClient({
|
|||
|
|
//url: 'ws://localhost:5758/ws'
|
|||
|
|
//url: 'ws://167.99.157.181:5758/ws'
|
|||
|
|
url: onexbetWsURL
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
onexbetWs.handle('liveMatches', resp => {
|
|||
|
|
console.log('liveMatches:', resp)
|
|||
|
|
|
|||
|
|
if (Array.isArray(resp.matches)) {
|
|||
|
|
bookLiveModel.setList(resp.matches)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
onexbetWs.handle('liveMatchesUpdate', resp => {
|
|||
|
|
//console.log('liveMatchesUpdate:', resp)
|
|||
|
|
let list = bookLiveModel.getList()
|
|||
|
|
|
|||
|
|
let removeMap = {}
|
|||
|
|
if (resp.removedMatchIDs) {
|
|||
|
|
resp.removedMatchIDs.forEach(matchID => {
|
|||
|
|
removeMap[matchID] = true
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let newList = []
|
|||
|
|
|
|||
|
|
list.forEach(old => {
|
|||
|
|
if (removeMap[old.matchID] === true) {
|
|||
|
|
return
|
|||
|
|
} else {
|
|||
|
|
newList.push(old)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
if (Array.isArray(resp.addedMatches)) {
|
|||
|
|
resp.addedMatches.forEach(newMatch => {
|
|||
|
|
newList.push(newMatch)
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bookLiveModel.setList(newList)
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
onexbetWs.handle('footballLiveMatchData', resp => {
|
|||
|
|
//console.log('footballLiveMatchData:', resp)
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
|
|||
|
|
// tipper
|
|||
|
|
let tipperWs = new WebsocketClient({
|
|||
|
|
// url: 'ws://localhost:5759/ws'
|
|||
|
|
// url: 'ws://167.99.157.181:5759/ws'
|
|||
|
|
url: tipperWsURL
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
tipperWs.handle('interestingFootballMatches', resp => {
|
|||
|
|
console.log('interesting matches:', resp)
|
|||
|
|
|
|||
|
|
if (Array.isArray(resp.matches)) {
|
|||
|
|
interesting.setList(resp.matches)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
tipperWs.handle('tipsChanged', resp => {
|
|||
|
|
//console.log('tip:', resp)
|
|||
|
|
|
|||
|
|
//tipModel.add(resp)
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'listTips',
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
tipModel.setList(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'listStrategiesReports',
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
strategiesModel.setList(resp)
|
|||
|
|
showTotal(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
ws.handle('footballMatchReports', resp => {
|
|||
|
|
console.log('reports:', resp)
|
|||
|
|
updateChamp(resp)
|
|||
|
|
})
|
|||
|
|
*/
|
|||
|
|
ws.connect()
|
|||
|
|
onexbetWs.connect()
|
|||
|
|
tipperWs.connect()
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'listTips',
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
tipModel.setList(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
api.req({
|
|||
|
|
func: 'listStrategiesReports',
|
|||
|
|
onSuccess: resp => {
|
|||
|
|
strategiesModel.setList(resp)
|
|||
|
|
showTotal(resp)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
function showTotal(reports) {
|
|||
|
|
// 1,2,3
|
|||
|
|
let allChampsTotal = {
|
|||
|
|
name: 'Все чемпионаты',
|
|||
|
|
wonTips: 0,
|
|||
|
|
lostTips: 0,
|
|||
|
|
accuracy: 0,
|
|||
|
|
profit: 0,
|
|||
|
|
turnover: 0,
|
|||
|
|
roi: 0
|
|||
|
|
}
|
|||
|
|
/*
|
|||
|
|
let topChampsTotal = {
|
|||
|
|
name: 'Топ чемпионаты',
|
|||
|
|
wonTips: 0,
|
|||
|
|
lostTips: 0,
|
|||
|
|
accuracy: 0,
|
|||
|
|
profit: 0,
|
|||
|
|
turnover: 0,
|
|||
|
|
roi: 0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
let myTotal = {
|
|||
|
|
name: 'Алгоритмы от Программиста',
|
|||
|
|
wonTips: 0,
|
|||
|
|
lostTips: 0,
|
|||
|
|
accuracy: 0,
|
|||
|
|
profit: 0,
|
|||
|
|
turnover: 0,
|
|||
|
|
roi: 0
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
let m = new Map()
|
|||
|
|
|
|||
|
|
m.set(1, allChampsTotal)
|
|||
|
|
m.set(2, allChampsTotal)
|
|||
|
|
m.set(3, allChampsTotal)
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
m.set(11, topChampsTotal)
|
|||
|
|
m.set(22, topChampsTotal)
|
|||
|
|
m.set(33, topChampsTotal)
|
|||
|
|
|
|||
|
|
m.set(701, myTotal)
|
|||
|
|
m.set(702, myTotal)
|
|||
|
|
m.set(703, myTotal)
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
let total = 0
|
|||
|
|
if (Array.isArray(reports)) {
|
|||
|
|
reports.forEach(r => {
|
|||
|
|
let total = m.get(r.strategyID)
|
|||
|
|
if (!total) {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
total.wonTips += r.wonTips
|
|||
|
|
total.lostTips += r.lostTips
|
|||
|
|
total.profit += r.profit
|
|||
|
|
total.turnover += r.turnover
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
clacROIandAccuracy(allChampsTotal)
|
|||
|
|
//clacROIandAccuracy(topChampsTotal)
|
|||
|
|
//clacROIandAccuracy(myTotal)
|
|||
|
|
|
|||
|
|
|
|||
|
|
//totalsModel.setList([allChampsTotal, topChampsTotal, myTotal])
|
|||
|
|
totalsModel.setList([allChampsTotal])
|
|||
|
|
|
|||
|
|
//document.getElementById('total').textContent = 'Общий итог: ' + total + ' грн'
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function clacROIandAccuracy(total) {
|
|||
|
|
total.roi = (total.profit * 100) / total.turnover
|
|||
|
|
total.accuracy = (total.wonTips * 100) / (total.wonTips + total.lostTips)
|
|||
|
|
|
|||
|
|
//total.roi = Math.round(total.roi*100)/100
|
|||
|
|
//total.accuracy = Math.round(total.accuracy*100)/100
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function updateChamp(champ) {
|
|||
|
|
if (!champ.Champ) {
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
let lastSync = moment(champ.LastSync * 1000).format("MMM DD, HH:mm:ss")
|
|||
|
|
|
|||
|
|
switch (champ.Champ.champID) {
|
|||
|
|
case "/england/premier-league":
|
|||
|
|
document.getElementById('engLastSync').textContent = lastSync
|
|||
|
|
eng.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/germany/bundesliga":
|
|||
|
|
document.getElementById('gerLastSync').textContent = lastSync
|
|||
|
|
ger.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/italy/serie-a":
|
|||
|
|
document.getElementById('itaLastSync').textContent = lastSync
|
|||
|
|
ita.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/spain/laliga":
|
|||
|
|
document.getElementById('spaLastSync').textContent = lastSync
|
|||
|
|
spa.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/ukraine/premier-league":
|
|||
|
|
document.getElementById('ukrLastSync').textContent = lastSync
|
|||
|
|
ukr.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/portugal/primeira-liga":
|
|||
|
|
document.getElementById('porLastSync').textContent = lastSync
|
|||
|
|
por.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/switzerland/super-league":
|
|||
|
|
document.getElementById('swiLastSync').textContent = lastSync
|
|||
|
|
swi.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/turkey/super-lig":
|
|||
|
|
document.getElementById('turLastSync').textContent = lastSync
|
|||
|
|
tur.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/russia/premier-league":
|
|||
|
|
document.getElementById('rusLastSync').textContent = lastSync
|
|||
|
|
rus.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/belarus/vysshaya-liga":
|
|||
|
|
document.getElementById('belLastSync').textContent = lastSync
|
|||
|
|
bel.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/greece/super-league":
|
|||
|
|
document.getElementById('greLastSync').textContent = lastSync
|
|||
|
|
gre.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/montenegro/prva-crnogorska-liga":
|
|||
|
|
document.getElementById('monLastSync').textContent = lastSync
|
|||
|
|
mon.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/romania/liga-1":
|
|||
|
|
document.getElementById('romLastSync').textContent = lastSync
|
|||
|
|
rom.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/croatia/1-hnl":
|
|||
|
|
document.getElementById('croLastSync').textContent = lastSync
|
|||
|
|
cro.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/czech-republic/1-liga":
|
|||
|
|
document.getElementById('cheLastSync').textContent = lastSync
|
|||
|
|
che.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/denmark/superliga":
|
|||
|
|
document.getElementById('denLastSync').textContent = lastSync
|
|||
|
|
den.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/england/championship":
|
|||
|
|
document.getElementById('eng2LastSync').textContent = lastSync
|
|||
|
|
eng2.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/italy/serie-b":
|
|||
|
|
document.getElementById('ita2LastSync').textContent = lastSync
|
|||
|
|
ita2.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
|
|||
|
|
case "/spain/laliga2":
|
|||
|
|
document.getElementById('spa2LastSync').textContent = lastSync
|
|||
|
|
spa2.setList(champ.Reports)
|
|||
|
|
break
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
function modifyReport(report) {
|
|||
|
|
report.match = `${report.Home.canonicalName} - ${report.Away.canonicalName}`
|
|||
|
|
report.msg = JSON.stringify(report, null, 3)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function modifyInterestingMatch(report) {
|
|||
|
|
report.champName = `${report.zone.name}. ${report.champ.name}`
|
|||
|
|
report.startTimeStr = moment(report.startTime * 1000).format("MMM DD, HH:mm:ss")
|
|||
|
|
let home = report.home.canonicalName
|
|||
|
|
if (!report.home.wasLinked) {
|
|||
|
|
home = '*' + home
|
|||
|
|
}
|
|||
|
|
let away = report.away.canonicalName
|
|||
|
|
if (!report.away.wasLinked) {
|
|||
|
|
away = '*' + away
|
|||
|
|
}
|
|||
|
|
report.match = `${home} - ${away}`
|
|||
|
|
if (report.isLinkedToOnexbet) {
|
|||
|
|
report.isLinked = 'linked to 1xBet'
|
|||
|
|
}
|
|||
|
|
if (report.isInplay) {
|
|||
|
|
report.isInplay = 'inplay'
|
|||
|
|
} else {
|
|||
|
|
report.isInplay = ''
|
|||
|
|
}
|
|||
|
|
report.notes = JSON.stringify(report.notes, null, 3)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function modifyLiveMatch(report) {
|
|||
|
|
if (!report.match) {
|
|||
|
|
report.champName = `${report.sportName}. ${report.champName}`
|
|||
|
|
}
|
|||
|
|
report.startTimeStr = moment(report.startTime * 1000).format("MMM DD, HH:mm:ss")
|
|||
|
|
report.match = `${report.home} - ${report.away}`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function modifyTip(report) {
|
|||
|
|
report.msg = JSON.stringify(report, null, 3)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|