46 lines
1.3 KiB
JavaScript
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(); |