diff --git a/tgBot.js b/tgBot.js deleted file mode 100644 index 0044be4..0000000 --- a/tgBot.js +++ /dev/null @@ -1,106 +0,0 @@ -const fetch = require("node-fetch"); -var mysql = require('mysql'); -const TelegramBot = require('node-telegram-bot-api'); - -const tgInfo = require('./telegram-credentials'); -if (!tgInfo.token) { - console.error("ERR: credentials not set.") - return; -} -var connection = mysql.createPool({ - host: 'localhost', - user: 'simcompanies', - password: '', - database: 'simcompanies' -}); - -function twoDigits(d) { - if (0 <= d && d < 10) return "0" + d.toString(); - if (-10 < d && d < 0) return "-0" + (-1 * d).toString(); - return d.toString(); -} -Date.prototype.toMysqlFormat = function () { - return this.getFullYear() + "-" + twoDigits(1 + this.getMonth()) + "-" + twoDigits(this.getDate()) + " " + twoDigits(this.getHours()) + ":" + twoDigits(this.getMinutes()) + ":" + twoDigits(this.getSeconds()); -}; - -const init = async () => { - const resourceAPI = "https://www.simcompanies.com/api/v3/en/encyclopedia/resources/"; - var resourceList = await fetch(resourceAPI); - resourceList = await resourceList.json(); - - const tgBot = new TelegramBot(tgInfo.token, { polling: true }); - - tgBot.onText(/\/resource (.+)/, (msg, match) => { - const chatId = msg.chat.id; - var resource = match[1]; - resource = resourceList.find(function (elem) { - return elem["name"].toUpperCase() === resource.toUpperCase(); - }); - if (!resource) - return tgBot.sendMessage(chatId, `DASH - Simcompany bot made by OTB\nThe resource you are looking for could not be found. Please make sure, you spelled the name correctly. eg. "Mining Research."`); - - tgBot.sendMessage(chatId, `DASH - Simcompany bot made by OTB\nI see you are looking for some information about ${resource["name"]}.\nPlease tell me which quality you are looking for:`, { - reply_markup: { - inline_keyboard: [[ - { - text: 'q0', - callback_data: resource["db_letter"] + '|0|' + resource["name"] - }, - { - text: 'q1', - callback_data: resource["db_letter"] + '|1|' + resource["name"] - }], [ - { - text: 'q2', - callback_data: resource["db_letter"] + '|2|' + resource["name"] - }, - { - text: 'q3', - callback_data: resource["db_letter"] + '|3|' + resource["name"] - }], [ - { - text: 'q4', - callback_data: resource["db_letter"] + '|4|' + resource["name"] - }, - { - text: 'q5', - callback_data: resource["db_letter"] + '|5|' + resource["name"] - }], [ - { - text: 'q6', - callback_data: resource["db_letter"] + '|6|' + resource["name"] - }, - { - text: 'q7', - callback_data: resource["db_letter"] + '|7|' + resource["name"] - }, - ]] - } - }); - }); - - - tgBot.on("callback_query", (data) => { - const msgData = data.data.split("|"); - var dayend = new Date().toMysqlFormat(); - var daybegin = new Date(); - daybegin.setDate(daybegin.getDate() - 1); - daybegin = daybegin.toISOString().slice(0, 19).replace('T', ' '); - - const querystring = `SELECT AVG(price) as avg, MIN(price) as min, MAX(price) as max FROM marketv2 WHERE kind = ${mysql.escape(msgData[0])} AND time > "${daybegin}" AND time < "${dayend}" AND quality = ${mysql.escape(msgData[1])} GROUP BY quality`; - - connection.query(querystring, function (error, results, fields) { - if (error) { - console.error(error); - return tgBot.sendMessage(data.message.chat.id, "ERR: sorry, I had trouble querying the database.") - } - if (!results[0]) { - return tgBot.sendMessage(data.message.chat.id, "WRN: sorry, I didn't find any data matching your request.") - } - tgBot.sendMessage(data.message.chat.id, `DASH - Simcompany bot made by OTB\nInformation displayed for ${msgData[2]} q${msgData[1]}\nHighest price (24h): ${results[0]["max"]}\nAverage price (24h): ${results[0]["avg"]}\nLowest price (24h): ${results[0]["min"]}\n`) - }); - }); - -} - -init();