UNPKG

stratostech-discord-html-transcripts

Version:

A nicely formatted html transcript generator for discord.js.

43 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildProfiles = void 0; const discord_js_1 = require("discord.js"); async function buildProfiles(messages) { const profiles = {}; // loop through messages for (const message of messages) { // add all users const author = message.author; if (!profiles[author.id]) { // add profile profiles[author.id] = buildProfile(message.member, author); } // add interaction users if (message.interaction) { const user = message.interaction.user; if (!profiles[user.id]) { profiles[user.id] = buildProfile(null, user); } } // threads if (message.thread && message.thread.lastMessage) { profiles[message.thread.lastMessage.author.id] = buildProfile(message.thread.lastMessage.member, message.thread.lastMessage.author); } } // return as a JSON return profiles; } exports.buildProfiles = buildProfiles; function buildProfile(member, author) { var _a, _b, _c, _d, _e, _f, _g, _h; return { author: (_b = (_a = member === null || member === void 0 ? void 0 : member.nickname) !== null && _a !== void 0 ? _a : author.displayName) !== null && _b !== void 0 ? _b : author.username, avatar: (_c = member === null || member === void 0 ? void 0 : member.displayAvatarURL({ size: 64 })) !== null && _c !== void 0 ? _c : author.displayAvatarURL({ size: 64 }), roleColor: member === null || member === void 0 ? void 0 : member.displayHexColor, roleIcon: (_e = (_d = member === null || member === void 0 ? void 0 : member.roles.icon) === null || _d === void 0 ? void 0 : _d.iconURL()) !== null && _e !== void 0 ? _e : undefined, roleName: (_g = (_f = member === null || member === void 0 ? void 0 : member.roles.hoist) === null || _f === void 0 ? void 0 : _f.name) !== null && _g !== void 0 ? _g : undefined, bot: author.bot, verified: (_h = author.flags) === null || _h === void 0 ? void 0 : _h.has(discord_js_1.UserFlags.VerifiedBot), }; } //# sourceMappingURL=buildProfiles.js.map