diff --git a/src/commands/newAnnouncement.ts b/src/commands/newAnnouncement.ts index 70a7682..e7f83e5 100644 --- a/src/commands/newAnnouncement.ts +++ b/src/commands/newAnnouncement.ts @@ -108,35 +108,43 @@ export default async function (_client: Client) { if (comingWhenRaw && comingWhenRaw.trim() !== "") { let epoch: number | null = null; const trimmed = comingWhenRaw.trim(); - // Try DD/MM/YYYY - const ddmmyyyy = /^(\d{2})\/(\d{2})\/(\d{4})$/.exec( - trimmed, - ); - if (ddmmyyyy) { - const [, dd, mm, yyyy] = ddmmyyyy; - const date = new Date( - Number(yyyy), - Number(mm) - 1, - Number(dd), - ); - if (!isNaN(date.getTime())) - epoch = Math.floor(date.getTime() / 1000); - } else if (/^\d+$/.test(trimmed)) { - // Raw epoch - epoch = Number(trimmed); - } - if (epoch !== null) { + if (trimmed.toLowerCase() === "soon") { fields.push({ name: "πŸ“… Coming On", - value: ` ()`, + value: "Soonβ„’", inline: false, }); } else { - fields.push({ - name: "πŸ“… Coming On", - value: trimmed, - inline: false, - }); + // Try DD/MM/YYYY + const ddmmyyyy = /^(\d{2})\/(\d{2})\/(\d{4})$/.exec( + trimmed, + ); + if (ddmmyyyy) { + const [, dd, mm, yyyy] = ddmmyyyy; + const date = new Date( + Number(yyyy), + Number(mm) - 1, + Number(dd), + ); + if (!isNaN(date.getTime())) + epoch = Math.floor(date.getTime() / 1000); + } else if (/^\d+$/.test(trimmed)) { + // Raw epoch + epoch = Number(trimmed); + } + if (epoch !== null) { + fields.push({ + name: "πŸ“… Coming On", + value: ` ()`, + inline: false, + }); + } else { + fields.push({ + name: "πŸ“… Coming On", + value: trimmed, + inline: false, + }); + } } } diff --git a/src/commands/updateAnnouncement.ts b/src/commands/updateAnnouncement.ts index 8dcc00f..55dbcc1 100644 --- a/src/commands/updateAnnouncement.ts +++ b/src/commands/updateAnnouncement.ts @@ -128,31 +128,41 @@ export default async function (_client: Client) { if (comingWhenRaw && comingWhenRaw.trim() !== "") { let epoch: number | null = null; const trimmed = comingWhenRaw.trim(); - const ddmmyyyy = /^(\d{2})\/(\d{2})\/(\d{4})$/.exec(trimmed); - if (ddmmyyyy) { - const [, dd, mm, yyyy] = ddmmyyyy; - const date = new Date( - Number(yyyy), - Number(mm) - 1, - Number(dd), - ); - if (!isNaN(date.getTime())) - epoch = Math.floor(date.getTime() / 1000); - } else if (/^\d+$/.test(trimmed)) { - epoch = Number(trimmed); - } - if (epoch !== null) { + if (trimmed.toLowerCase() === "soon") { fields.push({ name: "πŸ“… Coming On", - value: ` ()`, + value: "Soonβ„’", inline: false, }); } else { - fields.push({ - name: "πŸ“… Coming On", - value: trimmed, - inline: false, - }); + const ddmmyyyy = /^(\d{2})\/(\d{2})\/(\d{4})$/.exec( + trimmed, + ); + if (ddmmyyyy) { + const [, dd, mm, yyyy] = ddmmyyyy; + const date = new Date( + Number(yyyy), + Number(mm) - 1, + Number(dd), + ); + if (!isNaN(date.getTime())) + epoch = Math.floor(date.getTime() / 1000); + } else if (/^\d+$/.test(trimmed)) { + epoch = Number(trimmed); + } + if (epoch !== null) { + fields.push({ + name: "πŸ“… Coming On", + value: ` ()`, + inline: false, + }); + } else { + fields.push({ + name: "πŸ“… Coming On", + value: trimmed, + inline: false, + }); + } } }