From 24d25403c0ded20138339d498a83691b0dde7d22 Mon Sep 17 00:00:00 2001 From: Histmy Date: Wed, 21 Sep 2022 16:30:47 +0200 Subject: [PATCH] pgn random with range --- src/modules/spink.ts | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/modules/spink.ts b/src/modules/spink.ts index 8831d34..ceafed1 100644 --- a/src/modules/spink.ts +++ b/src/modules/spink.ts @@ -69,6 +69,12 @@ const tovjemamvolepreceroliky = async (roliky: User) => { return `dobry rano hajzle ${roliky}\nspal sy ${formatedCas}\n${zpr}`; }; +function hmsToCislo(reg: RegExpExecArray | null) { + if (!reg || reg.input == "") return NaN; + const g = reg.groups!; + return (Number(g.h) * 3600 || 0) + (Number(g.m) * 60 || 0) + (Number(g.s) || 0); +} + const exp: Modul = { more_komandy: { @@ -103,9 +109,24 @@ const exp: Modul = { const spink = new Date(); let random = false; - if (kdy == "random") { + if (kdy.startsWith("random")) { random = true; - spink.setSeconds(Math.random() * 540 + 60); + let rozdil = 540; + let min = 60; + if (kdy.length > 7) { + const t = kdy.slice(7).replace(/ /g, "").split("-"); + if (t.length != 2) return "cos to napsal kkte"; + const regex = /^(?:(?\d+)h)?(?:(?\d+)m)?(?:(?\d+)s?)?$/; + const [from, to] = [regex.exec(t[0]), regex.exec(t[1])].map(v => hmsToCislo(v)); + if (Number.isNaN(from) || Number.isNaN(to)) return "cislo musy bit v formate xh xm xs"; + if (to <= from) return "ja teda nevim jestli ti vys jak funguje cas ael vym ze tam mas chibu"; + + console.log("vybiram mezi", from, "a", to); + + rozdil = to - from; + min = from; + } + spink.setTime(tedT + (Math.random() * rozdil + min) * 1000); log(`random spink pro ${oddiakritikovat(mes.member?.displayName || "neznamejmeno")} byl nastaven na ${formatter(spink)}`); } else if (/^\d+$/.test(kdy) || !kdy) spink.setTime(tedT + Number(kdy || 7200) * 1000);