Есть такой телеграмм бот, который парсит сайт, забирает текстовую инфу и высылает при нажатой кнопке. И он работает, но проблема в том, что в переменную Joke данные записываются один раз и нажатие кнопки выводит только эту инфу. Я не могу сообразить как сделать так, чтобы при нажатии кнопки на клавиатуре бота, значение переменной перезаписывалось.
Я пробовал использовать функцию, но при отображении в консоли переменная выдает лишь function.
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
};
var needle = require('needle');
var cheerio = require('cheerio');
var RandPage = getRandomInt(10, 100);
var URL = 'http://www.site.ru/' + RandPage + '.' + 'html';
needle.get(URL, function(error, response, body) {
const TelegramBot = require('node-telegram-bot-api');
const token = '';
const bot = new TelegramBot(token, {polling: true});
var rand = getRandomInt(0, 21);
var $ = cheerio.load(body);
var Joke = ($('div').find('p').eq(rand).text());
bot.on('message', (msg) => {
var robot = "Joke";
if (msg.text.indexOf(robot) === 0) {
bot.sendMessage(msg.chat.id, Joke);
}
});
bot.onText(/\/start/, (msg) => {
bot.sendMessage(msg.chat.id, "Welcome", {
"reply_markup": {
"keyboard": [["Hi"], ["Joke"]]
}
});
});
});
Сборка персонального компьютера от Artline: умный выбор для современных пользователей