This commit is contained in:
Lamp 2019-08-27 16:09:52 -04:00
commit 7da7d48138

@ -5,16 +5,25 @@ console.log("start");
var browser = await puppeteer.launch({args:["--no-sandbox"]});
var Discord = require('discord.io');
var bot = new Discord.Client({
var client = new Discord.Client({
token: fs.readFileSync('token.txt','utf8').trim(),
autorun: true
});
bot.setPresence({game: {name: "p!help"}});
client.setPresence({game: {name: "p!help"}});
bot.on("message", function(userName, userID, channelID, message, event){
client.on("message", function(userName, userID, channelID, message, event){
if (!message.startsWith("p!")) return;
console.log(`[${new Date().toLocaleString()}] [${event.d.guild_id}(${bot.servers[event.d.guild_id]&&bot.servers[event.d.guild_id].name})] [${channelID}(#${bot.channels[channelID]&&bot.channels[channelID].name})] User ${userID} (${userName}#${event.d.author.discriminator}) invoked command: ${message}`);
if (client.id == "482784865532641290") {
if ("330499952948019201" in client.servers[event.d.guild_id].members) return;
let msg = "**This bot account will be deleted soon!**\n"
+ "Please invite the new bot account to continue using Puppeteer: <https://discordapp.com/api/oauth2/authorize?client_id=330499952948019201&permissions=0&scope=bot>";
// could've made it respond differently if member had permission to invite, or show list of members that do; but too complicted to do with discord.io
client.sendMessage({message: msg, to: channelID});
return;
}
console.log(`[${new Date().toLocaleString()}] [${event.d.guild_id}(${client.servers[event.d.guild_id]&&client.servers[event.d.guild_id].name})] [${channelID}(#${client.channels[channelID]&&client.channels[channelID].name})] User ${userID} (${userName}#${event.d.author.discriminator}) invoked command: ${message}`);
var args = message.split(" ");
var cmd = args[0].slice(2).toLowerCase();
@ -23,7 +32,7 @@ console.log("start");
switch (cmd) {
case "help":
case "h":
bot.sendMessage({embed:{
client.sendMessage({embed:{
title: "Commands",
description:
"\n`p!screenshot <url>`"+
@ -35,11 +44,11 @@ console.log("start");
"\n`p!youtube <query>`"+
"\n`p!ebay <query>`" +
"\n`p!amazon <query>`" +
"\n`p!duckduckgo <query>`" +
"\n`p!yahoo <query>`" +
"\n`p!duckduckgo <query>`" +
"\n`p!yahoo <query>`" +
"\n Each command has an abbreviated version." +
"\n"+
"\n\n[» Add this bot to your server](https://discordapp.com/oauth2/authorize?scope=bot&client_id=482784865532641290)"+
`\n\n[» Add this bot to your server](https://discordapp.com/oauth2/authorize?scope=bot&client_id=${client.id})`+
"\n[» Source code](https://github.com/ledlamp/puppeteer-discord-bot)"+
"\n[» Submit an issue](https://github.com/ledlamp/puppeteer-discord-bot/issues/new)"
}, to: channelID});
@ -59,7 +68,7 @@ console.log("start");
case "google-images":
case "gi":
pup(`https://www.google.com/search?q=${encodeURIComponent(query)}&tbm=isch&safe=${(bot.channels[channelID] && bot.channels[channelID].nsfw) ? 'off' : 'on'}`);
pup(`https://www.google.com/search?q=${encodeURIComponent(query)}&tbm=isch&safe=${(client.channels[channelID] && client.channels[channelID].nsfw) ? 'off' : 'on'}`);
break;
case "bing":
case "b":
@ -67,7 +76,7 @@ console.log("start");
break;
case "bing-images":
case "bi":
pup(`https://www.bing.com/images/search?q=${encodeURIComponent(query)}&safeSearch=${(bot.channels[channelID] && bot.channels[channelID].nsfw) ? 'off' : 'moderate'}`);
pup(`https://www.bing.com/images/search?q=${encodeURIComponent(query)}&safeSearch=${(client.channels[channelID] && client.channels[channelID].nsfw) ? 'off' : 'moderate'}`);
break;
case "youtube":
case "yt":
@ -100,28 +109,28 @@ console.log("start");
case ">":
if (userID == "330499035419115522") {
try {
bot.sendMessage({message: eval(query), to: channelID});
client.sendMessage({message: eval(query), to: channelID});
} catch(e) {
bot.sendMessage({message: e, to: channelID});
client.sendMessage({message: e, to: channelID});
}
}
break;
}
async function pup(url) {
bot.addReaction({reaction:'🆗', channelID, messageID: event.d.id});
client.addReaction({reaction:'🆗', channelID, messageID: event.d.id});
try {
var page = await browser.newPage();
page.on("error", error => {
bot.sendMessage({message: `:warning: ${error.message}`, to: channelID});
client.sendMessage({message: `:warning: ${error.message}`, to: channelID});
});
await page.setViewport({width: 1440, height: 900});
await page.goto(url);
var screenshot = await page.screenshot({type: 'png'});
bot.uploadFile({file: screenshot, filename: "screenshot.png", to: channelID});
client.uploadFile({file: screenshot, filename: "screenshot.png", to: channelID});
} catch(error) {
console.error(error);
bot.sendMessage({message: `:warning: ${error.message}`, to: channelID});
client.sendMessage({message: `:warning: ${error.message}`, to: channelID});
} finally {
try {
await page.close();