mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 03:07:04 +02:00
44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
import { ButtonInteraction } from 'discord.js';
|
|
import { Region } from '../../constants/regions';
|
|
import getPeriodNow from '../blitzstars/getPeriodNow';
|
|
import getPeriodStart from '../blitzstars/getPeriodStart';
|
|
import getTimeDaysAgo from '../blitzstars/getTimeDaysAgo';
|
|
import { PeriodType } from './addPeriodSubCommands';
|
|
import {
|
|
ResolvedPeriod,
|
|
getPeriodOptionName,
|
|
} from './resolvePeriodFromCommand';
|
|
|
|
export default function resolvePeriodFromButton(
|
|
region: Region,
|
|
interaction: ButtonInteraction,
|
|
) {
|
|
let name: string;
|
|
let start: number;
|
|
let end: number;
|
|
const url = new URL(`https://example.com/${interaction.customId}`);
|
|
const path = url.pathname.split('/');
|
|
const periodSubcommand = path[2] as PeriodType;
|
|
|
|
if (periodSubcommand === 'custom') {
|
|
const startRaw = parseInt(url!.searchParams.get('start')!);
|
|
const endRaw = parseInt(url!.searchParams.get('end')!);
|
|
const startDaysAgoMin = Math.min(startRaw, endRaw);
|
|
const endDaysAgoMax = Math.max(startRaw, endRaw);
|
|
|
|
name = `${startDaysAgoMin} - ${endDaysAgoMax} days`;
|
|
start = getTimeDaysAgo(region, endDaysAgoMax);
|
|
end = getTimeDaysAgo(region, startDaysAgoMin);
|
|
} else {
|
|
name = getPeriodOptionName(periodSubcommand);
|
|
start = getPeriodStart(region, periodSubcommand);
|
|
end = getPeriodNow();
|
|
}
|
|
|
|
return {
|
|
name,
|
|
start,
|
|
end,
|
|
} satisfies ResolvedPeriod;
|
|
}
|