const fetch = require("node-fetch"); var mysql = require('mysql'); const TelegramBot = require('node-telegram-bot-api'); const simCo = require('./simco-credentials'); const tgInfo = require('./telegram-credentials'); if (!simCo.cookie || !tgInfo.token || !tgInfo.infoChat || !tgInfo.debugChat) { console.error("ERR: credentials not set.") return; } const tgBot = new TelegramBot(tgInfo.token, { polling: false }); const lowbonds = "https://www.simcompanies.com/api/bonds/rating/BB+-to-D"; const highbonds = "https://www.simcompanies.com/api/bonds/rating/AAA-to-BBB-"; var knownBonds = []; const bondFetchProcess = async (url) => { try { var BondData = await fetch(url, { headers: { Cookie: simCo.cookie } }); var t1 = await BondData.json(); } catch (e) { await tgBot.sendMessage(tgInfo.debugChat, `ERROR: fetching bonds:\n${e}`); throw e; } for (let data in t1) { if (t1[data].interest > 0.7 && !knownBonds.includes(t1[data].id)) { knownBonds.push(t1[data].id); tgBot.sendMessage(tgInfo.infoChat, `Found ${t1[data].seller.rating} bond x${t1[data].amount} with ${t1[data].interest}% interest, issued by ${t1[data].seller.company}`); } } } const fetchBondData = async () => { await bondFetchProcess(lowbonds); await bondFetchProcess(highbonds); setTimeout(fetchBondData, 450000); } fetchBondData();