discos 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/.github/PRIVACY_POLICY.md +29 -0
  2. package/.github/TERMS_OF_SERVICE.md +56 -0
  3. package/LICENSE +201 -0
  4. package/README.md +70 -0
  5. package/dist/common.d.ts +157 -0
  6. package/dist/common.d.ts.map +1 -0
  7. package/dist/common.js +226 -0
  8. package/dist/common.js.map +1 -0
  9. package/dist/config.d.ts +18 -0
  10. package/dist/config.d.ts.map +1 -0
  11. package/dist/config.js +20 -0
  12. package/dist/config.js.map +1 -0
  13. package/dist/ext/langMap.d.ts +2 -0
  14. package/dist/ext/langMap.d.ts.map +1 -0
  15. package/dist/ext/langMap.js +275 -0
  16. package/dist/ext/langMap.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +21 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/modules/admin.d.ts +4 -0
  22. package/dist/modules/admin.d.ts.map +1 -0
  23. package/dist/modules/admin.js +281 -0
  24. package/dist/modules/admin.js.map +1 -0
  25. package/dist/modules/clear.d.ts +3 -0
  26. package/dist/modules/clear.d.ts.map +1 -0
  27. package/dist/modules/clear.js +82 -0
  28. package/dist/modules/clear.js.map +1 -0
  29. package/dist/modules/command.d.ts +5 -0
  30. package/dist/modules/command.d.ts.map +1 -0
  31. package/dist/modules/command.js +89 -0
  32. package/dist/modules/command.js.map +1 -0
  33. package/dist/modules/debug.d.ts +4 -0
  34. package/dist/modules/debug.d.ts.map +1 -0
  35. package/dist/modules/debug.js +47 -0
  36. package/dist/modules/debug.js.map +1 -0
  37. package/dist/modules/file.d.ts +7 -0
  38. package/dist/modules/file.d.ts.map +1 -0
  39. package/dist/modules/file.js +141 -0
  40. package/dist/modules/file.js.map +1 -0
  41. package/dist/modules/watch.d.ts +4 -0
  42. package/dist/modules/watch.d.ts.map +1 -0
  43. package/dist/modules/watch.js +63 -0
  44. package/dist/modules/watch.js.map +1 -0
  45. package/dist/shared/consts.d.ts +3 -0
  46. package/dist/shared/consts.d.ts.map +1 -0
  47. package/dist/shared/consts.js +6 -0
  48. package/dist/shared/consts.js.map +1 -0
  49. package/dist/shared/index.d.ts +3 -0
  50. package/dist/shared/index.d.ts.map +1 -0
  51. package/dist/shared/index.js +19 -0
  52. package/dist/shared/index.js.map +1 -0
  53. package/dist/shared/interfaces.d.ts +13 -0
  54. package/dist/shared/interfaces.d.ts.map +1 -0
  55. package/dist/shared/interfaces.js +3 -0
  56. package/dist/shared/interfaces.js.map +1 -0
  57. package/dist/slash-commands.d.ts +2 -0
  58. package/dist/slash-commands.d.ts.map +1 -0
  59. package/dist/slash-commands.js +242 -0
  60. package/dist/slash-commands.js.map +1 -0
  61. package/dist/startup.d.ts +2 -0
  62. package/dist/startup.d.ts.map +1 -0
  63. package/dist/startup.js +200 -0
  64. package/dist/startup.js.map +1 -0
  65. package/dist/tools/backend.d.ts +5 -0
  66. package/dist/tools/backend.d.ts.map +1 -0
  67. package/dist/tools/backend.js +155 -0
  68. package/dist/tools/backend.js.map +1 -0
  69. package/dist/tools/ipcServer.d.ts +4 -0
  70. package/dist/tools/ipcServer.d.ts.map +1 -0
  71. package/dist/tools/ipcServer.js +83 -0
  72. package/dist/tools/ipcServer.js.map +1 -0
  73. package/dist/tools/queue-utils.d.ts +9 -0
  74. package/dist/tools/queue-utils.d.ts.map +1 -0
  75. package/dist/tools/queue-utils.js +70 -0
  76. package/dist/tools/queue-utils.js.map +1 -0
  77. package/dist/tools/validateDb.d.ts +2 -0
  78. package/dist/tools/validateDb.d.ts.map +1 -0
  79. package/dist/tools/validateDb.js +111 -0
  80. package/dist/tools/validateDb.js.map +1 -0
  81. package/dist/tools/validateDotenv.d.ts +2 -0
  82. package/dist/tools/validateDotenv.d.ts.map +1 -0
  83. package/dist/tools/validateDotenv.js +117 -0
  84. package/dist/tools/validateDotenv.js.map +1 -0
  85. package/dist/types/db.d.ts +9 -0
  86. package/dist/types/db.d.ts.map +1 -0
  87. package/dist/types/db.js +3 -0
  88. package/dist/types/db.js.map +1 -0
  89. package/dist/types/queues.d.ts +6 -0
  90. package/dist/types/queues.d.ts.map +1 -0
  91. package/dist/types/queues.js +3 -0
  92. package/dist/types/queues.js.map +1 -0
  93. package/package.json +71 -0
  94. package/setup/install.sh +527 -0
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.handleAdmin = handleAdmin;
40
+ const command_1 = require("./command");
41
+ const ipcServer_1 = require("../tools/ipcServer");
42
+ const queueUtils = __importStar(require("../tools/queue-utils"));
43
+ const COMMON = __importStar(require("../common"));
44
+ const consts_1 = require("../shared/consts");
45
+ const config_1 = require("../config");
46
+ const clear_1 = require("./clear");
47
+ const fs_1 = __importDefault(require("fs"));
48
+ const validateDb_1 = require("../tools/validateDb");
49
+ async function listUsers(interaction, guild, group) {
50
+ await guild.members.fetch();
51
+ const userList = group.map((userId) => {
52
+ const member = guild.members.cache.get(userId);
53
+ const displayName = member?.nickname ?? member?.user.username ?? '';
54
+ return member ? `@${displayName} (${userId})` : `${COMMON.UNKNOWN_USER} (${userId})`;
55
+ });
56
+ await interaction.editReply({ content: '```plaintext\n' + userList.join('\n') + '\n```' });
57
+ }
58
+ async function dbPrep(interaction) {
59
+ try {
60
+ const rawData = fs_1.default.readFileSync(config_1.Config.databasePath, 'utf-8');
61
+ const db = JSON.parse(rawData);
62
+ if (typeof db !== 'object' || db === null)
63
+ throw new Error();
64
+ return db;
65
+ }
66
+ catch {
67
+ await interaction.editReply({
68
+ content: COMMON.DB_ERR,
69
+ });
70
+ return false;
71
+ }
72
+ }
73
+ function dbClose(db) {
74
+ fs_1.default.writeFileSync(config_1.Config.databasePath, JSON.stringify(db, null, 2), 'utf-8');
75
+ (0, validateDb_1.validateDb)();
76
+ }
77
+ async function handleAdmin(interaction, subcommand, username, queues) {
78
+ await interaction.deferReply({ flags: 64 });
79
+ const guild = interaction.guild;
80
+ switch (subcommand) {
81
+ case COMMON.KILL: {
82
+ await kill(interaction);
83
+ break;
84
+ }
85
+ case COMMON.MODE: {
86
+ await mode(interaction);
87
+ break;
88
+ }
89
+ case COMMON.SAFEMODE: {
90
+ await safemode(interaction);
91
+ break;
92
+ }
93
+ case COMMON.CLEAR: {
94
+ const userObj = interaction.options.getUser(COMMON.CLEAR_USER, false);
95
+ const member = userObj ? interaction.guild?.members.resolve(userObj) : null;
96
+ const targetUser = member ? (member.nickname ?? member.user.username) : COMMON.CLEAR_ALL_USER;
97
+ const lookback = interaction.options.getInteger(COMMON.LOOKBACK, false) ?? COMMON.DEFAULT_LOOKBACK;
98
+ const sendSuccessMsg = interaction.options.getBoolean(COMMON.VERBOSE, false) ?? COMMON.DEFAULT_DEBUG_VERBOSE;
99
+ await (0, clear_1.clearHistory)(lookback, interaction, targetUser, sendSuccessMsg);
100
+ break;
101
+ }
102
+ case COMMON.USER_MGMT: {
103
+ await userMgmt(interaction);
104
+ break;
105
+ }
106
+ case COMMON.LSU: {
107
+ await listUsers(interaction, guild, config_1.Config.allowedUsers);
108
+ break;
109
+ }
110
+ case COMMON.ADMIN_MGMT: {
111
+ await adminMgmt(interaction);
112
+ break;
113
+ }
114
+ case COMMON.LSA: {
115
+ await listUsers(interaction, guild, config_1.Config.adminUsers);
116
+ break;
117
+ }
118
+ case COMMON.CH_MGMT: {
119
+ await chMgmt(interaction);
120
+ break;
121
+ }
122
+ case COMMON.LOCKDOWN: {
123
+ await lockdown(interaction);
124
+ break;
125
+ }
126
+ case COMMON.ROOT: {
127
+ await rootCommand(interaction);
128
+ break;
129
+ }
130
+ }
131
+ async function kill(interaction) {
132
+ await interaction.editReply({
133
+ content: COMMON.SHUTDOWN_MSG,
134
+ });
135
+ process.exit(0);
136
+ }
137
+ async function mode(interaction) {
138
+ const standalone = interaction.options.getBoolean(COMMON.STANDALONE, true);
139
+ if (config_1.Config.standalone && !standalone) {
140
+ config_1.Config.ipcServer = (0, ipcServer_1.startIPCServer)(queues);
141
+ }
142
+ else if (!config_1.Config.standalone && standalone) {
143
+ config_1.Config.ipcServer.close();
144
+ config_1.Config.ipcServer = null;
145
+ }
146
+ const db = await dbPrep(interaction);
147
+ if (!db)
148
+ return;
149
+ db.standalone = standalone;
150
+ dbClose(db);
151
+ await interaction.editReply({
152
+ content: COMMON.MODE_REPLY(standalone),
153
+ });
154
+ }
155
+ async function safemode(interaction) {
156
+ const enabled = interaction.options.getBoolean(COMMON.CMD_VAL, true);
157
+ const db = await dbPrep(interaction);
158
+ if (!db)
159
+ return;
160
+ db.safemode = enabled;
161
+ dbClose(db);
162
+ await interaction.editReply({
163
+ content: COMMON.SAFEMODE_REPLY(enabled),
164
+ });
165
+ }
166
+ async function userMgmt(interaction) {
167
+ const userObj = interaction.options.getUser(COMMON.USER, true);
168
+ const member = userObj ? interaction.guild?.members.resolve(userObj) : null;
169
+ const targetUser = member ? (member.nickname ?? member.user.username) : COMMON.CLEAR_ALL_USER;
170
+ const userId = userObj.id;
171
+ const localProfile = interaction.options.getString(COMMON.LOCAL_USER, true);
172
+ const operation = interaction.options.getBoolean(COMMON.OPERATION, true);
173
+ const db = await dbPrep(interaction);
174
+ if (!db)
175
+ return;
176
+ if (operation) {
177
+ const existed = db.users[userId] !== undefined;
178
+ db.users[userId] = localProfile;
179
+ await interaction.editReply({
180
+ content: COMMON.ADMIN_OPS(targetUser, localProfile, true, existed),
181
+ });
182
+ }
183
+ else {
184
+ if (Object.keys(db.users).length === 1) {
185
+ await interaction.editReply({
186
+ content: COMMON.AT_LEAST_ONE_ERR(COMMON.ADMIN),
187
+ });
188
+ return;
189
+ }
190
+ else {
191
+ if (userId in db.users)
192
+ delete db.users[userId];
193
+ await interaction.editReply({
194
+ content: COMMON.ADMIN_OPS(targetUser, localProfile, false, false),
195
+ });
196
+ }
197
+ }
198
+ dbClose(db);
199
+ }
200
+ async function adminMgmt(interaction) {
201
+ const userObj = interaction.options.getUser(COMMON.USER, true);
202
+ const member = userObj ? interaction.guild?.members.resolve(userObj) : null;
203
+ const targetUser = member ? (member.nickname ?? member.user.username) : COMMON.CLEAR_ALL_USER;
204
+ const userId = userObj.id;
205
+ const operation = interaction.options.getBoolean(COMMON.OPERATION, true);
206
+ const db = await dbPrep(interaction);
207
+ if (!db)
208
+ return;
209
+ if (operation) {
210
+ if (!db.adminUsers.includes(userId))
211
+ db.adminUsers.push(userId);
212
+ await interaction.editReply({
213
+ content: COMMON.ADMIN_OPERATION(targetUser, true),
214
+ });
215
+ }
216
+ else {
217
+ if (db.adminUsers.length === 1) {
218
+ await interaction.editReply({
219
+ content: COMMON.AT_LEAST_ONE_ERR(COMMON.ADMIN),
220
+ });
221
+ return;
222
+ }
223
+ else {
224
+ db.adminUsers = db.adminUsers.filter((id) => id !== userId);
225
+ await interaction.editReply({
226
+ content: COMMON.ADMIN_OPERATION(targetUser, false),
227
+ });
228
+ }
229
+ }
230
+ dbClose(db);
231
+ }
232
+ async function chMgmt(interaction) {
233
+ const channel = interaction.options.getChannel(COMMON.CHANNEL, true);
234
+ const channelId = channel.id;
235
+ const channelName = channel.name;
236
+ const operation = interaction.options.getBoolean(COMMON.OPERATION, true);
237
+ const db = await dbPrep(interaction);
238
+ if (!db)
239
+ return;
240
+ if (operation) {
241
+ if (!db.allowedChannels.includes(channelId))
242
+ db.allowedChannels.push(channelId);
243
+ await interaction.editReply({
244
+ content: COMMON.CH_OPERATION(channelName, true),
245
+ });
246
+ }
247
+ else {
248
+ if (db.allowedChannels.length === 1) {
249
+ await interaction.editReply({
250
+ content: COMMON.AT_LEAST_ONE_ERR(COMMON.CHANNEL),
251
+ });
252
+ return;
253
+ }
254
+ else {
255
+ db.allowedChannels = db.allowedChannels.filter((id) => id !== channelId);
256
+ await interaction.editReply({
257
+ content: COMMON.CH_OPERATION(channelName, false),
258
+ });
259
+ }
260
+ }
261
+ dbClose(db);
262
+ }
263
+ async function lockdown(interaction) {
264
+ const enabled = interaction.options.getBoolean(COMMON.ENABLED, true);
265
+ const db = await dbPrep(interaction);
266
+ if (!db)
267
+ return;
268
+ db.lockdown = enabled;
269
+ dbClose(db);
270
+ await interaction.editReply({
271
+ content: COMMON.LOCKDOWN_REPLY(enabled),
272
+ });
273
+ }
274
+ async function rootCommand(interaction) {
275
+ const command = interaction.options.getString(COMMON.CMD, true);
276
+ const payload = { user: consts_1.ROOT_UID, cmd: command };
277
+ queueUtils.addToAll(queues, payload);
278
+ await (0, command_1.execCommand)(payload, interaction, command, username, 0, queues);
279
+ }
280
+ }
281
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/modules/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ChatInputCommandInteraction, CacheType } from 'discord.js';
2
+ export declare function clearHistory(lookback: number, interaction: ChatInputCommandInteraction<CacheType>, username: string, sendSuccessMsg: boolean): Promise<void>;
3
+ //# sourceMappingURL=clear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/modules/clear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAW,MAAM,YAAY,CAAC;AAOlF,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.clearHistory = clearHistory;
37
+ const COMMON = __importStar(require("../common"));
38
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
39
+ async function clearHistory(lookback, interaction, username, sendSuccessMsg) {
40
+ let loop = true;
41
+ let deleteCount = 0;
42
+ if (username === COMMON.CLEAR_ALL_USER) {
43
+ username = '';
44
+ }
45
+ while (loop) {
46
+ const messages = await interaction.channel?.messages.fetch({ limit: 100 });
47
+ if (!messages) {
48
+ await interaction.editReply({ content: COMMON.FETCH_ERR + username + '.' });
49
+ return;
50
+ }
51
+ const filtered = [...messages.values()]
52
+ .filter((m) => m.author.id === interaction.client.user?.id)
53
+ .filter((m) => m.content.includes(`@${username}`))
54
+ .sort((a, b) => b.createdTimestamp - a.createdTimestamp);
55
+ const toDelete = lookback === -1 ? filtered : filtered.slice(0, lookback);
56
+ if (toDelete.length !== 0) {
57
+ const deletions = toDelete.map((m) => m.delete().catch(() => null));
58
+ await Promise.all(deletions);
59
+ deleteCount += toDelete.length;
60
+ lookback = Math.max(0, lookback - toDelete.length);
61
+ loop = lookback !== 0;
62
+ }
63
+ else {
64
+ loop = false;
65
+ }
66
+ await sleep(500);
67
+ }
68
+ if (sendSuccessMsg) {
69
+ if (username === COMMON.CLEAR_ALL_USER) {
70
+ username = COMMON.CLEAR_ALL_USER_REPLY;
71
+ }
72
+ else {
73
+ username = `@${username}`;
74
+ }
75
+ const replyContent = lookback === -1 ? COMMON.MSG_CLR_FOR + username + '.' : COMMON.MSG_CLR_PRE + deleteCount + COMMON.MSG_CLR_POST + username + '.';
76
+ await interaction.editReply({ content: replyContent });
77
+ }
78
+ else {
79
+ await interaction.deleteReply().catch(() => null);
80
+ }
81
+ }
82
+ //# sourceMappingURL=clear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../src/modules/clear.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ChatInputCommandInteraction, CacheType } from 'discord.js';
2
+ import type { ICommandQueueItem } from '../shared/interfaces';
3
+ import type { CommandQueues } from '../types/queues';
4
+ export declare function execCommand(payload: ICommandQueueItem, interaction: ChatInputCommandInteraction<CacheType>, userCmd: string, username: string, prefixChoice: number, queues: CommandQueues, silent?: boolean): Promise<string>;
5
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/modules/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAazE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.execCommand = execCommand;
37
+ const queueUtils = __importStar(require("../tools/queue-utils"));
38
+ const backend_1 = require("../tools/backend");
39
+ const config_1 = require("../config");
40
+ const COMMON = __importStar(require("../common"));
41
+ const READ_BIN_OVERRIDE = config_1.Config.readBinOverride.map((bin) => `${bin} `);
42
+ async function execCommand(payload, interaction, userCmd, username, prefixChoice, queues, silent = false) {
43
+ let replyPrefix;
44
+ if (prefixChoice === 0) {
45
+ replyPrefix = COMMON.CMD_EXEC_AS_MSG(userCmd, username);
46
+ }
47
+ else if (prefixChoice === 1) {
48
+ replyPrefix = COMMON.CMD_EXEC_AS_MSG2(username);
49
+ queueUtils.addToAll(queues, payload);
50
+ }
51
+ try {
52
+ if (READ_BIN_OVERRIDE.some((cmd) => userCmd.includes(cmd))) {
53
+ const reply = COMMON.RW_USE_DEDICATED(replyPrefix);
54
+ await interaction.editReply({
55
+ content: reply,
56
+ });
57
+ return reply;
58
+ }
59
+ else if (userCmd.includes('watch ')) {
60
+ const reply = COMMON.WATCH_USE_DEDICATED(replyPrefix);
61
+ await interaction.editReply({
62
+ content: reply,
63
+ });
64
+ return reply;
65
+ }
66
+ else {
67
+ const res = await (0, backend_1.post)(payload, false);
68
+ const resString = res.data.toString('utf-8').trim();
69
+ const replyContent = resString === COMMON.BACKEND_EXEC_ERR ? COMMON.BACKEND_EXEC_ERR_OVERRIDE : resString;
70
+ const replyContentFormatted = `${replyPrefix}` + `${replyContent}`;
71
+ if (!silent) {
72
+ await interaction.editReply({
73
+ content: '```plaintext\n' + replyContentFormatted + '\n```',
74
+ });
75
+ }
76
+ return replyContent;
77
+ }
78
+ }
79
+ catch {
80
+ await interaction.editReply({
81
+ content: COMMON.UNKNOWN_ERR,
82
+ });
83
+ return COMMON.UNKNOWN_ERR;
84
+ }
85
+ finally {
86
+ queueUtils.removeFromAll(queues, payload);
87
+ }
88
+ }
89
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/modules/command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,kCA4DC;AA5ED,iEAAmD;AACnD,8CAAwC;AAGxC,sCAAmC;AAGnC,kDAAoC;AAOpC,MAAM,iBAAiB,GAAa,eAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAE5E,KAAK,UAAU,WAAW,CAC/B,OAA0B,EAC1B,WAAmD,EACnD,OAAe,EACf,QAAgB,EAChB,YAAoB,EACpB,MAAqB,EACrB,SAAkB,KAAK;IAEvB,IAAI,WAAW,CAAC;IAChB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAGhD,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC;QAEH,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAW,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC3D,MAAM,WAAW,CAAC,SAAS,CAAC;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;aAEI,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAW,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC9D,MAAM,WAAW,CAAC,SAAS,CAAC;gBAC1B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,IAAA,cAAI,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEvC,MAAM,SAAS,GAAY,GAAG,CAAC,IAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACxE,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1G,MAAM,qBAAqB,GAAG,GAAG,WAAW,EAAE,GAAG,GAAG,YAAY,EAAE,CAAC;YAGnE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,WAAW,CAAC,SAAS,CAAC;oBAC1B,OAAO,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,OAAO;iBAC5D,CAAC,CAAC;YACL,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,WAAW,CAAC,SAAS,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,WAAW;SAC5B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;YAAS,CAAC;QAET,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ChatInputCommandInteraction, CacheType, Client } from 'discord.js';
2
+ import type { CommandQueues } from '../types/queues';
3
+ export declare function debug(interaction: ChatInputCommandInteraction<CacheType>, username: string, userId: string, queues: CommandQueues, client: Client<boolean>): Promise<void>;
4
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/modules/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAmBrD,wBAAsB,KAAK,CACzB,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.debug = debug;
7
+ const os_1 = __importDefault(require("os"));
8
+ const config_1 = require("../config");
9
+ function formatDate(seconds) {
10
+ const days = Math.floor(seconds / 86400);
11
+ const hours = Math.floor((seconds % 86400) / 3600);
12
+ const minutes = Math.floor((seconds % 3600) / 60);
13
+ const secs = Math.floor(seconds % 60);
14
+ const date = [];
15
+ if (days > 0)
16
+ date.push(`${days}d`);
17
+ if (hours > 0 || date.length)
18
+ date.push(`${hours}h`);
19
+ if (minutes > 0 || date.length)
20
+ date.push(`${minutes}m`);
21
+ date.push(`${secs}s`);
22
+ return date.join(' ');
23
+ }
24
+ async function debug(interaction, username, userId, queues, client) {
25
+ const READ_BIN_OVERRIDE = config_1.Config.readBinOverride;
26
+ const procUptimeSeconds = Math.floor(process.uptime());
27
+ const osUptimeSeconds = Math.floor(os_1.default.uptime());
28
+ const reply = `Debug command executed by @${username} (UID: ${userId})\n\n` +
29
+ `Bot User: ${client.user.tag}\n` +
30
+ `Command Queue Size (D): ${queues.duplicateQueue.length}\n` +
31
+ `Command Queue Size (V): ${queues.validationQueue.length}\n` +
32
+ `Command Queue Max: ${config_1.Config.cmdQueueMaxSize}\n` +
33
+ `Backend URL: ${config_1.Config.backend}\n` +
34
+ `Database Path: ${config_1.Config.databasePath}\n` +
35
+ `File Max Size: ${config_1.Config.fileMaxSize} MB\n` +
36
+ `Read Bin Override: ${READ_BIN_OVERRIDE.join(' | ')}\n` +
37
+ `QuickView file types: ${config_1.Config.quickView.join(' | ')}\n` +
38
+ `Standalone Mode: ${config_1.Config.standalone ? 'True' : 'False'}\n` +
39
+ `Safe Mode: ${config_1.Config.safemode ? 'True' : 'False'}\n` +
40
+ `Lockdown Mode: ${config_1.Config.lockdown ? 'True' : 'False'}\n` +
41
+ `Server uptime: ${formatDate(osUptimeSeconds)}\n` +
42
+ `Process uptime: ${formatDate(procUptimeSeconds)}`;
43
+ await interaction.editReply({
44
+ content: '```plaintext\n' + reply + '\n```',
45
+ });
46
+ }
47
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/modules/debug.ts"],"names":[],"mappings":";;;;;AA0BA,sBAmCC;AA5DD,4CAAoB;AAGpB,sCAAmC;AAMnC,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,IAAI,IAAI,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACrD,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAEM,KAAK,UAAU,KAAK,CACzB,WAAmD,EACnD,QAAgB,EAChB,MAAc,EACd,MAAqB,EACrB,MAAuB;IAGvB,MAAM,iBAAiB,GAAa,eAAM,CAAC,eAAe,CAAC;IAG3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IAGhD,MAAM,KAAK,GACT,8BAA8B,QAAQ,UAAU,MAAM,OAAO;QAC7D,6BAA6B,MAAM,CAAC,IAAK,CAAC,GAAG,IAAI;QACjD,6BAA6B,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI;QAC7D,6BAA6B,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI;QAC9D,6BAA6B,eAAM,CAAC,eAAe,IAAI;QACvD,6BAA6B,eAAM,CAAC,OAAO,IAAI;QAC/C,6BAA6B,eAAM,CAAC,YAAY,IAAI;QACpD,6BAA6B,eAAM,CAAC,WAAW,OAAO;QACtD,6BAA6B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAC9D,6BAA6B,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAC7D,6BAA6B,eAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI;QACrE,6BAA6B,eAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI;QACnE,6BAA6B,eAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI;QACnE,6BAA6B,UAAU,CAAC,eAAe,CAAC,IAAI;QAC5D,6BAA6B,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAE/D,MAAM,WAAW,CAAC,SAAS,CAAC;QAC1B,OAAO,EAAE,gBAAgB,GAAG,KAAK,GAAG,OAAO;KAC5C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ChatInputCommandInteraction, CacheType, Attachment } from 'discord.js';
2
+ import type { ICommandQueueItem } from '../shared/interfaces';
3
+ import type { CommandQueues } from '../types/queues';
4
+ export declare function checkSize(bytes: number): boolean;
5
+ export declare function read(interaction: ChatInputCommandInteraction<CacheType>, username: string, path: string, payload: ICommandQueueItem): Promise<void>;
6
+ export declare function write(interaction: ChatInputCommandInteraction<CacheType>, username: string, file: Attachment, path: string, payload: ICommandQueueItem, queues: CommandQueues): Promise<void>;
7
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/modules/file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAerF,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAUrD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhD;AAED,wBAAsB,IAAI,CACxB,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA8Df;AAED,wBAAsB,KAAK,CACzB,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}