Randomized timeout time

This commit is contained in:
nelle 2024-09-21 03:17:47 -06:00
parent bdd010ef7e
commit 5626ff054c
2 changed files with 12 additions and 6 deletions

View file

@ -18,22 +18,26 @@ import kotlin.time.Duration.Companion.minutes
var meowTimedOut = false
var beepTimedOut = false
var timeoutTime = 33.minutes
// function to facilitate the timeout for meows
fun meowTimer() {
meowTimedOut = true
// get the randomized timeout time, anywhere between
val timeoutTime = (10..180).random().minutes
println(timeoutTime)
Timer("SettingUp", true).schedule(
timerTask {
meowTimedOut = false
logger.debug { "timeout reset" }
},
// 33 minutes in milliseconds
timeoutTime.inWholeMilliseconds,
)
}
// same as meowTimer, but for beeps
fun beepTimer() {
beepTimedOut = true
val timeoutTime = (1..1440).random().minutes
Timer("SettingUp", true).schedule(
timerTask {
beepTimedOut = false
@ -44,9 +48,11 @@ fun beepTimer() {
)
}
// this is where the fun REST comes in!
fun Application.configureRouting(client: HttpClient) {
routing {
rateLimit {
// route all paths of */api
route("/api") {
// meow
route("/meow") {
@ -55,7 +61,7 @@ fun Application.configureRouting(client: HttpClient) {
if (meowTimedOut) {
call.response.status(HttpStatusCode(423, "Timed Out"))
call.respondText("Timed Out")
logger.debug { "timed out" }
logger.debug { "timed out for some time" }
} else {
call.response.status(HttpStatusCode(100, "Not Timed Out"))
call.respondText("Not Timed Out")
@ -72,13 +78,13 @@ fun Application.configureRouting(client: HttpClient) {
} else {
if (meowTimedOut) {
call.response.status(HttpStatusCode(423, "Timed Out"))
call.respondText("still sleeping...")
call.respondText("still sleeping... timed out for some time")
logger.info { "failed meow" }
} else {
call.response.status(HttpStatusCode(201, "Meow Posted"))
makePost(client, getMeow(), Config().instanceDomain)
meowTimer()
call.respondText("meow' sent!")
call.respondText("meow' sent! timed out for some time")
logger.info { "meowed" }
}
}

View file

@ -3,7 +3,7 @@
<hr>
<h3>meow/beep </h3>
<p>press the buttons bellow to make me meow/beep on the fediverse,
there is a global timeout of 33 minutes, and a separate timer for each button. if it says its sleeping, come back and try again later!</p>
there is a global timeout of anywhere between 10 and 180 minutes, and a separate timer for each button. if it says its sleeping, come back and try again later!</p>
<button
class="custom-btn btn-1 beep-buttons"