fix bot
This commit is contained in:
parent
d28322520d
commit
d344c5f1e8
153
index.js
153
index.js
@ -52,17 +52,9 @@ function coverLastResult(resultArg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var lastResult = null; // 0: Xanh 1: Đỏ
|
var lastResult = null; // 0: Xanh 1: Đỏ
|
||||||
var idSession = null; // ID phiên hiện tại
|
var idLastSession = null; // ID phiên cuối cùng tương ứng kết quả ở trên
|
||||||
|
var d = null;
|
||||||
|
|
||||||
/**
|
|
||||||
{
|
|
||||||
money: 0,
|
|
||||||
trend: "", // Up | Down
|
|
||||||
sessionID: 0, // Phiên giao dịch
|
|
||||||
time: "", // Thời gian vào lệnh
|
|
||||||
ind: -1, // Số lần vào lệnh. Sẽ vào lệnh theo CONFIG -> nếu vượt quá số lần vào lệnh sẽ dừng lại.
|
|
||||||
}[]
|
|
||||||
*/
|
|
||||||
var historyEnterOrder = []; // Lịch sử vào lệnh
|
var historyEnterOrder = []; // Lịch sử vào lệnh
|
||||||
var lastEnterTheOrder = {
|
var lastEnterTheOrder = {
|
||||||
enable: false,
|
enable: false,
|
||||||
@ -71,9 +63,9 @@ var lastEnterTheOrder = {
|
|||||||
sessionID: 0, // Phiên giao dịch
|
sessionID: 0, // Phiên giao dịch
|
||||||
isWin: false,
|
isWin: false,
|
||||||
time: "", // Thời gian vào lệnh
|
time: "", // Thời gian vào lệnh
|
||||||
|
isGoOrder: false,
|
||||||
ind: 0, // Số lần vào lệnh. Sẽ vào lệnh theo CONFIG -> nếu vượt quá số lần vào lệnh sẽ dừng lại.
|
ind: 0, // Số lần vào lệnh. Sẽ vào lệnh theo CONFIG -> nếu vượt quá số lần vào lệnh sẽ dừng lại.
|
||||||
isEnterTheOrder: false, // Nếu vào lệnh thành công cái này sẽ là true
|
};
|
||||||
}; // Nhật kí vào lệnh hiện tại
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tất cả config ở đây
|
* Tất cả config ở đây
|
||||||
@ -124,7 +116,7 @@ function roleEnterOrder(sessionID, lastResult) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
lastEnterTheOrder.enable = true;
|
lastEnterTheOrder.enable = true;
|
||||||
lastEnterTheOrder.sessionID = idSession + 1;
|
lastEnterTheOrder.sessionID = idLastSession + 1;
|
||||||
|
|
||||||
if (isNotBreakdowUp) {
|
if (isNotBreakdowUp) {
|
||||||
lastEnterTheOrder.trend = "sell";
|
lastEnterTheOrder.trend = "sell";
|
||||||
@ -148,11 +140,7 @@ function roleEnterOrder(sessionID, lastResult) {
|
|||||||
|
|
||||||
// check xem có phiên nào đang vào lệnh không
|
// check xem có phiên nào đang vào lệnh không
|
||||||
function checkSessionEnterOrder(sessionIDEnd, lastResultSessionEnd) {
|
function checkSessionEnterOrder(sessionIDEnd, lastResultSessionEnd) {
|
||||||
if (
|
if (sessionIDEnd === lastEnterTheOrder.sessionID + 1 && lastEnterTheOrder.isGoOrder && CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]) {
|
||||||
lastEnterTheOrder.enable &&
|
|
||||||
sessionIDEnd === lastEnterTheOrder.sessionID &&
|
|
||||||
lastEnterTheOrder.isEnterTheOrder
|
|
||||||
) {
|
|
||||||
// Nếu đang bật auto vào lệnh thì mới kiểm tra
|
// Nếu đang bật auto vào lệnh thì mới kiểm tra
|
||||||
const coverResult = (() => {
|
const coverResult = (() => {
|
||||||
switch (lastResultSessionEnd) {
|
switch (lastResultSessionEnd) {
|
||||||
@ -171,9 +159,11 @@ function checkSessionEnterOrder(sessionIDEnd, lastResultSessionEnd) {
|
|||||||
TELEGRAM_CHANNEL,
|
TELEGRAM_CHANNEL,
|
||||||
`Bạn vừa thắng lệnh phiên ${lastEnterTheOrder.sessionID} với lệnh ${lastEnterTheOrder.trend}.
|
`Bạn vừa thắng lệnh phiên ${lastEnterTheOrder.sessionID} với lệnh ${lastEnterTheOrder.trend}.
|
||||||
⏰: ${lastEnterTheOrder.time}
|
⏰: ${lastEnterTheOrder.time}
|
||||||
💰: ${CONFIG.moneyEnterOrder[lastEnterTheOrder.ind] * 0.95}$`,
|
💰 Lãi: ${CONFIG.moneyEnterOrder[lastEnterTheOrder.ind] * 0.95}$
|
||||||
|
💰 Tổng: ${d.demoBalance + CONFIG.moneyEnterOrder[lastEnterTheOrder.ind] * 0.95}`,
|
||||||
{ parse_mode: "HTML" }
|
{ parse_mode: "HTML" }
|
||||||
);
|
);
|
||||||
|
d.demoBalance += CONFIG.moneyEnterOrder[lastEnterTheOrder.ind] * 0.95;
|
||||||
// Update history
|
// Update history
|
||||||
const indHistoryOrder = historyEnterOrder.findIndex((e) => e.sessionID === lastEnterTheOrder.sessionID);
|
const indHistoryOrder = historyEnterOrder.findIndex((e) => e.sessionID === lastEnterTheOrder.sessionID);
|
||||||
if (indHistoryOrder > -1) {
|
if (indHistoryOrder > -1) {
|
||||||
@ -187,6 +177,7 @@ function checkSessionEnterOrder(sessionIDEnd, lastResultSessionEnd) {
|
|||||||
trend: "", // Up | Down
|
trend: "", // Up | Down
|
||||||
sessionID: 0, // Phiên giao dịch
|
sessionID: 0, // Phiên giao dịch
|
||||||
time: "", // Thời gian vào lệnh
|
time: "", // Thời gian vào lệnh
|
||||||
|
isGoOrder: false,
|
||||||
ind: 0, // Số lần vào lệnh. Sẽ vào lệnh theo CONFIG -> nếu vượt quá số lần vào lệnh sẽ dừng lại.
|
ind: 0, // Số lần vào lệnh. Sẽ vào lệnh theo CONFIG -> nếu vượt quá số lần vào lệnh sẽ dừng lại.
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
@ -194,13 +185,15 @@ function checkSessionEnterOrder(sessionIDEnd, lastResultSessionEnd) {
|
|||||||
TELEGRAM_CHANNEL,
|
TELEGRAM_CHANNEL,
|
||||||
`Bạn vừa thua lệnh phiên ${lastEnterTheOrder.sessionID} với lệnh ${lastEnterTheOrder.trend}.
|
`Bạn vừa thua lệnh phiên ${lastEnterTheOrder.sessionID} với lệnh ${lastEnterTheOrder.trend}.
|
||||||
⏰: ${lastEnterTheOrder.time}
|
⏰: ${lastEnterTheOrder.time}
|
||||||
💰: ${CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]}$
|
💰 Thua: ${CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]}$
|
||||||
Bạn sẽ vào lệnh ở phiên tiếp theo!`,
|
💰 Tổng: ${d.demoBalance - CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]}$
|
||||||
|
Bạn sẽ vào lệnh ở phiên tiếp theo(${lastEnterTheOrder.sessionID + 1})!`,
|
||||||
{ parse_mode: "HTML" }
|
{ parse_mode: "HTML" }
|
||||||
);
|
);
|
||||||
|
d.demoBalance -= CONFIG.moneyEnterOrder[lastEnterTheOrder.ind];
|
||||||
// Thua ở đâu gấp đôi ở đó
|
// Thua ở đâu gấp đôi ở đó
|
||||||
lastEnterTheOrder.ind += 1;
|
lastEnterTheOrder.ind += 1;
|
||||||
lastEnterTheOrder.sessionID = lastEnterTheOrder.sessionID + 1;
|
lastEnterTheOrder.sessionID += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -256,7 +249,7 @@ ${coverLastResult(CONFIG.historys[3])} ${coverLastResult(
|
|||||||
}
|
}
|
||||||
|
|
||||||
puppeteer
|
puppeteer
|
||||||
.launch({ headless: true, args: ["--no-sandbox"] })
|
.launch({ headless: false, args: ["--no-sandbox"] })
|
||||||
.then(async (browser) => {
|
.then(async (browser) => {
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
await page.setViewport({ width: 1366, height: 768 });
|
await page.setViewport({ width: 1366, height: 768 });
|
||||||
@ -286,18 +279,39 @@ puppeteer
|
|||||||
let id = 1;
|
let id = 1;
|
||||||
count = 0;
|
count = 0;
|
||||||
let countStaticData = 0;
|
let countStaticData = 0;
|
||||||
|
let t;
|
||||||
|
|
||||||
const printResponse = async function (cdp, response) {
|
const printResponse = async function (cdp, response) {
|
||||||
if (!response.response) {
|
if (!response.response) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let data = response.response.payloadData;
|
let data = response.response.payloadData;
|
||||||
|
if (data.includes("BO_CHART_INDICATORS")) {
|
||||||
if (data.includes("BO_PRICE")) {
|
const moneyOrder = CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]; // Tiền vào lệnh
|
||||||
const currentSessionID = JSON.parse(data.substr(2, data.length))[1].session;
|
if (
|
||||||
idSession = currentSessionID;
|
lastEnterTheOrder.enable &&
|
||||||
|
idLastSession + 1 === lastEnterTheOrder.sessionID &&
|
||||||
|
moneyOrder
|
||||||
|
) {
|
||||||
|
// Tự động vào lệnh theo chỉ thị
|
||||||
|
const enterOrdered = await enterOrderFn(
|
||||||
|
lastEnterTheOrder.trend,
|
||||||
|
moneyOrder,
|
||||||
|
TELEGRAM_CHANNEL
|
||||||
|
);
|
||||||
|
if (enterOrdered) {
|
||||||
|
// Nếu vào lệnh thành công
|
||||||
|
lastEnterTheOrder.money = moneyOrder;
|
||||||
|
lastEnterTheOrder.trend = lastEnterTheOrder.trend;
|
||||||
|
lastEnterTheOrder.sessionID = idLastSession + 1;
|
||||||
|
lastEnterTheOrder.time = new Date().toLocaleString();
|
||||||
|
lastEnterTheOrder.isWin = false;
|
||||||
|
lastEnterTheOrder.enable = false;
|
||||||
|
lastEnterTheOrder.isGoOrder = true;
|
||||||
|
historyEnterOrder.push(lastEnterTheOrder);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
data.includes("SOCKET_BO_LAST_RESULT") &&
|
data.includes("SOCKET_BO_LAST_RESULT") &&
|
||||||
data.includes("finalSide")
|
data.includes("finalSide")
|
||||||
@ -319,6 +333,7 @@ puppeteer
|
|||||||
} else if (finalSide === "NORMAL") {
|
} else if (finalSide === "NORMAL") {
|
||||||
lastResult = 2;
|
lastResult = 2;
|
||||||
}
|
}
|
||||||
|
idLastSession = dataParse.session;
|
||||||
// Xử lý các trường hợp
|
// Xử lý các trường hợp
|
||||||
roleEnterOrder(dataParse.session, lastResult);
|
roleEnterOrder(dataParse.session, lastResult);
|
||||||
checkSessionEnterOrder(dataParse.session, lastResult);
|
checkSessionEnterOrder(dataParse.session, lastResult);
|
||||||
@ -326,37 +341,6 @@ puppeteer
|
|||||||
}
|
}
|
||||||
if (data === "3") {
|
if (data === "3") {
|
||||||
countStaticData++;
|
countStaticData++;
|
||||||
const moneyOrder = CONFIG.moneyEnterOrder[lastEnterTheOrder.ind]; // Tiền vào lệnh
|
|
||||||
|
|
||||||
if (
|
|
||||||
lastEnterTheOrder.enable &&
|
|
||||||
idSession === lastEnterTheOrder.sessionID &&
|
|
||||||
moneyOrder
|
|
||||||
) {
|
|
||||||
// Tự động vào lệnh theo chỉ thị
|
|
||||||
const enterOrdered = enterOrderFn(
|
|
||||||
lastEnterTheOrder.trend,
|
|
||||||
moneyOrder,
|
|
||||||
TELEGRAM_CHANNEL
|
|
||||||
);
|
|
||||||
if (enterOrdered) {
|
|
||||||
// Nếu vào lệnh thành công
|
|
||||||
lastEnterTheOrder.money = moneyOrder;
|
|
||||||
lastEnterTheOrder.trend = lastEnterTheOrder.trend;
|
|
||||||
lastEnterTheOrder.sessionID = idSession;
|
|
||||||
lastEnterTheOrder.time = new Date().toLocaleString();
|
|
||||||
lastEnterTheOrder.isWin = false;
|
|
||||||
lastEnterTheOrder.isEnterTheOrder = true;
|
|
||||||
const indHistory = historyEnterOrder.findIndex((e) => e.sessionID === idSession);
|
|
||||||
if (indHistory > -1) {
|
|
||||||
historyEnterOrder.splice(indHistory, 1, lastEnterTheOrder);
|
|
||||||
} else {
|
|
||||||
historyEnterOrder.push(lastEnterTheOrder);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
lastEnterTheOrder.isEnterTheOrder = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
countStaticData = 0;
|
countStaticData = 0;
|
||||||
}
|
}
|
||||||
@ -369,11 +353,29 @@ puppeteer
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
cdp.on("Network.webSocketFrameReceived", printResponse.bind(this, cdp));
|
cdp.on("Network.webSocketFrameReceived", printResponse.bind(this, cdp));
|
||||||
cdp.on("Network.webSocketCreated", async (response) => {
|
cdp.on("Network.webSocketCreated", () => {
|
||||||
console.log("Vào webSocketCreated");
|
console.log("Vào webSocketCreated");
|
||||||
console.log(response);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
page.on('response', async (response) => {
|
||||||
|
const request = response.request();
|
||||||
|
if (request.url().includes('binaryoption/spot-balance')){
|
||||||
|
const res = await response.json();
|
||||||
|
if (res.ok) {
|
||||||
|
d = res.d;
|
||||||
|
TeleGlobal.sendMessage(
|
||||||
|
TELEGRAM_CHANNEL,
|
||||||
|
`
|
||||||
|
💰 TK Demo: ${d.demoBalance}
|
||||||
|
💰 TK USDT: ${d.usdtAvailableBalance}
|
||||||
|
💰 TK ALI: ${d.aliAvailableBalance}
|
||||||
|
`,
|
||||||
|
{ parse_mode: "HTML" }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
function isEnterOrderFn() {
|
function isEnterOrderFn() {
|
||||||
return page.evaluate(() => {
|
return page.evaluate(() => {
|
||||||
const btnCheck = document.querySelector(
|
const btnCheck = document.querySelector(
|
||||||
@ -419,7 +421,7 @@ puppeteer
|
|||||||
if (isEnterOrderSuccess) {
|
if (isEnterOrderSuccess) {
|
||||||
TeleGlobal.sendMessage(
|
TeleGlobal.sendMessage(
|
||||||
myTelegramID,
|
myTelegramID,
|
||||||
`👌 Đặt lệnh ${type} | ${countMoney}$ | ${idSession} thành công!`,
|
`👌 Đặt lệnh ${type} | ${countMoney}$ | ${idLastSession + 1} thành công!`,
|
||||||
{ parse_mode: "HTML" }
|
{ parse_mode: "HTML" }
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@ -431,14 +433,7 @@ puppeteer
|
|||||||
}
|
}
|
||||||
|
|
||||||
await page.reload({ waitUntil: ["networkidle0"] });
|
await page.reload({ waitUntil: ["networkidle0"] });
|
||||||
} else {
|
|
||||||
TeleGlobal.sendMessage(
|
|
||||||
myTelegramID,
|
|
||||||
`✋ Đang trong phiên chờ kết quả!`,
|
|
||||||
{ parse_mode: "HTML" }
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return isEnterOrder;
|
return isEnterOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -504,28 +499,24 @@ SELL: /sell:[number]`,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (text === "test") {
|
if (text.toLowerCase() === "test") {
|
||||||
lastEnterTheOrder.enable = true;
|
lastEnterTheOrder.enable = true;
|
||||||
lastEnterTheOrder.sessionID = idSession + 1;
|
lastEnterTheOrder.sessionID = idLastSession + 1;
|
||||||
lastEnterTheOrder.trend = "sell";
|
lastEnterTheOrder.trend = "sell";
|
||||||
|
|
||||||
TeleGlobal.sendMessage(
|
TeleGlobal.sendMessage(
|
||||||
myTelegramID,
|
myTelegramID,
|
||||||
`Bật chế độ test. Bạn sẽ vào lệnh mua ở phiên sau`,
|
`Bật chế độ test. Bạn sẽ vào lệnh mua ở phiên sau!`,
|
||||||
{
|
{ parse_mode: "HTML" }
|
||||||
parse_mode: "HTML",
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (text === "test1") {
|
if (text.toLowerCase() === "kq") {
|
||||||
TeleGlobal.sendMessage(
|
TeleGlobal.sendMessage(
|
||||||
myTelegramID,
|
myTelegramID,
|
||||||
JSON.stringify({ historyEnterOrder, lastEnterTheOrder, idSession }, null, 2),
|
JSON.stringify({ lastEnterTheOrder, idLastSession }, null, 2),
|
||||||
{
|
{ parse_mode: "HTML" }
|
||||||
parse_mode: "HTML",
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -543,4 +534,4 @@ SELL: /sell:[number]`,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
Loading…
x
Reference in New Issue
Block a user