This repository has been archived on 2024-05-14. You can view files and clone it, but cannot push or open issues or pull requests.
exchange-bot/index.js
2022-04-07 05:02:10 +03:00

46 lines
1.3 KiB
JavaScript

const DisplayWorker = require("./displayWorker.js")
const HilSu = require("hilsu-api");
const Telegraf = require("telegraf");
const namesMap = {
gems: "Самоцветы",
money: "Самородки",
balance: "Червонцы"
}
let exchangeClient = new HilSu.ExchangeClient(process.env.HILTOKEN, {inf_reconnect:true});
let bot = new Telegraf(process.env.BOTTOKEN);
exchangeClient.on("ratesUpdate", (rates, oldRates) => {
if (oldRates === undefined)
return;
handleChange(rates, oldRates)
});
function handleChange(rates, oldRates) {
let message = new DisplayWorker("Обновление курса")
for (let rate of rates.rates) {
let old = oldRates.rates.find(r => r.to === rate.to && r.from === rate.from);
message.addFollowing(
namesMap[rate.from],
namesMap[rate.to],
rate.value,
old.value
)
}
message.setFooter(
`Пул валют:\n Червонцы: ${rates.maxExchange.balance.toFixed(3)}\n Салоцветы: ${rates.maxExchange.gems.toFixed(3)}\n Самородки: ${rates.maxExchange.money.toFixed(3)}`
)
if(message.isSomethingChanged()) {
bot.telegram.sendMessage("-765759105", message.build());
}
}
bot.startPolling();
exchangeClient.connect();