Итак, я делаю бота для разногласий и хочу, чтобы он отображал некоторую статистику. Итак, я получил контент с веб-сайта, с которого я хочу его получить, и я использовал следующий код:
const Discord = require('discord.js');
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
const {prefix,token} = require('./config.json');
const client = new Discord.Client()
function httpGet(theUrl)
{
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
xmlHttp.send( null );
return xmlHttp.responseText;
}
client.on('ready',() => {
console.info('Bot ready!');
})
client.on('message',message => {
if (message.content.startsWith(`${prefix}http`)) {
let result = httpGet('https://games.roblox.com/v1/games/2012508359/favorites/count')
message.channel.send(result)
message.reply(`Still a WIP! ${message.member.user.tag}`);
}
})
client.login(token);
Он работает, но отображается так:
{"favoritesCount":31219}
Как мне сделать так, чтобы отображалось только число (31219), а не {"favoritesCount":31219}
Спасибо!
Вместо передачи result
вам нужно вернуть ключ favoritesCount
из результата в обработчик сообщения.
Вы можете сделать это, изменив вас в обработчике сообщений следующим образом:
client.on('message',message => {
if (message.content.startsWith(`${prefix}http`)) {
let result = httpGet('https://games.roblox.com/v1/games/2012508359/favorites/count');
const favoritesCount = JSON.parse(result).favoritesCount;
message.channel.send(favoritesCount);
message.reply(`Still a WIP! ${message.member.user.tag}`);
}
})
убедитесь, что вы также обрабатываете ответ об ошибке перед разбором