/[sudobot]/trunk/src/commands/moderation/HistoryCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/moderation/HistoryCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 197 by rakin, Mon Jul 29 17:28:59 2024 UTC revision 344 by rakin, Mon Jul 29 17:29:40 2024 UTC
# Line 1  Line 1 
1  import { BanOptions, CommandInteraction, ContextMenuInteraction, EmojiIdentifierResolvable, GuildMember, Interaction, InteractionCollector, Message, MessageActionRow, MessageButton, MessageOptions, ReplyOptions, TextChannel, User } from 'discord.js';  import { CommandInteraction, ContextMenuInteraction, Interaction, InteractionCollector, Message, MessageActionRow, MessageButton, User } from 'discord.js';
2  import BaseCommand from '../../utils/structures/BaseCommand';  import BaseCommand from '../../utils/structures/BaseCommand';
3  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
4  import CommandOptions from '../../types/CommandOptions';  import CommandOptions from '../../types/CommandOptions';
5  import InteractionOptions from '../../types/InteractionOptions';  import InteractionOptions from '../../types/InteractionOptions';
6  import MessageEmbed from '../../client/MessageEmbed';  import MessageEmbed from '../../client/MessageEmbed';
7  import getUser from '../../utils/getUser';  import getUser from '../../utils/getUser';
 import getMember from '../../utils/getMember';  
 import History from '../../automod/History';  
 import { fetchEmoji } from '../../utils/Emoji';  
8  import Punishment from '../../models/Punishment';  import Punishment from '../../models/Punishment';
9  import PunishmentType from '../../types/PunishmentType';  import PunishmentType from '../../types/PunishmentType';
10    
# Line 23  export default class HistoryCommand exte Line 20  export default class HistoryCommand exte
20          const limit = 3;          const limit = 3;
21          const offset = ((page < 1 ? 1 : page) - 1) * limit;          const offset = ((page < 1 ? 1 : page) - 1) * limit;
22    
23          const logs = await Punishment.findAndCountAll({          const logs = await Punishment.find({
24              where: {              guild_id: msg.guild!.id,
25                  guild_id: msg.guild!.id,              user_id: user.id,
26                  user_id: user.id          }).skip(offset).limit(limit).sort({ createdAt: -1 });
             },  
             order: [  
                 ['createdAt', 'DESC']  
             ],  
             limit,  
             offset  
         });  
27    
28          let str = '';          let str = '';
29          const maxPage = Math.ceil(logs.count / limit);          
30            const maxPage = Math.ceil((await Punishment.count({
31                guild_id: msg.guild!.id,
32                user_id: user.id,
33            })) / limit);
34    
35          const convert = (type: PunishmentType) => {                      const convert = (type: PunishmentType) => {            
36              switch (type) {              switch (type) {
# Line 65  export default class HistoryCommand exte Line 59  export default class HistoryCommand exte
59              }              }
60          };          };
61    
62          for await (const log of logs.rows) {          for await (const log of logs) {
63              str += `**Case ID**: ${log.get().id}\n`;              str += `**Case ID**: ${log.id}\n`;
64              str += `Type: ${convert(log.get().type)}\n`;              str += `Type: ${convert(log.type as PunishmentType)}\n`;
65              str += `Reason: ${log.get().reason ? (log.get().reason.trim() === '' ? '*No reason provided*' : log.get().reason) : '*No reason provided*'}\n`;              str += `Reason: ${log.reason ? (log.reason.trim() === '' ? '*No reason provided*' : log.reason) : '*No reason provided*'}\n`;
66    
67              // let mod_tag;              // let mod_tag;
68    
# Line 84  export default class HistoryCommand exte Line 78  export default class HistoryCommand exte
78              //     mod_tag = log.get().mod_id;              //     mod_tag = log.get().mod_id;
79              // }              // }
80    
81              str += `Action Executor: ${log.get().mod_tag}\n`;              str += `Action Executor: ${log.mod_tag}\n`;
82              str += `Date: ${log.get().createdAt.toLocaleString('en-US')}\n`;              str += `Date: ${log.createdAt.toLocaleString('en-US')}\n`;
83    
84              // if (log.get().type === PunishmentType.MUTE) {              // if (log.get().type === PunishmentType.MUTE) {
85              //     str += `Duration: ${(log.get().meta ? JSON.parse(log.get().meta) : {})?.time ?? '*No duration set*'}\n`;                            //     str += `Duration: ${(log.get().meta ? JSON.parse(log.get().meta) : {})?.time ?? '*No duration set*'}\n`;              
86              // }              // }
87    
88              if (log.get().meta) {              if (log.meta) {
89                  const json = typeof log.get().meta === 'string' ? JSON.parse(log.get().meta) : log.get().meta;                  const json = typeof log.meta === 'string' ? JSON.parse(log.meta) : log.meta;
90    
91                  if (Object.keys(json).length > 0) {                  if (Object.keys(json).length > 0) {
92                      str += "Additional Attributes:\n```\n";                      str += "Additional Attributes:\n```\n";

Legend:
Removed from v.197  
changed lines
  Added in v.344

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26