owner-backup.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import fs from 'fs'
  2. import archiver from 'archiver'
  3. let handler = async (m, { conn, text, usedPrefix, command }) => {
  4. const databaseFolder = './database';
  5. const zipPath = './database_backup.zip';
  6. let option = parseInt(text);
  7. if (![1, 2].includes(option)) return await m.reply(`*⚠️ Que Hago un backup de la sesión o base de datos?*. Usar de la seguiente manera. ejemplo:*\n${usedPrefix + command} 1 _(Enviar sesión "creds.json")_\n${usedPrefix + command} 2 _(Enviar base de datos)_`);
  8. try {
  9. let d = new Date();
  10. let date = d.toLocaleDateString('es', { day: 'numeric', month: 'long', year: 'numeric' });
  11. if (option === 1) {
  12. const path = conn.user.jid !== global.conn.user.jid
  13. ? `./jadibts/${conn.user.jid.split`@`[0]}/creds.json`
  14. : `./BotSession/creds.json`;
  15. if (!fs.existsSync(path)) return await m.reply('⚠️ El archivo *creds.json* no existe.');
  16. let creds = fs.readFileSync(path);
  17. await conn.reply(m.sender, `📁 *Sesión* (${date})`, fkontak);
  18. await conn.sendMessage(m.sender, { document: creds, mimetype: 'application/json', fileName: `creds.json` }, { quoted: m });
  19. } else if (option === 2) {
  20. if (!fs.existsSync(databaseFolder)) return await m.reply('⚠️ La carpeta *database* no existe.');
  21. await m.reply(`_*📂 Preparando la base de datos...*_`);
  22. const output = fs.createWriteStream(zipPath);
  23. const archive = archiver('zip', { zlib: { level: 9 } });
  24. output.on('close', async () => {
  25. console.log(`Archivo .zip creado: ${archive.pointer()} bytes`);
  26. await conn.reply(m.sender, `📂 *Base de datos* (${date})`, fkontak);
  27. await conn.sendMessage(m.sender, { document: fs.readFileSync(zipPath), mimetype: 'application/zip', fileName: `database.zip` }, { quoted: m });
  28. fs.unlinkSync(zipPath);
  29. });
  30. archive.on('error', (err) => { throw err; });
  31. archive.pipe(output);
  32. archive.directory(databaseFolder, false);
  33. archive.finalize();
  34. }
  35. } catch (e) {
  36. await m.react(`❌`);
  37. console.log(e);
  38. }
  39. };
  40. handler.help = ['backup'];
  41. handler.tags = ['owner'];
  42. handler.command = /^(backup|respaldo|copia)$/i;
  43. handler.owner = true;
  44. export default handler;
  45. /*import fs from 'fs'
  46. let handler = async (m, { conn, text, usedPrefix, command }) => {
  47. let fkontak = { "key": { "participants":"[email protected]", "remoteJid": "status@broadcast", "fromMe": false, "id": "Halo" }, "message": { "contactMessage": { "vcard": `BEGIN:VCARD\nVERSION:3.0\nN:Sy;Bot;;;\nFN:y\nitem1.TEL;waid=${m.sender.split('@')[0]}:${m.sender.split('@')[0]}\nitem1.X-ABLabel:Ponsel\nEND:VCARD` }}, "participant": "[email protected]" }
  48. await m.reply(`_*🗂️ Enviando base de datos. . .*_`)
  49. try {
  50. let d = new Date
  51. let date = d.toLocaleDateString('es', { day: 'numeric', month: 'long', year: 'numeric' })
  52. let database = await fs.readFileSync(`./database.json`)
  53. let creds = await fs.readFileSync(`./BotSession/creds.json`)
  54. await conn.reply(m.sender, `*🗓️ Database:* ${date}`, fkontak)
  55. await conn.sendMessage(m.sender, {document: database, mimetype: 'application/json', fileName: `database.json`}, { quoted: m })
  56. await conn.sendMessage(m.sender, {document: creds, mimetype: 'application/json', fileName: `creds.json`}, { quoted: m })
  57. } catch (e) {
  58. await m.react(`❌`)
  59. console.log(e)}}
  60. handler.help = ['backup']
  61. handler.tags = ['owner']
  62. handler.command = /^(backup|respaldo|copia)$/i
  63. handler.owner = true
  64. export default handler
  65. */