Untitled
unknown
plain_text
2 years ago
4.1 kB
2
Indexable
const Discord = require('discord.js'); const client = new Discord.Client(); const db = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017'; client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); }); client.on('message', msg => { if (msg.content === '!backup-foro') { msg.channel.send('Comenzando la copia de seguridad de los foros...'); const channelIds = ['ID_DEL_CANAL_1', 'ID_DEL_CANAL_2', 'ID_DEL_CANAL_3']; const promises = channelIds.map(id => { const channel = client.channels.cache.get(id); return channel.messages.fetch() .then(messages => { const messagesArray = messages.array(); // Guarda los mensajes en la base de datos db.connect(url, function(err, client) { const db = client.db('discord_backup'); db.collection(`${id}_messages`).insertMany(messagesArray, function(err, res) { if (err) throw err; console.log(`Mensajes guardados para el canal ${id}`); client.close(); }); }); }) .catch(console.error); }); Promise.all(promises) .then(() => { msg.channel.send('Copia de seguridad de los foros completa!'); }) .catch(console.error); } if (msg.content === '!backup') { msg.channel.send('Comenzando la copia de seguridad de todos los canales...'); const channels = msg.guild.channels.cache.filter(channel => channel.type === 'text'); const promises = channels.map(channel => { return channel.messages.fetch() .then(messages => { const messagesArray = messages.array(); // Guarda los mensajes en la base de datos db.connect(url, function(err, client) { const db = client.db('discord_backup'); db.collection(`${channel.id}_messages`).insertMany(messagesArray, function(err, res) { if (err) throw err; console.log(`Mensajes guardados para el canal ${channel.id}`); client.close(); }); }); }) .catch(console.error); }); Promise.all(promises) .then(() => { msg.channel.send('Copia de seguridad de todos los canales completa!'); }) .catch(console.error); } if (msg.content === '!load') { msg.channel.send('Cargando copia de seguridad de todos los canales...'); const channels = msg.guild.channels.cache.filter(channel => channel.type === 'text'); const promises = channels.map(channel => { return db.connect(url, function(err, client) { const db = client.db('discord_backup'); return db.collection(`${channel.id}_messages`).find().toArray() .then(messages => { const promises = messages.map(message => { return channel.send(message.content); }); return Promise.all(promises) .then(() => { console.log(`Mensajes cargados para el canal ${channel.id}`); client.close(); }); }) .catch(console.error); }); }); Promise.all(promises) .then(() => { msg.channel.send('Carga de todos los canales completa!'); }) .catch(console.error); } if (msg.content === '!load-content') { msg.channel.send('Cargando contenido de la copia de seguridad...'); const channelIds = ['ID_DEL_CANAL_1', 'ID_DEL_CANAL_2', 'ID_DEL_CANAL_3']; const promises = channelIds.map(id => { const channel = client.channels.cache.get(id); return db.connect(url, function(err, client) { const db = client.db('discord_backup'); return db.collection(${id}_messages).find().toArray() .then(messages => { const promises = messages.map(message => { return channel.send(message.content); }); return Promise.all(promises) .then(() => { console.log(Mensajes cargados para el canal ${id}); client.close(); }); }) .catch(console.error); }); }); Promise.all(promises) .then(() => { msg.channel.send('Carga del contenido de la copia de seguridad completa!'); }) .catch(console.error); } }); client.login('TOKEN_DEL_BOT');
Editor is loading...