Merge remote-tracking branch 'origin/main'

main
Simon Lang 3 months ago
commit 269fb47c98
  1. 3
      .env.example
  2. 22
      public/elotracker/chart-integration.js
  3. 12
      public/elotracker/update.php

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

@ -91,7 +91,15 @@ async function create_charts() {
return format_rank(player_entries_byName[context.dataset.label][context.parsed.x / 1000]["tier"], player_entries_byName[context.dataset.label][context.parsed.x / 1000]["rank"], player_entries_byName[context.dataset.label][context.parsed.x / 1000]["points"]) return format_rank(player_entries_byName[context.dataset.label][context.parsed.x / 1000]["tier"], player_entries_byName[context.dataset.label][context.parsed.x / 1000]["rank"], player_entries_byName[context.dataset.label][context.parsed.x / 1000]["points"])
}, },
title: items => { title: items => {
return new Date(items[0].raw.x).toLocaleDateString(); let ms = items[0].raw.x;
let options = {
weekday: "short",
day: "numeric",
month: "short",
hour: "2-digit",
minute: "2-digit"
}
return new Date(ms).toLocaleDateString("de-DE", options);
}, },
beforeTitle: function (context) { beforeTitle: function (context) {
return context[0].dataset.label; return context[0].dataset.label;
@ -376,22 +384,24 @@ async function update_leaderboard_entries() {
this.style.setProperty("--button-loading-bar-width", `${e.data * 100}%`); this.style.setProperty("--button-loading-bar-width", `${e.data * 100}%`);
}) })
eventSource.addEventListener("forbidden", e => { eventSource.addEventListener("forbidden", e => {
eventSource.close();
let response = JSON.parse(e.data);
const currenttime = new Date(); const currenttime = new Date();
const updatetime = new Date(e.data); const updatetime = new Date(response.last);
let timediff = new Date(currenttime - updatetime); 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`); 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); reset_button(this);
eventSource.close();
}) })
eventSource.onerror = e => { eventSource.onerror = e => {
eventSource.close();
window.alert(`Beim Update ist ein Fehler aufgetreten. Versuche es später noch einmal`) window.alert(`Beim Update ist ein Fehler aufgetreten. Versuche es später noch einmal`)
reset_button(this); reset_button(this);
eventSource.close();
} }
eventSource.addEventListener("done", e => { eventSource.addEventListener("done", e => {
reset_button(this);
eventSource.close(); eventSource.close();
reset_button(this);
update_leaderboard_elements(); update_leaderboard_elements();
}) })

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

Loading…
Cancel
Save