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
JavaScript
;
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);
});
}
};