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-03-26 19:57:06 +00:00

32 lines
1.5 KiB
JavaScript

const HilSu = require("hilsu-api");
const Telegraf = require("telegraf");
const namesMap = {gems:"Салоцветы",money:"Самородки",balance:"Червонцы"}
let exchangeClient = new HilSu.ExchangeClient(process.env.HILTOKEN);
let bot = new Telegraf(process.env.BOTTOKEN);
/**
* rates - Новое значение курса
* oldRates - Предыдущее значение курса
*/
exchangeClient.on("ratesUpdate", (rates,oldRates) => {
if(oldRates===rates) return; //пропускаем если ничего не изменилось
if(oldRates===undefined) return; //и пропускаем если это первое получение данных (при старте)
let message = "Обновление курса:\n";
for (let rate of rates.rates) {
//получаем старый курс для этого обмена
let old = oldRates.rates.find(r => r.to===rate.to&&r.from===rate.from);
message+=`${namesMap[rate.from]} -> ${namesMap[rate.to]}: ${rate.value.toFixed(3)} (${getPercentageChange(old.value, rate.value).toFixed(2)}%)\n`;
}
message+=`\nПул валют:\nЧервонцы: ${rates.maxExchange.balance.toFixed(3)}\nСалоцветы: ${rates.maxExchange.gems.toFixed(3)}\nСамородки: ${rates.maxExchange.money.toFixed(3)}`;
bot.telegram.sendMessage("-765759105",message);
});
function getPercentageChange(oldNumber, newNumber){
return ((oldNumber - newNumber) / oldNumber) * 100;
}
bot.startPolling();
exchangeClient.connect();