UNPKG

deleo

Version:

Deleo, a TypeScript-based CLI tool, simplifies Discord content management by enabling efficient deletion of messages in open DMs or specific channels.

63 lines (62 loc) 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), Object.defineProperty(exports, "DeleoClient", { enumerable: !0, get: function() { return DeleoClient; } }); const e = require("@sapphire/result"), r = _interop_require_default(require("chalk")), t = require("cli-progress"), s = require("discord.js-selfbot-v13"), n = _interop_require_default(require("inquirer")), a = require("../shared"), i = require("../shared/utils"), l = require("."); function _interop_require_default(e) { return e && e.__esModule ? e : { default: e }; } let DeleoClient = class DeleoClient extends s.Client { opts; progress; deleter; packageOpener; constructor(e){ super(), this.opts = e, this.progress = new t.SingleBar({ format: a.PROGRESS_BAR_FORMAT, stopOnComplete: !1, hideCursor: !0 }, t.Presets.shades_classic), this.deleter = new l.MessageDeleter({ deleteDelay: Number(e.deleteDelay) }), this.packageOpener = new l.PackageOpener(this, { openDelay: Number(e.openDelay) }); } async getToken() { return e.Result.fromAsync(async ()=>{ let t = await l.AuthManager.getToken(); if (t.isOk()) return e.Result.ok(t.unwrap()); if (this.opts.token) return e.Result.ok(this.opts.token); { let { token: t } = await n.default.prompt({ name: "token", type: "input", message: (0, r.default)`{white Enter your token {rgb(237,112,20).bold >>}}`, prefix: a.Logger.tag, transformer: (e, r, t)=>t.isFinal ? (0, i.truncate)(e, 10) : e }); return e.Result.ok(t); } }); } async deleteMessagesFromChannels(r) { return e.Result.fromAsync(async ()=>{ for (let e of r)if ((await this.deleteMessagesFromChannel(e)).isErr()) continue; }); } async deleteMessagesFromChannel(r) { return e.Result.fromAsync(async ()=>{ let t = await e.Result.fromAsync(async ()=>await this.channels.fetch(r)); if (t.isErr()) return e.Result.err("Invalid channel ID provided."); let s = t.unwrap(); return await this.deleter.deleteChannelMessages(s); }); } };