Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require("fs"); // Filesystem access
- const https = require("https");
- var Utils = require('../modules/utils');
- exports.main = function(message, mirrorWebhook) {
- try {
- var hook = mirrorWebhook;
- var username = message.author.username;
- var sanitisedUsername = username.replace(/(?:'| )/g,"_");
- var avatarURL = message.author.avatarURL;
- var content = message.content;
- var avatars = [];
- var filelocation = 'C:/Users/Robyn/Desktop/Projects/MlgMumbleBot/resources/avatars/'+sanitisedUsername+'.jpg';
- var attachlocation = 'attachment://'+sanitisedUsername+'.jpg';
- // handle default avatars
- if (avatarURL == "https://static.wikia.nocookie.net/messaging/scale-to-width-down/150") {
- fs.copyFileSync('./resources/avatars/_default.jpg', './resources/avatars/'+sanitisedUsername+'.jpg');
- avatars.push(sanitisedUsername);
- console.log('Created default avatar for user '+username);
- }
- var download = function(url, dest, cb) {
- var file = fs.createWriteStream(dest);
- var request = https.get(url, function(response) {
- response.pipe(file);
- file.on('finish', function() {
- file.close(cb); // close() is async, call cb after close completes.
- });
- }).on('error', function(err) { // Handle errors
- fs.unlink(dest); // Delete the file async. (But we don't check the result)
- if (cb) cb(err.message);
- });
- };
- fs.readdirSync("./resources/avatars/").forEach(file => {
- avatars.push(file.substring(0,file.lastIndexOf(".")));
- });
- var sendWebhook = function(webhook, content, username, avatarUrl) {
- webhook.edit({ name: username, avatar: avatarUrl })
- .then(() => {
- webhook.send(content, { username: username })
- .then(message => console.log(`Sent message: ${message.content}`))
- .catch((error) => {
- console.log(error);
- });
- })
- .catch((error) => {
- console.log(error);
- });
- }
- if (avatars.indexOf(sanitisedUsername) != -1) {
- var lastModified = fs.statSync(filelocation).mtime;
- var now = new Date().getTime();
- if (now - lastModified > 3 * 60 * 60 * 1000 && avatarURL != "https://static.wikia.nocookie.net/messaging/scale-to-width-down/150") {
- download(avatarURL, filelocation, function() {
- console.log("Downloaded new avatar for "+username);
- sendWebhook(hook, content, username, filelocation);
- });
- } else {
- sendWebhook(hook, content, username, filelocation);
- }
- } else {
- download(avatarURL, './resources/avatars/'+username+'.jpg', function() {
- console.log("Downloaded new avatar for "+username);
- sendWebhook(hook, content, username, filelocation);
- });
- }
- } catch (error) {
- console.log(error);
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement