admin管理员组文章数量:1429645
I am currently working on a discord bot, and I want a channel in my server, where people can send link in, but I don't want to get them embeded automatically by the server, I want to pull from that URL link all the informations I need to create myself (the bot will create) the embed, the footer will say e.g. who suggested this link, I want the thumbnail to be matching the url's thumbnail (if it is pointing to a youtube vid e.g.)
The requirement is that I have a string with this URL, can someone send me maybe a library where I can find the stuff, because every url is different in its showing object (webpage, youtube vid, picture).
Also: is there a way to find out if a message is even containing a URL, or is only a URL. I would like to filter my channel, so that only URL can be postet, and other messages will be deleted(I have a delete function)
Thanks in advance!
I am currently working on a discord bot, and I want a channel in my server, where people can send link in, but I don't want to get them embeded automatically by the server, I want to pull from that URL link all the informations I need to create myself (the bot will create) the embed, the footer will say e.g. who suggested this link, I want the thumbnail to be matching the url's thumbnail (if it is pointing to a youtube vid e.g.)
The requirement is that I have a string with this URL, can someone send me maybe a library where I can find the stuff, because every url is different in its showing object (webpage, youtube vid, picture).
Also: is there a way to find out if a message is even containing a URL, or is only a URL. I would like to filter my channel, so that only URL can be postet, and other messages will be deleted(I have a delete function)
Thanks in advance!
Share Improve this question asked Jul 28, 2020 at 19:28 pragmatrickpragmatrick 6452 gold badges11 silver badges25 bronze badges1 Answer
Reset to default 3You can try get some info from the page using the Open Graph metadata or Twitter Cards, I think Discord use this to preview some links.
You have to disable "Embed Links" permissions to prevent Discord Embed appears and then send your embed.
You can get metadata from the page using node-fetch
and cheerio
Example:
fetch(url).then(res => res.text())
.then(html => {
const $ = cheerio.load(html)
console.log($("meta[property='og:title']")[0].attribs.content) // Returns OG Title from the page
Example with url from this question here:
const fetch = require("node-fetch")
const cheerio = require("cheerio")
fetch("https://stackoverflow./questions/63141471/how-to-get-information-of-an-url-with-discord-js").then(res => res.text())
.then(html => {
const $ = cheerio.load(html)
const title = $("meta[property='og:title']")[0] || $("meta[name='twitter:title']")
const description = $("meta[property='og:description']")[0] || $("meta[name='twitter:description']")[0]
const image = $("meta[property='og:image']")[0] || $("meta[name='twitter:image']")[0]
const nothing = $("meta[property='og:thisdoesntexists']")[0] // Try get something that doesn't exists
console.log(title ? title.attribs.content : "no title") // How to get Information of an URL with discord.js
console.log(description ? description.attribs.content : "no description") // Short description
console.log(image ? image.attribs.content : "no image") // https://cdn.sstatic/Sites/stackoverflow/Img/[email protected]?v=73d79a89bded
console.log(nothing ? nothing.attribs.content : "Literally, nothing") // Literally, nothing
})
本文标签: javascriptHow to get Information of an URL with discordjsStack Overflow
版权声明:本文标题:javascript - How to get Information of an URL with discord.js - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745497853a2660889.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论