Здравствуйте.
Помогите разобраться. Всю голову сломал уже.
Вообщем есть скрипт:
function start_new_bot(e, t, a, n, s, o, r, i, m, c) {
function d() {
var e = (new Date).getTime() + timecheck;
timeend = 60 * Math.ceil((Math.ceil(e / 1e3) + 30) / 60) + 60 * (time - 1), !0 === auto ? l() : p();
var t = Math.ceil(minamount / 100 * procent);
if (balance < oldbalance) {
switch (amount = Math.ceil(summ / procent * 100), strategy) {
case 1:
summ += amount;
break;
case 2:
summ = summ + amount + t
}
u()
}
if (balance > oldbalance) switch (amount = minamount, strategy) {
case 1:
summ = amount + t;
break;
case 2:
summ = amount + t + t
}
balance >= maxdohod && f(y.maxdohod),
procent < minper && f(y.minper),
amount > maxstavka && (amount = minamount),
amount > balance && (amount = balance),
ref += 1,
oldbalance = balance,
amount = (parseInt(amount/100, 10)+1)*100,
amount = amount - 100,
ws.send('{"topic":"base","event":"create_deal","payload":{"demo":true,"asset":"' + asset + '","expire_at":' + timeend + ',"amount":' + amount + ',"source":"mouse","trusted":false,"created_at":' + e + ',"option_type":"turbo","deal_type":"' + type + '","tournament_id":null,"trend":"' + trend + '"},"ref":"' + ref + '","join_ref":"1"}')
}
function u() {
trend = "call" == trend ? "put" : "call"
}
function l() {
switch (date_server.getUTCDay()) {
case 1:
e = "mon";
break;
case 2:
e = "tue";
break;
case 3:
e = "wed";
break;
case 4:
e = "thu";
break;
case 5:
e = "fri";
break;
case 6:
e = "sat";
break;
case 0:
var e = "sun"
}
var t = date_server.getUTCHours() + ":" + date_server.getUTCMinutes(),
a = new XMLHttpRequest;
a.open("GET", "https://binomo.com/api/assets?device=web&locale=ru", !1),
a.send(),
200 != a.status && alert(a.status + ": " + a.statusText);
var n = JSON.parse(a.responseText);
procent = n.data.assets[paraid].payment_rate_turbo, asset = n.data.assets[paraid].ric, 0 == n.data.assets[paraid].active && (procent = 10);
for (key in n.data.assets) procent < n.data.assets[key].payment_rate_turbo && 1 == n.data.assets[key].active && 1 == n.data.assets[key].enabled_for_demo && t > n.data.assets[key].schedule[e][0][0] && t < n.data.assets[key].schedule[e][0][1] && (procent = n.data.assets[key].payment_rate_turbo, asset = n.data.assets[key].ric, paraid = key)
}
function p() {
var e = new XMLHttpRequest;
e.open("GET", "https://binomo.com/api/assets?device=web&locale=ru", !1),
e.send(),
200 != e.status && alert(e.status + ": " + e.statusText),
pairs = JSON.parse(e.responseText), procent = pairs.data.assets[paraid].payment_rate_turbo, asset = pairs.data.assets[paraid].ric
}
function f(e) {
ref = 1,
summ = minamount,
ws.close(),
swal({
title: y.stop,
text: e,
type: "error",
confirmButtonText: "OK",
html: !0
})
}
if (-1 !== document.documentElement.innerHTML.indexOf("data-config") && (info = JSON.parse(document.documentElement.innerHTML.split('data-config="')[1].split('"')[0].replace(/\"/gi, '"'))), 1 !== ref)
swal({
title: y.alstart,
text: y.alstart2,
type: "warning",
confirmButtonText: "OK",
confirmButtonColor: "#2cac40"
})
else {
type = !0 === c ? "demo" : "real",
auto = !0 === s,
!0 === o && (strategy = 1),
!0 === r && (strategy = 2),
paraid = n,
time = a,
maxdohod = 100 * Number(m),
minper = Number(i),
maxstavka = 100 * Number(t),
minamount = 100 * Number(e),
summ = minamount,
amount = minamount;
var b = new XMLHttpRequest;
b.open("GET", "https://binomo.com/api/profile?device=web&locale=ru", !0),
b.send(),
b.onreadystatechange = function() {
4 == b.readyState && (200 != b.status || (balance = "demo" == type ? JSON.parse(b.responseText).data.demo_balance : JSON.parse(b.responseText).data.balance, (ws = new WebSocket("wss://ws.binomo.com/?authtoken=" + info.auth_key + "&device=web&device_id=" + info.deviceId + "&v=2&vsn=2.0.0")).onopen = function() {
ws.send('{"topic":"base","event":"phx_join","payload":{},"ref":"' + ref + '","join_ref":"1"}'), 1 == ref && swal({
title: y.start,
text: y.start2,
type: "success",
confirmButtonText: "OK",
confirmButtonColor: "#2cac40"
}), ref += 1,
ws.send('{"topic":"base","event":"ping","payload":{},"ref":"' + ref + '","join_ref":"1"}'),
timerId = setInterval(function() {
ref += 1,
ws.send('{"topic":"base","event":"ping","payload":{},"ref":"' + ref + '","join_ref":"1"}'),
ref += 1,
ws.send('{"topic":"phoenix","event":"heartbeat","payload":{},"ref":"' + ref + '"}')
}, 6e4)
}, ws.onclose = function(e) {
e.wasClean ? ref = 1 : swal({
title: "Oops...",
text: "Internet connection is missing.",
type: "error",
confirmButtonText: "OK",
confirmButtonColor: "#2cac40"
})
}, ws.onmessage = function(e) {
void 0 !== (mes = JSON.parse(e.data)).payload.response && void 0 !== mes.payload.response.now && (date_server = new Date(mes.payload.response.now), timecheck = date_server.getTime() - (new Date).getTime(), 2 == mes.ref && d()), "change_balance" == mes.event && (balance = "demo" == type ? mes.payload.demo_balance : mes.payload.balance, (new Date).getTime() + timecheck >= 1e3 * timeend && (clearTimeout(timerIdStavka), timerIdStavka = setTimeout(function() {
d()
}, 5e3))), "error" === mes.payload.status && f("Error: " + mes.payload.response.reasons[0].validation)
}, ws.onerror = function(e) {}))
}
}
if ("ru" == lang.valueOf()) y = {
stop: "Робот остановлен!",
start: "Робот запущен!",
start2: "Вы можете открыть другую вкладку, но не закрывайте платформу.",
alstart: "Робот уже запущен!",
alstart2: "Остановите робота, нажав кнопку Стоп и повторите запуск.",
maxdohod: "Робот достиг максимальной суммы. Активируйте робота, чтобы снять это ограничение.",
minper: "Процент выигрыша упал ниже установленного фильтра."
};
else var y = {
stop: "Robot is stopped!",
start: "Robot is running!",
start2: "You can open another tab, but do not close the platform.",
alstart: "The robot is already running!",
alstart2: "Click the stop button and you can start it again.",
maxdohod: "The robot reached the maximum balance. Activate the robot to remove this restriction.",
minper: "The percentage of winnings fell below the allowable. Change the settings or wait for the percentage to increase."
}
}
var //здесь переменные
Запускаю его кнопкой СТАРТ отсюда (другой js, отвечающий за вывод контента в html):
//код до...
html += '<div class="boxs"><div style="text-align: left;"><a id="start" class="knopka"><i class="fa fa-play" aria-hidden="true"></i> ' + lng.start + '</a> <a id="stop" class="knopka"><i class="fa fa-stop" aria-hidden="true"></i> ' + lng.stop + '</a></div></div>
//код после...
Так же к проекту подключен скрипт sweetalert, который показывает alerta в красивом всплывающем виде.
Так вот при первом запуске, скрипт запускается и отлично работает, а так же выскакивает sweetalert с уведомлением: Скрипт запущен. Вообщем все ок.
Но вот при нажатии кнопки СТОП ( строка 79 ), в консоли вылетает ошибка:
Uncaught ReferenceError: end is not defined
at <anonymous>:1:1
А так же, при повторном нажатии кнопки СТАРТ после запуска (строка 92), должно появиться sweetalert с сообщением, что скрипт уже запущен и для повторного запуска, сначала его нужно остановить. Но вместо этого в консоли так же:
Uncaught TypeError: Cannot read property 'alstart' of undefined
at start_new_bot (ot.js:94)
at <anonymous>:1:1
start_new_bot @ ot.js:94
(anonymous) @ VM541:1
Помогите пожалуйста разобраться!