aboutsummaryrefslogtreecommitdiff
path: root/src/arguments
diff options
context:
space:
mode:
Diffstat (limited to 'src/arguments')
-rw-r--r--src/arguments/contentWithDuration.ts9
-rw-r--r--src/arguments/duration.ts30
2 files changed, 23 insertions, 16 deletions
diff --git a/src/arguments/contentWithDuration.ts b/src/arguments/contentWithDuration.ts
index e69de29..8dd7621 100644
--- a/src/arguments/contentWithDuration.ts
+++ b/src/arguments/contentWithDuration.ts
@@ -0,0 +1,9 @@
+import { BushArgumentTypeCaster } from '../lib/extensions/discord-akairo/BushArgumentTypeCaster';
+import { BushMessage } from '../lib/extensions/discord.js/BushMessage';
+
+export const contentWithDurationTypeCaster: BushArgumentTypeCaster = async (
+ _message: BushMessage,
+ phrase
+): Promise<{ duration: number; contentWithoutTime: string }> => {
+ return client.util.parseDuration(phrase);
+};
diff --git a/src/arguments/duration.ts b/src/arguments/duration.ts
index 6007b4e..f8b6ab1 100644
--- a/src/arguments/duration.ts
+++ b/src/arguments/duration.ts
@@ -1,21 +1,19 @@
import { BushArgumentTypeCaster } from '../lib/extensions/discord-akairo/BushArgumentTypeCaster';
import { BushMessage } from '../lib/extensions/discord.js/BushMessage';
-import { BushConstants } from '../lib/utils/BushConstants';
-export const durationTypeCaster: BushArgumentTypeCaster = async (_message: BushMessage, phrase): Promise<number> => {
- if (!phrase) return null;
+export const durationTypeCaster: BushArgumentTypeCaster = (_message: BushMessage, phrase): number => {
+ // if (!phrase) return null;
+ // const regexString = Object.entries(BushConstants.TimeUnits)
+ // .map(([name, { label }]) => String.raw`(?:(?<${name}>-?(?:\d+)?\.?\d+) *${label})?`)
+ // .join('\\s*');
+ // const match = new RegExp(`^${regexString}$`, 'im').exec(phrase);
+ // if (!match) return null;
+ // let milliseconds = 0;
+ // for (const key in match.groups) {
+ // const value = Number(match.groups[key] || 0);
+ // milliseconds += value * BushConstants.TimeUnits[key].value;
+ // }
+ // return milliseconds;
- const regexString = Object.entries(BushConstants.TimeUnits)
- .map(([name, { label }]) => String.raw`(?:(?<${name}>-?(?:\d+)?\.?\d+) *${label})?`)
- .join('\\s*');
- const match = new RegExp(`^${regexString}$`, 'i').exec(phrase);
- if (!match) return null;
-
- let milliseconds = 0;
- for (const key in match.groups) {
- const value = Number(match.groups[key] || 0);
- milliseconds += value * BushConstants.TimeUnits[key].value;
- }
-
- return milliseconds;
+ return client.util.parseDuration(phrase).duration;
};