/[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 125 by rakin, Mon Jul 29 17:28:41 2024 UTC revision 341 by rakin, Mon Jul 29 17:29:38 2024 UTC
# Line 5  import CommandOptions from '../../types/ Line 5  import CommandOptions from '../../types/
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 46  export default class HistoryCommand exte Line 40  export default class HistoryCommand exte
40                      return 'Soft Ban';                      return 'Soft Ban';
41                  case PunishmentType.TEMPBAN:                  case PunishmentType.TEMPBAN:
42                      return 'Temporary Ban';                      return 'Temporary Ban';
43                  case PunishmentType.BEAN:                  case PunishmentType.SHOT:
44                      return 'Bean';                      return 'Shot';
45                  case PunishmentType.MUTE:                  case PunishmentType.MUTE:
46                      return 'Mute';                      return 'Mute';
47                  case PunishmentType.HARDMUTE:                  case PunishmentType.HARDMUTE:
# 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";
# Line 276  export default class HistoryCommand exte Line 270  export default class HistoryCommand exte
270              }              }
271          });          });
272      }      }
 }  
273    }

Legend:
Removed from v.125  
changed lines
  Added in v.341

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26