summaryrefslogtreecommitdiff
path: root/dist/commands/server/quotemessage.js
blob: e61cdb6091d0af5892f562347a408250829f49ea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const discord_js_commando_1 = require("discord.js-commando");
const discord_js_1 = require("discord.js");
const truncateText_js_1 = __importDefault(require("../../utils/truncateText.js"));
const path_1 = __importDefault(require("path"));
module.exports = class QuoteMessageServer extends discord_js_commando_1.Command {
    constructor(client) {
        super(client, {
            name: 'quotemessage',
            aliases: [
                'quote-message',
                'quotemsg',
                'quote-msg'
            ],
            group: 'fun',
            memberName: 'quotemessage',
            description: 'Quote a message from a text channel.',
            examples: ['uwu!quotemessage 424936127154094080'],
            throttling: {
                usages: 5,
                duration: 30
            },
            userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
            clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'],
            args: [
                {
                    key: 'mMsg',
                    prompt: 'What message would you like to quote?',
                    type: 'message',
                    label: 'message ID'
                }
            ]
        });
    }
    run(msg, { mMsg }) {
        let emb = new discord_js_1.MessageEmbed()
            .setColor(0xFFCC4D)
            .setTimestamp(mMsg.createdAt)
            .setAuthor(mMsg.author.tag, mMsg.author.avatarUrl)
            .addFields([
            {
                name: 'Channel',
                value: mMsg.channel.toString()
            },
            {
                name: 'Message',
                value: `[Jump to](https://discordapp.com/channels/${mMsg.guild.id}/${mMsg.channel.id}/${mMsg.id})`
            }
        ]);
        console.debug('Does the message have content:', Boolean(mMsg.content));
        if (mMsg.content)
            emb.setDescription(truncateText_js_1.default(mMsg.content));
        let messageImage;
        const extensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp'];
        const linkRegex = /https?:\/\/(?:\w+\.)?[\w-]+\.[\w]{2,3}(?:\/[\w-_.]+)+\.(?:png|jpg|jpeg|gif|webp)/;
        const imageEmbed = mMsg.embeds.find(msgEmbed => msgEmbed.type === 'rich' && msgEmbed.image && extensions.includes(path_1.default.extname(msgEmbed.image.url)));
        if (imageEmbed)
            messageImage = imageEmbed.image.url;
        const attachment = mMsg.attachments.find(file => extensions.includes(path_1.default.extname(file.url)));
        if (attachment) {
            messageImage = attachment.url;
        }
        if (!messageImage) {
            const linkMatch = mMsg.content.match(linkRegex);
            if (linkMatch && extensions.includes(path_1.default.extname(linkMatch[0]))) {
                [messageImage] = linkMatch;
            }
        }
        if (messageImage)
            emb.setImage(messageImage);
        msg.say(emb);
    }
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGVtZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9xdW90ZW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBK0Q7QUFFL0QsMkNBQTBDO0FBQzFDLGtGQUE0QztBQUM1QyxnREFBdUI7QUFFdkIsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLGtCQUFtQixTQUFRLDZCQUFPO0lBQ3JELFlBQVksTUFBTTtRQUNkLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDVixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUU7Z0JBQ0wsZUFBZTtnQkFDZixVQUFVO2dCQUNWLFdBQVc7YUFDZDtZQUNELEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLGNBQWM7WUFDMUIsV0FBVyxFQUFFLHNDQUFzQztZQUNuRCxRQUFRLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZjtZQUNELGVBQWUsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUMxRCxpQkFBaUIsRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQztZQUM1RCxJQUFJLEVBQUU7Z0JBQ0Y7b0JBQ0ksR0FBRyxFQUFFLE1BQU07b0JBQ1gsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFlBQVk7aUJBQ3RCO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUU7UUFDOUIsSUFBSSxHQUFHLEdBQUcsSUFBSSx5QkFBWSxFQUFFO2FBQ3ZCLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDbEIsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ2pELFNBQVMsQ0FBQztZQUNQO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUNqQztZQUNEO2dCQUNJLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSw2Q0FBNkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRzthQUNyRztTQUNKLENBQUMsQ0FBQTtRQUdOLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3RFLElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLHlCQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFHdEQsSUFBSSxZQUFZLENBQUE7UUFFaEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFN0QsTUFBTSxTQUFTLEdBQUcsa0ZBQWtGLENBQUM7UUFHckcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQy9CLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsSCxDQUFBO1FBQ0QsSUFBSSxVQUFVO1lBQUUsWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFBO1FBR25ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0YsSUFBSSxVQUFVLEVBQUU7WUFDWixZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQTtTQUNoQztRQUdELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUMvQyxJQUFJLFNBQVMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUQsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUE7YUFDN0I7U0FDSjtRQUdELElBQUksWUFBWTtZQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFNUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNoQixDQUFDO0NBQ0osQ0FBQyJ9