Files
dataminer/bondfetch.js

45 lines
1.4 KiB
JavaScript

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();