From b6027c065e052e935bc844c95275dd2bbeb9fe5c Mon Sep 17 00:00:00 2001 From: Metacube Date: Fri, 19 Sep 2025 19:28:55 +0200 Subject: [PATCH] Update index.php --- index.php | 176 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 162 insertions(+), 14 deletions(-) diff --git a/index.php b/index.php index e95ec64..0f68ebd 100644 --- a/index.php +++ b/index.php @@ -126,23 +126,30 @@ class WebcamManager { unlink($outputFile); exit; } +// public function getImageFiles() { +// // Nur JPG-Dateien aus uploads/, KEINE MP4-Dateien +// $imageFiles = glob("uploads/*.{jpg,jpeg,png,gif}", GLOB_BRACE); + +// // Filtere unerwünschte Dateien aus +// $imageFiles = array_filter($imageFiles, function($file) { +// $basename = basename($file); +// // Blockiere sequence_*.mp4 und andere unerwünschte Dateien +// return pathinfo($file, PATHINFO_EXTENSION) !== 'mp4' && +// strpos($basename, 'sequence_') !== 0; +// }); + +// return json_encode(array_values($imageFiles)); +// } public function getImageFiles() { - // Nur JPG-Dateien aus uploads/, KEINE MP4-Dateien - $imageFiles = glob("uploads/*.{jpg,jpeg,png,gif}", GLOB_BRACE); - - // Filtere unerwünschte Dateien aus - $imageFiles = array_filter($imageFiles, function($file) { - $basename = basename($file); - // Blockiere sequence_*.mp4 und andere unerwünschte Dateien - return pathinfo($file, PATHINFO_EXTENSION) !== 'mp4' && - strpos($basename, 'sequence_') !== 0; - }); - - return json_encode(array_values($imageFiles)); + // Screenshots aus dem image/ Ordner holen + $imageFiles = glob("image/screenshot_*.jpg"); + rsort($imageFiles); // Neueste zuerst + return json_encode($imageFiles); } + public function captureVideoSequence($duration = 10) { $outputFile = 'sequence_' . date('YmdHis') . '.mp4'; @@ -176,12 +183,12 @@ public function getImageFiles() { unlink($outputFile); exit; } - - public function getJavaScript() { return " document.addEventListener('DOMContentLoaded', function () { var video = document.getElementById('webcam-player'); + video.controls = false; // Versteckt alle Controls inkl. Play/Pause + var videoSrc = '{$this->videoSrc}'; if (Hls.isSupported()) { @@ -299,6 +306,7 @@ public function getImageFiles() { + public function setVideoSrc($src) { $this->videoSrc = $src; } @@ -2513,6 +2521,58 @@ footer { + + + + + @@ -3313,6 +3373,87 @@ function loadLeaderboard() { }); } +//chat agb +// Chat-Regeln Management +function checkChatRules() { + if (!localStorage.getItem('chatRulesAccepted')) { + document.getElementById('chat-rules-modal').style.display = 'block'; + document.getElementById('modal-overlay').style.display = 'block'; + document.getElementById('chat-input').disabled = true; + document.getElementById('chat-send').disabled = true; + } +} + +function acceptChatRules() { + if (document.getElementById('accept-rules').checked) { + localStorage.setItem('chatRulesAccepted', 'true'); + localStorage.setItem('rulesAcceptedDate', new Date().toISOString()); + document.getElementById('chat-rules-modal').style.display = 'none'; + document.getElementById('modal-overlay').style.display = 'none'; + document.getElementById('chat-input').disabled = false; + document.getElementById('chat-send').disabled = false; + + // Willkommensnachricht + addChatMessage('System', 'Willkommen im Chat! Bitte verhalten Sie sich respektvoll.', true); + } else { + alert('Bitte akzeptieren Sie die Nutzungsbedingungen, um den Chat zu nutzen.'); + } +} + +function declineChatRules() { + document.getElementById('chat-rules-modal').style.display = 'none'; + document.getElementById('modal-overlay').style.display = 'none'; + document.getElementById('chat-container').innerHTML = + '
Chat-Nutzung wurde abgelehnt. Bitte laden Sie die Seite neu, wenn Sie den Chat nutzen möchten.
'; +} + +// Beim Laden prüfen +document.addEventListener('DOMContentLoaded', function() { + checkChatRules(); + + // Regeln alle 30 Tage erneuern + const acceptedDate = localStorage.getItem('rulesAcceptedDate'); + if (acceptedDate) { + const daysSince = (new Date() - new Date(acceptedDate)) / (1000 * 60 * 60 * 24); + if (daysSince > 30) { + localStorage.removeItem('chatRulesAccepted'); + localStorage.removeItem('rulesAcceptedDate'); + checkChatRules(); + } + } +}); + +// Wort-Filter für unangemessene Inhalte +const bannedWords = ['sex', 'porn', 'xxx', 'nude']; // Erweitern Sie diese Liste + +function filterMessage(message) { + let filtered = message.toLowerCase(); + for (const word of bannedWords) { + if (filtered.includes(word)) { + return false; // Nachricht blockieren + } + } + return true; +} + +// In der sendMessage Funktion einbauen: +function sendMessage() { + const input = document.getElementById('chat-input'); + const message = input.value.trim(); + + if (message && filterMessage(message)) { + // Nachricht senden + } else if (!filterMessage(message)) { + alert('Ihre Nachricht enthält unzulässige Inhalte und wurde blockiert.'); + input.value = ''; + } +} + + + + + + // Initialisierung document.addEventListener('DOMContentLoaded', function() { if (document.getElementById('challenges-list')) { @@ -3350,6 +3491,13 @@ document.addEventListener('DOMContentLoaded', function() { +
+ + Nutzungsbedingungen & Chat-Regeln + | + Kontakt | + Missbrauch melden +