Я уже довольно давно работал над этой командой API graphql для моего бота Discord, и, наконец, он собирает необходимую мне информацию с сайта. Я не могу понять, как уточнить поиск до отдельного запроса / аргумента, а не отображать всю информацию из API.
Код:
const Discord = require('discord.js');
const fetch = require('node-fetch');
const querystring = require('querystring');
const util = require('util')
module.exports = {
name: 'dose',
definition: 'find info on drugs',
},
module.exports.execute = async(message, args) => {
const query = querystring.stringify({
term: args.join(' ')
});
let bruh;
fetch('https://api.psychonautwiki.org', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
//query: "{ substances { name effects dose { name } }}}"
//query: "{substances(offset:0, limit:10) {name effects {name}}}"
query: "query substances ($effect: String, $query: String, $chemicalClass: String, $psychoactiveClass: String, $limit: Int, $offset: Int) {\n substances (effect: $effect, query: $query, chemicalClass: $chemicalClass, psychoactiveClass: $psychoactiveClass, limit: $limit, offset: $offset) {\n name\n url\n featured\n summary\n addictionPotential\n toxicity\n crossTolerances\n }\n}",
variables: {
"effect": "",
"query": "",
"chemicalClass": "",
"psychoactiveClass": "",
"limit": 4,
"offset": 0
},
other: '{"query":"query effects_by_substance ($substance: String, $limit: Int, $offset: Int) {\n effects_by_substance (substance: $substance, limit: $limit, offset: $offset) {\n name\n url\n limit\n offset\n }\n}","variables":{"substance":"","limit":0,"offset":0}}'
})
}).then(res => res.json()).then(json => {
console.log(JSON.stringify(json.data, null, 4));
message.channel.send("```" + JSON.stringify(json.data, null, 4) + "```");
let info = json.data + json.extensions;
});
}