如何使用 javascript/discord.js 从网页中获取一段文本并将其分配给变量?
How to get a piece of text from a webpage and assign it to a variable using javascript/discord.js?
我正在尝试为 discord bot 编写一段代码,它会在键入 /gif {text} 时显示来自名为 giphy 的网站的最高结果。为此,我已经完成了转到相应 link(搜索结果)的部分。现在我想从第一个结果(单击它时打开的结果)中提取 a-href (link) 并将其分配给一个变量,我可以根据要求显示该变量。另外,我不想发送 URL 而是使用 .send
的 {files: []} part
的附件
我不知道从哪里开始使用 discord.js 从其他网页中提取
我也想过添加一个 view-source:
但我不知道如何提取一段文本并分配给一个变量
HTML(JavaSript DOM?)中有一种方法,但它使用 i-frames。
else if (message.content.search("/gif") == 0) {
let msg = message.content;
let gif1 = msg.split("/gif")[1].trim()
let gif2 = gif1.replace(" ", "-");
let gif = "https://giphy.com/search/" + gif2;
message.channel.send("Most relevant result for" + " " + gif1, {files: [gif]} )
}
显然,上面的代码在不和谐频道中显示了一个文本文件。我希望它显示第一个结果的 gif,而不显示 link.
我建议使用 giphy-api
:
有了它你可以做:
var giphyApi = require("giphy-api")();
giphyApi.search({
q: 'pokemon',
rating: 'g'
}, function (err, res) {
console.log(res.data[0].images.original.url)
});
它会 console.log: https://media3.giphy.com/media/iBANmdIlMNJVC/giphy-preview.gif?cid=e1bb72ff5ca0b1d72f66564d45c6925c
这意味着你可以做到:
var giphyApi = require("giphy-api")();
giphyApi.search({
q: 'pokemon',
rating: 'g'
}, function (err, res) {
message.channel.send('Gif:', new Discord.Attachment(res.data[0].images.original.url , 'gif.gif'))
});
client.on('message', async message => {
if(message.content.includes("!gif")){
const args = message.content.slice().trim().split(/ +/g);
const command = args.shift().toLowerCase();
let converts = args.join(" ");
if(converts ==""){converts = "random"}
giphyApi.search({
q: converts,
rating: 'g'
}, function (err, res) {
let embed = new Discord.RichEmbed()
.setColor(0x00ae86)
.setTitle(` Result for ${converts}`)
.setImage((res.data[0].images.original.url))
message.channel.send({embed:embed})
});
}
});
我正在尝试为 discord bot 编写一段代码,它会在键入 /gif {text} 时显示来自名为 giphy 的网站的最高结果。为此,我已经完成了转到相应 link(搜索结果)的部分。现在我想从第一个结果(单击它时打开的结果)中提取 a-href (link) 并将其分配给一个变量,我可以根据要求显示该变量。另外,我不想发送 URL 而是使用 .send
{files: []} part
的附件
我不知道从哪里开始使用 discord.js 从其他网页中提取
我也想过添加一个 view-source:
但我不知道如何提取一段文本并分配给一个变量
HTML(JavaSript DOM?)中有一种方法,但它使用 i-frames。
else if (message.content.search("/gif") == 0) {
let msg = message.content;
let gif1 = msg.split("/gif")[1].trim()
let gif2 = gif1.replace(" ", "-");
let gif = "https://giphy.com/search/" + gif2;
message.channel.send("Most relevant result for" + " " + gif1, {files: [gif]} )
}
显然,上面的代码在不和谐频道中显示了一个文本文件。我希望它显示第一个结果的 gif,而不显示 link.
我建议使用 giphy-api
:
有了它你可以做:
var giphyApi = require("giphy-api")();
giphyApi.search({
q: 'pokemon',
rating: 'g'
}, function (err, res) {
console.log(res.data[0].images.original.url)
});
它会 console.log: https://media3.giphy.com/media/iBANmdIlMNJVC/giphy-preview.gif?cid=e1bb72ff5ca0b1d72f66564d45c6925c
这意味着你可以做到:
var giphyApi = require("giphy-api")();
giphyApi.search({
q: 'pokemon',
rating: 'g'
}, function (err, res) {
message.channel.send('Gif:', new Discord.Attachment(res.data[0].images.original.url , 'gif.gif'))
});
client.on('message', async message => {
if(message.content.includes("!gif")){
const args = message.content.slice().trim().split(/ +/g);
const command = args.shift().toLowerCase();
let converts = args.join(" ");
if(converts ==""){converts = "random"}
giphyApi.search({
q: converts,
rating: 'g'
}, function (err, res) {
let embed = new Discord.RichEmbed()
.setColor(0x00ae86)
.setTitle(` Result for ${converts}`)
.setImage((res.data[0].images.original.url))
message.channel.send({embed:embed})
});
}
});