/[sudobot]/trunk/src/commands/settings/SystemCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/settings/SystemCommand.ts

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

revision 58 by rakin, Mon Jul 29 17:28:25 2024 UTC revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1  import { CommandInteraction, GuildMember, Interaction, Message } from 'discord.js';  /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20    import { CommandInteraction, Message } from 'discord.js';
21  import BaseCommand from '../../utils/structures/BaseCommand';  import BaseCommand from '../../utils/structures/BaseCommand';
22  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
23  import CommandOptions from '../../types/CommandOptions';  import CommandOptions from '../../types/CommandOptions';
24  import InteractionOptions from '../../types/InteractionOptions';  import InteractionOptions from '../../types/InteractionOptions';
25  import MessageEmbed from '../../client/MessageEmbed';  import MessageEmbed from '../../client/MessageEmbed';
26  import { fetchEmoji } from '../../utils/Emoji';  import { fetchEmoji } from '../../utils/Emoji';
27  import { timeProcess } from '../../utils/util';  import { formatDuration, intervalToDuration } from 'date-fns';
28    import os from 'os';
29    
30  export default class SystemCommand extends BaseCommand {  export default class SystemCommand extends BaseCommand {
31      constructor() {      constructor() {
# Line 54  export default class SystemCommand exten Line 74  export default class SystemCommand exten
74              apiLatencyIcon = '🟡';              apiLatencyIcon = '🟡';
75          }          }
76    
77          const memoryFree = Math.round(process.memoryUsage().heapUsed / 1024 / 1024 * 100) / 100;          const memoryTotal = Math.round(os.totalmem() / 1024 / 1024);
78            const memoryUsed = Math.round((os.totalmem() - os.freemem()) / 1024 / 1024);
79            const memoryUsedByBot = Math.round(process.memoryUsage().heapUsed / 1024 / 1024);
80    
81          const msgoptions: any = {          const msgoptions: any = {
82              embeds: [              embeds: [
# Line 67  export default class SystemCommand exten Line 89  export default class SystemCommand exten
89                  .addFields([                  .addFields([
90                      {                      {
91                          name: 'Command Type',                          name: 'Command Type',
92                          value: `${msg instanceof Message ? 'Legacy (Message-based)' : 'Slash Command'}`                          value: `${!options.isInteraction ? 'Legacy (Message-based)' : 'Slash Command'}`
93                      },                      },
94                      {                      {
95                          name: 'Uptime',                          name: 'Uptime',
96                          value: `${timeProcess(parseInt(process.uptime().toFixed(2)))}`                          value: `${formatDuration(intervalToDuration({
97                                start: 0,
98                                end: process.uptime() * 1000
99                            }))}`
100                      },                      },
101                      {                      {
102                          name: 'Latency',                          name: 'Latency',
# Line 82  export default class SystemCommand exten Line 107  export default class SystemCommand exten
107                          value: `${apiLatencyIcon} ${apiLatency}ms`                          value: `${apiLatencyIcon} ${apiLatency}ms`
108                      },                      },
109                      {                      {
110                          name: 'Available Memory',                          name: 'Memory Usage',
111                          value: `${memoryFree}MB / 1.0GB`                          value: `${memoryUsed}MB / ${memoryTotal}MB (${memoryUsedByBot}MB used by the bot)`
112                      },                      },
113                      {                      {
114                          name: 'System Platform',                          name: 'System Platform',

Legend:
Removed from v.58  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26