lbry-wunderbot/bot/modules/lbrylink.js
Coolguy3289 a39139c0f1 Update all dependencies
Reformat bot for latest discord.js
Bump Node to v16
Fix embeds across the board
Implement intents for new discord API
Remove SupportBot module
Remove WelcomeBot module
Fixed !helpcommands and !price helptext logic
Fix LBRYLinker for new embed system
Remove ClaimBot completely (Unused)
Remove RoleSetter (No longer used)
Remove Speech Module (Spee.ch is deprecated)
2021-09-13 11:43:10 -04:00

44 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let inPrivate = require('../helpers.js').inPrivate;
let { MessageEmbed } = require('discord.js');
exports.custom = [
'lbrylink' //change this to your function name
];
exports.lbrylink = async function(bot, msg, suffix) {
bot.on('messageCreate', msg => {
if (inPrivate(msg)) {
return;
}
const urlOccurrences = (msg.content.match(/lbry:\/\//g) || []).length;
if (urlOccurrences > 0) {
//convert all mentions to a plain string (because lbry://@Nikooo777 gets parsed as lbry://@<123123123> instead)
const mentionRegex = /(.*)<@!?(\d{18})>(.*)/s;
let match;
do {
if (match) {
msg.content = match[1] + `@${msg.guild.members.get(match[2]).user.username}` + match[3];
}
match = msg.content.match(mentionRegex);
} while (match);
//compile a list of URLs
let urls = msg.content.match(/lbry:\/\/\S+/g);
//clean URLS from any prepended or appended extra chars
for (let i = 0; i < urls.length; i++) {
urls[i] = urls[i]
.replace(/^lbry:\/\//g, 'https://open.lbry.com/')
.replace(/\W+$/g, '')
.replace(/#/g, ':');
}
const linkEmbed = new MessageEmbed();
linkEmbed
.setAuthor('LBRY Linker')
.setDescription("I see you tried to post a LBRY URL, here's a friendly link to share and for others to access your content with a single click:")
.setColor(7976557);
urls.forEach(url => linkEmbed.addField('Open with LBRY or LBRY TV:', url, true));
return msg.channel.send({ embeds: [linkEmbed] });
}
});
};