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(), Telegraf.Extra.markup(m => m.inlineKeyboard([Telegraf.Markup.urlButton("Биржа","https://hil.su/exchange")]))); } } bot.startPolling(); exchangeClient.connect();