flexible update limit, set only in .env

main
Benjamin Kraft 3 months ago
parent bbe3942fa3
commit 9407d7e5ae
  1. 3
      .env.example
  2. 12
      public/elotracker/chart-integration.js
  3. 12
      public/elotracker/update.php

@ -2,4 +2,5 @@ MYSQL_PORT=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=
RIOT_API_KEY=
RIOT_API_KEY=
UPDATE_LIMIT_MINUTES=

@ -353,22 +353,24 @@ async function update_leaderboard_entries() {
this.style.setProperty("--button-loading-bar-width", `${e.data * 100}%`);
})
eventSource.addEventListener("forbidden", e => {
eventSource.close();
let response = JSON.parse(e.data);
const currenttime = new Date();
const updatetime = new Date(e.data);
const updatetime = new Date(response.last);
let timediff = new Date(currenttime - updatetime);
let resttime = new Date(600000 - (currenttime - updatetime));
let resttime = new Date( 1000 * 60 * response.limit - (currenttime - updatetime));
window.alert(`Das letzte Update wurde vor ${format_time_minsec(timediff)} durchgeführt. Versuche es in ${format_time_minsec(resttime)} noch einmal`);
reset_button(this);
eventSource.close();
})
eventSource.onerror = e => {
eventSource.close();
window.alert(`Beim Update ist ein Fehler aufgetreten. Versuche es später noch einmal`)
reset_button(this);
eventSource.close();
}
eventSource.addEventListener("done", e => {
reset_button(this);
eventSource.close();
reset_button(this);
update_leaderboard_elements();
})

@ -1,5 +1,7 @@
<?php
require_once __DIR__."/../util/dotenv.php";
header("X-Accel-Buffering: no");
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
@ -20,14 +22,20 @@ function sendEvent(string $event, string $data): void{
require_once __DIR__."/../util/mysql_connect.php";
$conn = new MySQLConnection();
$update_limit = $_ENV["UPDATE_LIMIT_MINUTES"];
$result = $conn->query("
SELECT date
FROM updates
WHERE date > SUBTIME(NOW(), '00:10:00')
WHERE date > SUBTIME(NOW(), '00:$update_limit:00')
LIMIT 1
");
if ($result->num_rows > 0) {
sendEvent("forbidden", $result->fetch_assoc()["date"]);
$response = [
"limit" => $update_limit,
"last" => $result->fetch_assoc()["date"]
];
sendEvent("forbidden", json_encode($response));
die;
}

Loading…
Cancel
Save