feat: Add comprehensive documentation suite and reorganize project structure

- Created complete documentation in docs/ directory
- Added PROJECT_OVERVIEW.md with feature highlights and getting started guide
- Added ARCHITECTURE.md with system design and technical details
- Added SECURITY.md with comprehensive security implementation guide
- Added DEVELOPMENT.md with development workflows and best practices
- Added DEPLOYMENT.md with production deployment instructions
- Added API.md with complete REST API documentation
- Added CONTRIBUTING.md with contribution guidelines
- Added CHANGELOG.md with version history and migration notes
- Reorganized all documentation files into docs/ directory for better organization
- Updated README.md with proper documentation links and quick navigation
- Enhanced project structure with professional documentation standards
This commit is contained in:
SamiAhmed7777
2025-10-21 00:39:45 -07:00
commit 0b7e2d0a5b
6080 changed files with 1332936 additions and 0 deletions

94
f_modules/api/index.php Normal file
View File

@@ -0,0 +1,94 @@
<?php
/*******************************************************************************************************************
| EasyStream API Endpoint
| RESTful API for EasyStream application
|*******************************************************************************************************************/
define('_ISVALID', true);
// Load core system
$main_dir = realpath(dirname(__FILE__) . '/../../');
set_include_path($main_dir);
if (!file_exists('f_core/config.core.php')) {
header('HTTP/1.1 500 Internal Server Error');
header('Content-Type: application/json');
echo json_encode(['error' => 'Core system not found']);
exit;
}
include_once 'f_core/config.core.php';
// Set JSON response headers
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
// Handle preflight requests
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
// Get endpoint from query string
$endpoint = isset($_GET['endpoint']) ? $_GET['endpoint'] : '';
$method = $_SERVER['REQUEST_METHOD'];
// Basic API routing
switch ($endpoint) {
case 'status':
echo json_encode([
'status' => 'online',
'version' => '1.0.0',
'timestamp' => date('c'),
'container' => gethostname()
]);
break;
case 'health':
// Redirect to health check
include_once '../../health_check.php';
break;
case 'videos':
case 'users':
case 'live':
case 'search':
case 'analytics':
// Redirect to v1 API
$api = new VAPI();
$data = [];
if ($method === 'GET') {
$data = $_GET;
} else {
$input = file_get_contents('php://input');
if ($input) {
$data = json_decode($input, true) ?: [];
}
$data = array_merge($data, $_POST);
}
$headers = getallheaders() ?: [];
$response = $api->handleRequest($method, $endpoint, $data, $headers);
http_response_code($response['status']);
echo json_encode($response);
break;
default:
http_response_code(404);
echo json_encode([
'error' => 'API endpoint not found',
'endpoint' => $endpoint,
'available_endpoints' => [
'status',
'health',
'videos',
'users'
]
]);
break;
}
?>

View File

@@ -0,0 +1,129 @@
<?php
/*******************************************************************************************************************
| SRS Webhook Handler
| Handles callbacks from SRS server for live streaming events
|*******************************************************************************************************************/
define('_ISVALID', true);
require_once '../../f_core/config.core.php';
// Set JSON response headers
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
// Handle preflight requests
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
http_response_code(200);
exit;
}
try {
$liveStreaming = new VLiveStreaming();
$logger = VLogger::getInstance();
// Get request data
$input = file_get_contents('php://input');
$data = json_decode($input, true);
if (!$data) {
throw new Exception('Invalid JSON data');
}
// Determine action from URL path
$path = $_SERVER['REQUEST_URI'] ?? '';
$action = '';
// Parse SRS webhook action
if (isset($data['action'])) {
$action = $data['action'];
} elseif (strpos($path, 'on_connect') !== false) {
$action = 'on_connect';
} elseif (strpos($path, 'on_close') !== false) {
$action = 'on_close';
} elseif (strpos($path, 'on_publish') !== false) {
$action = 'on_publish';
} elseif (strpos($path, 'on_unpublish') !== false) {
$action = 'on_unpublish';
} elseif (strpos($path, 'on_play') !== false) {
$action = 'on_play';
} elseif (strpos($path, 'on_stop') !== false) {
$action = 'on_stop';
} elseif (strpos($path, 'on_dvr') !== false) {
$action = 'on_dvr';
} elseif (strpos($path, 'on_hls') !== false) {
$action = 'on_hls';
} elseif (strpos($path, 'heartbeat') !== false) {
$action = 'heartbeat';
}
$logger->info('SRS webhook received', [
'action' => $action,
'data' => $data,
'path' => $path
]);
// Handle heartbeat separately
if ($action === 'heartbeat') {
// Update SRS server status
updateSRSStatus($data);
echo json_encode(['code' => 0, 'message' => 'heartbeat received']);
exit;
}
// Handle stream webhooks
$response = $liveStreaming->handleSRSWebhook($action, $data);
echo json_encode($response);
} catch (Exception $e) {
$logger->error('SRS webhook error', [
'error' => $e->getMessage(),
'input' => $input ?? '',
'path' => $_SERVER['REQUEST_URI'] ?? ''
]);
// Return error response
echo json_encode([
'code' => 1,
'message' => $e->getMessage()
]);
}
/**
* Update SRS server status
* @param array $data Heartbeat data
*/
function updateSRSStatus($data)
{
try {
$db = VDatabase::getInstance();
$statusData = [
'server_id' => $data['device_id'] ?? 'srs-server',
'status' => 'online',
'last_heartbeat' => date('Y-m-d H:i:s'),
'data' => json_encode($data),
'updated_at' => date('Y-m-d H:i:s')
];
// Insert or update server status
$existing = $db->doQuery("SELECT id FROM db_srs_servers WHERE server_id = ?", [$statusData['server_id']]);
if ($db->doFetch($existing)) {
$db->doUpdate('db_srs_servers', 'server_id', $statusData, $statusData['server_id']);
} else {
$statusData['created_at'] = date('Y-m-d H:i:s');
$db->doInsert('db_srs_servers', $statusData);
}
} catch (Exception $e) {
VLogger::getInstance()->error('Failed to update SRS status', [
'error' => $e->getMessage(),
'data' => $data
]);
}
}
?>

View File

@@ -0,0 +1,76 @@
<?php
/*******************************************************************************************************************
| EasyStream REST API v1
| Main API endpoint handler for mobile apps and third-party integration
|*******************************************************************************************************************/
define('_ISVALID', true);
require_once '../../../f_core/config.core.php';
// Set JSON response headers
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
try {
$api = new VAPI();
// Get request method and endpoint
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
$requestUri = $_SERVER['REQUEST_URI'] ?? '';
// Parse endpoint from URI
$basePath = '/api/v1/';
$endpoint = '';
if (strpos($requestUri, $basePath) !== false) {
$endpoint = substr($requestUri, strpos($requestUri, $basePath) + strlen($basePath));
$endpoint = strtok($endpoint, '?'); // Remove query parameters
}
// Get request data
$data = [];
if ($method === 'GET') {
$data = $_GET;
} else {
$input = file_get_contents('php://input');
if ($input) {
$data = json_decode($input, true) ?: [];
}
// Merge with POST data if available
$data = array_merge($data, $_POST);
}
// Get request headers
$headers = getallheaders() ?: [];
// Handle API request
$response = $api->handleRequest($method, $endpoint, $data, $headers);
// Set HTTP status code
http_response_code($response['status']);
// Return JSON response
echo json_encode($response);
} catch (Exception $e) {
// Log error
$logger = VLogger::getInstance();
$logger->error('API error', [
'error' => $e->getMessage(),
'method' => $_SERVER['REQUEST_METHOD'] ?? '',
'uri' => $_SERVER['REQUEST_URI'] ?? '',
'trace' => $e->getTraceAsString()
]);
// Return error response
http_response_code(500);
echo json_encode([
'status' => 500,
'data' => ['error' => 'Internal server error'],
'timestamp' => time(),
'version' => 'v1'
]);
}
?>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
define('_ISVALID', true);
define('_ISADMIN', true);
include_once 'f_core/config.core.php';
include_once $class_language->setLanguageFile('frontend', 'language.global');
include_once $class_language->setLanguageFile('frontend', 'language.notifications');
include_once $class_language->setLanguageFile('backend', 'language.advertising');
include_once $class_language->setLanguageFile('backend', 'language.import');
include_once $class_language->setLanguageFile('frontend', 'language.account');
$error_message = null;
$notice_message = null;
$logged_in = VLogin::checkBackend(VHref::getKey("be_advertising"));
switch ($_GET["do"]) {
case "file_upload":
echo $ht = VbeAdvertising::beAdvFileUpload();
break;
}
$menu_entry = ($_GET["s"] != '' and $_GET["do"] != 'file_upload') ? VMenuparse::sectionDisplay('backend', $class_filter->clr_str($_GET["s"])) : null;
$page = ($_GET["s"] == '') ? $class_smarty->displayPage('backend', 'backend_tpl_advertising', $error_message, $notice_message) : null;

View File

@@ -0,0 +1,180 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
defined('_ISVALID') or header('Location: /error');
// Initialize branding system
$branding = VBranding::getInstance();
$imageManager = VImageManager::getInstance();
// Handle form submissions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$action = $_POST['action'] ?? '';
switch ($action) {
case 'update_settings':
if (VSecurity::validateCSRFFromPost('branding_update')) {
$updated = 0;
$category = $_POST['category'] ?? 'general';
foreach ($_POST as $key => $value) {
if (strpos($key, 'setting_') === 0) {
$settingKey = substr($key, 8); // Remove 'setting_' prefix
$settingType = $_POST["type_$settingKey"] ?? 'text';
if ($branding->set($settingKey, $value, $settingType)) {
$updated++;
}
}
}
$message = $updated > 0 ? "Successfully updated $updated settings!" : "No changes were made.";
$messageType = $updated > 0 ? 'success' : 'info';
} else {
$message = "Security validation failed. Please try again.";
$messageType = 'error';
}
break;
case 'apply_preset':
if (VSecurity::validateCSRFFromPost('preset_apply')) {
$presetName = $_POST['preset_name'] ?? '';
if ($branding->applyPreset($presetName)) {
$message = "Successfully applied preset: $presetName";
$messageType = 'success';
} else {
$message = "Failed to apply preset: $presetName";
$messageType = 'error';
}
}
break;
case 'upload_image':
if (VSecurity::validateCSRFFromPost('image_upload')) {
$imageKey = $_POST['image_key'] ?? '';
$presetKey = $_POST['preset_key'] ?? null;
if (isset($_FILES['image_file']) && !empty($imageKey)) {
$result = $imageManager->uploadImage($_FILES['image_file'], $imageKey, $presetKey);
if ($result['success']) {
$message = "Image uploaded successfully! Dimensions: {$result['width']}x{$result['height']}";
$messageType = 'success';
} else {
$message = "Upload failed: " . $result['error'];
$messageType = 'error';
}
} else {
$message = "Please select a file and specify an image key.";
$messageType = 'error';
}
}
break;
case 'delete_image':
if (VSecurity::validateCSRFFromPost('image_delete')) {
$imageId = (int) ($_POST['image_id'] ?? 0);
if ($imageId > 0 && $imageManager->deleteImage($imageId)) {
$message = "Image deleted successfully!";
$messageType = 'success';
} else {
$message = "Failed to delete image.";
$messageType = 'error';
}
}
break;
}
}
// Get current tab and data
$currentTab = $_GET['tab'] ?? 'general';
$categories = $branding->getCategories();
$presets = $branding->getPresets();
$siteInfo = $branding->getSiteInfo();
$imagePresets = $imageManager->getImagePresets();
$uploadedImages = $imageManager->getUploadedImages();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Branding Management - <?php echo htmlspecialchars($siteInfo['name']); ?></title>
<style>
<?php echo $branding->generateCSS(); ?>
</style>
</head>
<body>
<div class="admin-container">
<h1>🎨 Branding Management</h1>
<?php if (isset($message)): ?>
<div class="message <?php echo $messageType; ?>">
<?php echo htmlspecialchars($message); ?>
</div>
<?php endif; ?>
<div class="tabs">
<?php foreach ($categories as $category): ?>
<a href="?tab=<?php echo urlencode($category); ?>"
class="tab <?php echo $currentTab === $category ? 'active' : ''; ?>">
<?php echo ucfirst($category); ?>
</a>
<?php endforeach; ?>
<a href="?tab=images" class="tab <?php echo $currentTab === 'images' ? 'active' : ''; ?>">
Images
</a>
<a href="?tab=presets" class="tab <?php echo $currentTab === 'presets' ? 'active' : ''; ?>">
Presets
</a>
</div>
<div class="tab-content">
<?php $settings = $branding->getByCategory($currentTab); ?>
<?php if (!empty($settings)): ?>
<h2><?php echo ucfirst($currentTab); ?> Settings</h2>
<form method="post">
<?php echo VSecurity::getCSRFField('branding_update'); ?>
<input type="hidden" name="action" value="update_settings">
<input type="hidden" name="category" value="<?php echo htmlspecialchars($currentTab); ?>">
<?php foreach ($settings as $key => $setting): ?>
<div class="setting-item">
<label><?php echo ucwords(str_replace('_', ' ', $key)); ?></label>
<input type="hidden" name="type_<?php echo htmlspecialchars($key); ?>" value="<?php echo htmlspecialchars($setting['type']); ?>">
<?php if ($setting['type'] === 'color'): ?>
<input type="color"
name="setting_<?php echo htmlspecialchars($key); ?>"
value="<?php echo htmlspecialchars($setting['value']); ?>">
<?php else: ?>
<input type="text"
name="setting_<?php echo htmlspecialchars($key); ?>"
value="<?php echo htmlspecialchars($setting['value']); ?>">
<?php endif; ?>
</div>
<?php endforeach; ?>
<button type="submit">Save Changes</button>
</form>
<?php endif; ?>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,47 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
define('_ISVALID', true);
define('_ISADMIN', true);
include_once 'f_core/config.core.php';
include_once $class_language->setLanguageFile('backend', 'language.dashboard');
include_once $class_language->setLanguageFile('backend', 'language.settings.entries');
include_once $class_language->setLanguageFile('backend', 'language.advertising');
include_once $class_language->setLanguageFile('frontend', 'language.global');
include_once $class_language->setLanguageFile('frontend', 'language.account');
$error_message = null;
$notice_message = null;
$cfg[] = $class_database->getConfigurations('video_player,audio_player');
$logged_in = VLogin::checkBackend(VHref::getKey("be_dashboard"));
$dash = new VbeDashboard();
if (isset($_GET["s"])) {
switch ($_GET["s"]) {
case "notif":
echo $notif = $dash->getNotifications();
break;
case "new":
echo $new = $dash->getNewNotifications();
break;
}
return;
}
$stats = $dash->assignStats();
$page = !isset($_GET["s"]) ? $class_smarty->displayPage('backend', 'backend_tpl_dashboard', $error_message, $notice_message) : null;

View File

@@ -0,0 +1,183 @@
<?php
/*******************************************************************************************************************
| Database Tools (Admin)
| - Export entire database as .sql.gz
| - Import .sql or .sql.gz (use with caution)
*******************************************************************************************************************/
define('_ISVALID', true);
include_once '../../f_core/config.core.php';
// Require backend access
if (!VSession::isLoggedIn() || !VLogin::checkBackendAccess()) {
header('Location: /error');
exit;
}
// Convenience
function dbtools_output_gzip($filename, $content_cb) {
header('Content-Type: application/gzip');
header('Content-Disposition: attachment; filename="' . $filename . '"');
// Stream gzip
$gz = fopen('php://temp', 'wb+');
$buffer = '';
$content_cb(function($chunk) use (&$buffer) { $buffer .= $chunk; });
echo gzencode($buffer, 6);
}
function dbtools_escape_value($db, $val) {
if ($val === null) return 'NULL';
return $db->qStr($val); // returns quoted string
}
function dbtools_export_sql() {
global $db;
@set_time_limit(0);
$date = date('Ymd_His');
$fname = 'easystream_backup_' . $date . '.sql.gz';
dbtools_output_gzip($fname, function($write) use ($db) {
$write("-- EasyStream SQL Backup\n");
$write("-- Generated: " . date('c') . "\n\n");
$write("SET NAMES utf8mb4;\nSET FOREIGN_KEY_CHECKS=0;\n\n");
$tables = $db->GetCol('SHOW TABLES');
if (!is_array($tables)) $tables = [];
foreach ($tables as $t) {
$write("--\n-- Table structure for `{$t}`\n--\n\n");
$write("DROP TABLE IF EXISTS `{$t}`;\n");
$crt = $db->GetRow("SHOW CREATE TABLE `{$t}`");
if ($crt && isset($crt['Create Table'])) {
$write($crt['Create Table'] . ";\n\n");
}
$rs = $db->Execute("SELECT * FROM `{$t}`");
if ($rs && !$rs->EOF) {
$write("--\n-- Dumping data for table `{$t}`\n--\n\n");
$cols = array_keys($rs->fields);
$colList = '`' . implode('`,`', $cols) . '`';
$batch = [];
$batchSize = 100; // rows per INSERT
while (!$rs->EOF) {
$row = [];
foreach ($cols as $c) {
$row[] = dbtools_escape_value($db, $rs->fields[$c]);
}
$batch[] = '(' . implode(',', $row) . ')';
if (count($batch) >= $batchSize) {
$write("INSERT INTO `{$t}` ({$colList}) VALUES\n" . implode(",\n", $batch) . ";\n");
$batch = [];
}
$rs->MoveNext();
}
if (!empty($batch)) {
$write("INSERT INTO `{$t}` ({$colList}) VALUES\n" . implode(",\n", $batch) . ";\n");
}
$write("\n");
}
}
$write("SET FOREIGN_KEY_CHECKS=1;\n");
});
exit;
}
function dbtools_import_sql($path, $isGz) {
global $db;
@set_time_limit(0);
$handle = $isGz ? gzopen($path, 'rb') : fopen($path, 'rb');
if (!$handle) return ['ok' => false, 'msg' => 'Unable to open uploaded file'];
$buffer = '';
$count = 0; $err = 0;
$readFn = function() use ($handle, $isGz) { return $isGz ? gzgets($handle, 65536) : fgets($handle, 65536); };
while (($line = $readFn()) !== false) {
$trim = trim($line);
if ($trim === '' || strpos($trim, '--') === 0) continue; // skip comments
$buffer .= $line;
if (substr(rtrim($line), -1) === ';') {
$sql = trim($buffer);
$buffer = '';
try {
$db->Execute($sql);
$count++;
} catch (Exception $e) {
$err++;
}
}
}
if ($isGz) gzclose($handle); else fclose($handle);
return ['ok' => $err === 0, 'executed' => $count, 'errors' => $err];
}
// Actions
$action = VSecurity::getParam('action', 'alpha', '');
if ($action === 'export') {
dbtools_export_sql();
}
$msg = null; $err = null;
if ($_SERVER['REQUEST_METHOD'] === 'POST' && VSecurity::validateCSRFFromPost('db_tools_import')) {
if (!isset($_FILES['sqlfile']) || $_FILES['sqlfile']['error'] !== UPLOAD_ERR_OK) {
$err = 'No file uploaded or upload error.';
} else {
$fname = $_FILES['sqlfile']['name'];
$tmp = $_FILES['sqlfile']['tmp_name'];
$size = (int) $_FILES['sqlfile']['size'];
if ($size <= 0 || $size > 100 * 1024 * 1024) { // 100MB limit
$err = 'Invalid file size.';
} else {
$isGz = preg_match('/\.gz$/i', $fname) === 1;
$res = dbtools_import_sql($tmp, $isGz);
if ($res['ok']) {
$msg = 'Import completed. Executed ' . (int)$res['executed'] . ' statements.';
} else {
$err = 'Import finished with ' . (int)$res['errors'] . ' errors, executed ' . (int)$res['executed'] . ' statements.';
}
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Database Tools - EasyStream Admin</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.card { border:1px solid #ddd; padding:20px; border-radius:6px; margin-bottom:20px; }
.btn { padding: 10px 16px; background:#1976d2; color:#fff; border:none; border-radius:4px; cursor:pointer; }
.btn:hover { background:#1565c0; }
.btn.secondary { background:#6c757d; }
.alert { padding: 12px; border-radius: 4px; margin-bottom: 15px; }
.alert.success { background:#e8f5e9; color:#1b5e20; border:1px solid #c8e6c9; }
.alert.error { background:#ffebee; color:#b71c1c; border:1px solid #ffcdd2; }
</style>
<meta charset="utf-8" />
</head>
<body>
<h1>Database Tools</h1>
<?php if ($msg): ?><div class="alert success"><?php echo secure_output($msg); ?></div><?php endif; ?>
<?php if ($err): ?><div class="alert error"><?php echo secure_output($err); ?></div><?php endif; ?>
<div class="card">
<h2>Export Database</h2>
<p>Download a gzip-compressed SQL dump of the entire database. Includes schema and data.</p>
<p><strong>Note:</strong> For large datasets, export may take a while.</p>
<a class="btn" href="?action=export">Download .sql.gz</a>
</div>
<div class="card">
<h2>Import Database</h2>
<p>Upload a .sql or .sql.gz dump. Only use dumps generated by this tool for best compatibility.</p>
<form method="post" enctype="multipart/form-data">
<?php echo csrf_field('db_tools_import'); ?>
<input type="file" name="sqlfile" accept=".sql,.gz" required />
<button class="btn secondary" type="submit">Import</button>
</form>
</div>
<p><em>Tip:</em> Consider placing site in maintenance mode before import. Back up first.</p>
</body>
</html>

View File

@@ -0,0 +1,87 @@
<?php http_response_code(404);?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex,nofollow">
<title>404 Page Not Found</title>
<style>
div.logo {
height: 200px;
display: inline-block;
opacity: 1;
position: absolute;
top: 2rem;
left: 50%;
transform: translateX(-50%);
display: block;
}
body {
height: 100%;
background: #fafafa;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #777;
font-weight: 300;
}
h1 {
font-weight: lighter;
letter-spacing: 0.8;
font-size: 3rem;
margin-top: 0;
margin-bottom: 0;
color: #222;
}
.wrap {
max-width: 1024px;
margin: 8rem auto;
padding: 2rem;
background: #fff;
text-align: center;
border: 1px solid #efefef;
border-radius: 0.5rem;
position: relative;
}
pre {
white-space: normal;
margin-top: 1.5rem;
}
code {
background: #fafafa;
border: 1px solid #efefef;
padding: 0.5rem 1rem;
border-radius: 5px;
display: block;
}
p {
margin-top: 1.5rem;
font-size: 28px;
}
.footer {
margin-top: 2rem;
border-top: 1px solid #efefef;
padding: 1em 2em 0 2em;
font-size: 85%;
color: #999;
}
a:active,
a:link,
a:visited {
color: #dd4814;
}
</style>
</head>
<body>
<div class="logo">
<a href="/"><img src="/f_scripts/fe/img/logo-header.png"></a>
</div>
<div class="wrap">
<h1>404 - Page Not Found</h1>
<p>
Sorry! Cannot seem to find the page you were looking for.
</p>
</div>
</body>
</html>
<?php die();?>

View File

@@ -0,0 +1,12 @@
{"timestamp":"2025-10-17 00:59:48","request_id":"req_68f195044832f9.12236576","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.26421284675598145,"level":"critical","message":"Uncaught Exception: Non-static method VIPaccess::sectionAccess() cannot be called statically in /srv/easystream/f_core/config.core.php on line 67","context":{"exception_class":"Error","file":"/srv/easystream/f_core/config.core.php","line":67,"trace":"#0 /srv/easystream/f_modules/m_backend/signin.php(19): include_once()\n#1 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#2 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 01:14:00","request_id":"req_68f198589688d6.06292107","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13562989234924316,"level":"critical","message":"Uncaught Exception: Non-static method VIPaccess::sectionAccess() cannot be called statically in /srv/easystream/f_core/config.core.php on line 67","context":{"exception_class":"Error","file":"/srv/easystream/f_core/config.core.php","line":67,"trace":"#0 /srv/easystream/f_modules/m_backend/signin.php(19): include_once()\n#1 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#2 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 01:16:18","request_id":"req_68f198e28ce5a0.09798233","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08846783638000488,"level":"critical","message":"Uncaught Exception: Non-static method VIPaccess::sectionAccess() cannot be called statically in /srv/easystream/f_core/config.core.php on line 67","context":{"exception_class":"Error","file":"/srv/easystream/f_core/config.core.php","line":67,"trace":"#0 /srv/easystream/f_modules/m_backend/signin.php(19): include_once()\n#1 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#2 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"critical","message":"Uncaught Exception: Invalid table or field name in /srv/easystream/f_core/f_classes/class.database.php on line 49","context":{"exception_class":"InvalidArgumentException","file":"/srv/easystream/f_core/f_classes/class.database.php","line":49,"trace":"#0 /srv/easystream/f_core/f_classes/class.ipaccess.php(57): VDatabase->singleFieldValue('db_banlist', 'ban_active', 'ban_ip', '172.18.0.1')\n#1 /srv/easystream/f_core/config.core.php(68): VIPaccess->sectionAccess('admin')\n#2 /srv/easystream/f_modules/m_backend/signin.php(19): include_once('/srv/easystream...')\n#3 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#4 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"critical","message":"Uncaught Exception: Invalid table or field name in /srv/easystream/f_core/f_classes/class.database.php on line 49","context":{"exception_class":"InvalidArgumentException","file":"/srv/easystream/f_core/f_classes/class.database.php","line":49,"trace":"#0 /srv/easystream/f_core/f_classes/class.ipaccess.php(57): VDatabase->singleFieldValue('db_banlist', 'ban_active', 'ban_ip', '172.18.0.1')\n#1 /srv/easystream/f_core/config.core.php(68): VIPaccess->sectionAccess('admin')\n#2 /srv/easystream/f_modules/m_backend/signin.php(19): include_once('/srv/easystream...')\n#3 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#4 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"critical","message":"Uncaught Exception: Invalid table or field name in /srv/easystream/f_core/f_classes/class.database.php on line 49","context":{"exception_class":"InvalidArgumentException","file":"/srv/easystream/f_core/f_classes/class.database.php","line":49,"trace":"#0 /srv/easystream/f_core/f_classes/class.ipaccess.php(57): VDatabase->singleFieldValue('db_banlist', 'ban_active', 'ban_ip', '172.18.0.1')\n#1 /srv/easystream/f_core/config.core.php(68): VIPaccess->sectionAccess('admin')\n#2 /srv/easystream/f_modules/m_backend/signin.php(19): include_once('/srv/easystream...')\n#3 /srv/easystream/f_modules/m_backend/parser.php(55): include('/srv/easystream...')\n#4 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}

View File

@@ -0,0 +1,3 @@
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"error","message":"Database Error: Invalid table or field name","context":{"query":"","parameters":["172.18.0.1"],"database_error":true},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":396,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":407,"function":"error","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.database.php","line":64,"function":"logDatabaseError","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":57,"function":"singleFieldValue","class":"VDatabase"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"error","message":"Database Error: Invalid table or field name","context":{"query":"","parameters":["172.18.0.1"],"database_error":true},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":396,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":407,"function":"error","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.database.php","line":64,"function":"logDatabaseError","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":57,"function":"singleFieldValue","class":"VDatabase"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"error","message":"Database Error: Invalid table or field name","context":{"query":"","parameters":["172.18.0.1"],"database_error":true},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":396,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":407,"function":"error","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.database.php","line":64,"function":"logDatabaseError","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":57,"function":"singleFieldValue","class":"VDatabase"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}

View File

@@ -0,0 +1,344 @@
{"timestamp":"2025-10-17 00:59:48","request_id":"req_68f195044832f9.12236576","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.26421284675598145,"level":"warning","message":"Warning: Undefined array key \"be_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined array key \"be_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:00:22","request_id":"req_68f1a336784f31.94733112","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.20923399925231934,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:02:28","request_id":"req_68f1a3b45f6cd4.31593597","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12064099311828613,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:19:06","request_id":"req_68f1a79a9f8fa0.92415446","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08164405822753906,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:33:04","request_id":"req_68f1aae048fab9.54250396","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08300399780273438,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 02:47:40","request_id":"req_68f1ae4c29e3b0.20624276","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08019208908081055,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:02","request_id":"req_68f1ba1ab85700.90601391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.28781604766845703,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:38:03","request_id":"req_68f1ba1b7cd732.77953391","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.04488015174865723,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa94fe671.03825696","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.08715200424194336,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:40:25","request_id":"req_68f1baa99a8911.41230214","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.010514974594116211,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1c79f809.38314502","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":4194304,"peak_memory":4194304,"execution_time":0.21745705604553223,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:20","request_id":"req_68f1bb1ce1abc3.25879790","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.05164790153503418,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 03:42:24","request_id":"req_68f1bb2049e243.47126442","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09018611907958984,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:30","request_id":"req_68f1c4c2b5ba94.70832959","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.13421392440795898,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:23:31","request_id":"req_68f1c4c33932c1.66764889","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.0060498714447021484,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-17 04:28:29","request_id":"req_68f1c5edf179c2.40627729","ip":"172.18.0.1","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:144.0) Gecko/20100101 Firefox/144.0","request_uri":"/admin/dashboard","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.09991598129272461,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}

View File

@@ -0,0 +1 @@
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"critical","message":"Uncaught Exception: Non-static method VLogin::checkBackend() cannot be called statically in /srv/easystream/f_modules/m_backend/dashboard.php on line 30","context":{"exception_class":"Error","file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":30,"trace":"#0 /srv/easystream/f_modules/m_backend/parser.php(55): include()\n#1 {main}","previous":null},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.logger.php","line":395,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":117,"function":"critical","class":"VLogger"},{"file":"unknown","line":0,"function":"handleException","class":"VErrorHandler"}]}

View File

@@ -0,0 +1,130 @@
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"be_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 05:04:50","request_id":"req_68f31ff23a2dd4.19913503","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.12729692459106445,"level":"warning","message":"Warning: Undefined array key \"http://localhost:8083/admin/dashboard\" in /srv/easystream/f_core/f_classes/class.redirect.php on line 78","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":27,"function":"movePage","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":48,"function":"to","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"be_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:04:58","request_id":"req_68f32e0a129008.45223823","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"HEAD","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.20831799507141113,"level":"warning","message":"Warning: Undefined array key \"http://localhost:8083/admin/dashboard\" in /srv/easystream/f_core/f_classes/class.redirect.php on line 78","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":27,"function":"movePage","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":48,"function":"to","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"be_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_backend/language.signin.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":22,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 31","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":31,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 38","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":38,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php on line 62","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signin.php","line":62,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 18","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":18,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 33","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":33,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.signup.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":26,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 23","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":23,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.recovery.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":27,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"setup_complete\" in /srv/easystream/f_modules/m_backend/signin.php on line 34","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":34,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"frontend_global_submit\" in /srv/easystream/f_modules/m_backend/signin.php on line 39","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":39,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"backend_remember\" in /srv/easystream/f_modules/m_backend/signin.php on line 44","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":44,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"ADMIN_NAME\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"backend_username\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"ADMIN_PASS\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"backend_password\" in /srv/easystream/f_modules/m_backend/signin.php on line 46","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":46,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"next\" in /srv/easystream/f_modules/m_backend/signin.php on line 47","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":47,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:05:25","request_id":"req_68f32e257e0059.38225082","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/admin","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.14044880867004395,"level":"warning","message":"Warning: Undefined array key \"http://localhost:8083/admin/dashboard\" in /srv/easystream/f_core/f_classes/class.redirect.php on line 78","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":78,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.redirect.php","line":27,"function":"movePage","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/signin.php","line":48,"function":"to","class":"VRedirect"},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 26","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":26,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"session_name\" in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: ini_set(): session.name &quot;&quot; cannot be numeric or empty in /srv/easystream/f_core/f_classes/class.session.php on line 40","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"unknown","line":0,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":40,"function":"ini_set","class":null},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"session_lifetime\" in /srv/easystream/f_core/f_classes/class.session.php on line 63","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":63,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"fe_lang\" in /srv/easystream/f_core/f_classes/class.session.php on line 83","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":83,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":50,"function":"_sessionInit","class":"VSession"},{"file":"/srv/easystream/f_core/config.core.php","line":61,"function":"init","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_offline_mode\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 51","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":51,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":51,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":141,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"getUserIP","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined property: VFilter::$_allowDOMEvents in /srv/easystream/f_core/f_classes/class.filter.php on line 212","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":212,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":318,"function":"removeEvilAttributes","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.filter.php","line":332,"function":"sanitize","class":"VFilter"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":56,"function":"clr_str","class":"VFilter"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Trying to access array offset on value of type bool in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 27","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":27,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":58,"function":"banIPrange_db","class":"VIPaccess"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 69","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":69,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"backend_ip_based_access\" in /srv/easystream/f_core/f_classes/class.ipaccess.php on line 70","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.ipaccess.php","line":70,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":68,"function":"sectionAccess","class":"VIPaccess"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"USER_ID\" in /srv/easystream/f_core/f_classes/class.session.php on line 139","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_core/f_classes/class.session.php","line":139,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_core/config.core.php","line":71,"function":"isLoggedIn","class":"VSession"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":19,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 199","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":199,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 204","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":204,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 205","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":205,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"custom_tagline\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 383","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":383,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 402","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":402,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php on line 465","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.global.php","line":465,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":24,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 133","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":133,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 142","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":142,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 239","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":239,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}
{"timestamp":"2025-10-18 06:08:46","request_id":"req_68f32eee8a2856.29695314","ip":"172.18.0.1","user_agent":"curl/8.14.1","request_uri":"/f_modules/m_backend/parser.php","request_method":"GET","user_id":null,"session_id":null,"memory_usage":2097152,"peak_memory":2097152,"execution_time":0.1381359100341797,"level":"warning","message":"Warning: Undefined array key \"website_shortname\" in /srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php on line 251","context":{"error_type":"Warning","severity":2,"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"context":[]},"backtrace":[{"file":"/srv/easystream/f_core/f_classes/class.errorhandler.php","line":95,"function":"log","class":"VLogger"},{"file":"/srv/easystream/f_data/data_languages/en_US/lang_frontend/language.account.php","line":251,"function":"handleError","class":"VErrorHandler"},{"file":"/srv/easystream/f_modules/m_backend/dashboard.php","line":25,"function":"include_once","class":null},{"file":"/srv/easystream/f_modules/m_backend/parser.php","line":55,"function":"include","class":null}]}

View File

@@ -0,0 +1,111 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
define('_ISVALID', true);
define('_ISADMIN', true);
include_once 'f_core/config.core.php';
include_once 'f_core/f_classes/class.conversion.php';
include_once $class_language->setLanguageFile('frontend', 'language.global');
include_once $class_language->setLanguageFile('frontend', 'language.files');
include_once $class_language->setLanguageFile('frontend', 'language.files.menu');
include_once $class_language->setLanguageFile('frontend', 'language.notifications');
include_once $class_language->setLanguageFile('frontend', 'language.upload');
include_once $class_language->setLanguageFile('frontend', 'language.account');
include_once $class_language->setLanguageFile('backend', 'language.files');
include_once $class_language->setLanguageFile('backend', 'language.advertising');
include_once $class_language->setLanguageFile('backend', 'language.import');
include_once $class_language->setLanguageFile('backend', 'language.settings.entries');
$error_message = null;
$notice_message = null;
$logged_in = VLogin::checkBackend(VHref::getKey("be_files"));
$cfg = $class_database->getConfigurations('video_file_types,video_player,image_player,audio_player,document_player,paid_memberships,file_counts,file_comments,channel_comments,file_comment_votes,file_responses,file_rating,file_favorites,file_deleting,file_delete_method,file_privacy,file_playlists,file_views,file_history,file_watchlist,file_embedding,file_social_sharing,message_count,server_path_php,thumbs_width,thumbs_height,file_comment_spam,conversion_live_previews,conversion_video_previews,conversion_audio_previews,conversion_image_previews,conversion_doc_previews,short_file_types');
if ($cfg["video_player"] == "jw" or $cfg["audio_player"] == "jw") {
$jw = $db->execute("SELECT `db_config` FROM `db_fileplayers` WHERE `db_name`='jw_local' LIMIT 1;");
$_jw = unserialize($jw->fields["db_config"]);
$smarty->assign('jw_license_key', $_jw["jw_license_key"]);
}
$files = new VFiles;
$menu_entry = ((isset($_GET["s"]) and $_GET["s"] !== '1') and $_GET["do"] != 'ad-update' and $_GET["do"] != 'find' and $_GET["do"] != 'new-broadcast' and $_GET["do"] != 'new-blog' and $_GET["do"] != 'new-blog-autocomplete' and $_GET["do"] != 'blogload' and $_GET["do"] != 'blogsave' and $_GET["do"] != 'insert' and $_GET["do"] != 'autocomplete' and $_GET["do"] != 'server-paths' and $_GET["do"] != 'subs-update' and $_GET["do"] != 'banner-update' and $_GET["do"] != 'manage-ads' and $_GET["do"] != 'manage-subs' and $_GET["do"] != 'manage-banners' and $_GET["do"] != 'sub-mail' and $_GET["do"] != 'confirm-approve' and $_GET["do"] != 'new-upload' and $_GET["do"] != 'thumb-reset' and $_GET["do"] != 'preview-reset') ? VMenuparse::sectionDisplay('backend', $class_filter->clr_str($_GET["s"])) : null;
switch ($_GET["do"]) {
case "sub-mail":
echo $ht = VbeFiles::subscriptionMailer();
break;
case "confirm-approve":
echo $ht = VbeFiles::confirmApprove();
break;
case "thumb-reset":
echo $ht = VbeFiles::thumbReset($class_filter->clr_str($_GET["f"]));
break;
case "preview-reset":
echo $ht = VbeFiles::thumbReset($class_filter->clr_str($_GET["f"]), 2);
break;
case "manage-ads":
echo $ht = $cfg["video_player"] == 'vjs' ? VbeFiles::VJSadsManager($class_filter->clr_str($_GET["file_key"])) : ($cfg["video_player"] == 'jw' ? VbeFiles::JWadsManager($class_filter->clr_str($_GET["file_key"])) : VbeFiles::FPadsManager($class_filter->clr_str($_GET["file_key"])));
break;
case "manage-subs":
echo $ht = VbeFiles::subsManager($class_filter->clr_str($_GET["file_key"]));
break;
case "manage-banners":
echo $ht = VbeFiles::bannerManager($class_filter->clr_str($_GET["file_key"]));
break;
case "ad-update":
echo $ht = VbeFiles::adUpdate($class_filter->clr_str($_GET["file_key"]));
break;
case "subs-update":
echo $ht = VbeFiles::subsUpdate($class_filter->clr_str($_GET["file_key"]));
break;
case "banner-update":
echo $ht = VbeFiles::adUpdate($class_filter->clr_str($_GET["file_key"]), 1);
break;
case "server-paths":
echo $ht = VbeFiles::serverPaths();
break;
case "conversion-log":
echo $ht = VbeFiles::conversionLog();
break;
case "autocomplete":
$html = VGenerate::processAutoComplete('files');
break;
case "insert": //insert media into blog
VbeFiles::blog_insertMedia();
break;
case "find": //find media for inserting into blog
VbeFiles::blog_findMedia();
break;
case "blogload": //load blog html content
VbeFiles::blog_loadContent();
break;
case "blogsave": // save blog html content
VbeFiles::blog_saveContent();
break;
case "new-blog": //add new blog
case "new-broadcast": //add new broadcast
VbeFiles::newBlog();
break;
case "new-blog-autocomplete": //add new blog, autocomplete
VGenerate::processAutoComplete('new_blog');
break;
}
$player_entry = ($_GET["p"] != '') ? VbeFiles::playerLoader() : null;
$page = ($_GET["s"] == '' and $_GET["p"] == '' and $_GET["do"] != 'insert' and $_GET["do"] != 'find' and $_GET["do"] != 'new-broadcast' and $_GET["do"] != 'new-blog' and $_GET["do"] != 'new-blog-autocomplete' and $_GET["do"] != 'blogload' and $_GET["do"] != 'blogsave' and $_GET["do"] != 'autocomplete' and $_GET["do"] != 'server-paths' and $_GET["do"] != 'conversion-log' and $_GET["do"] != 'ad-update' and $_GET["do"] != 'subs-update' and $_GET["do"] != 'banner-update' and $_GET["do"] != 'manage-subs' and $_GET["do"] != 'manage-banners' and $_GET["do"] != 'manage-ads' and $_GET["do"] != 'sub-mail' and $_GET["do"] != 'confirm-approve' and $_GET["do"] != 'thumb-reset' and $_GET["do"] != 'preview-reset') ? $class_smarty->displayPage('backend', 'backend_tpl_files', $error_message, $notice_message) : null;

View File

@@ -0,0 +1,121 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
define('_ISVALID', true);
define('_ISADMIN', true);
set_time_limit(0);
$main_dir = realpath(dirname(__FILE__) . '/../../');
set_include_path($main_dir);
include_once 'f_core/config.core.php';
include_once 'f_core/f_classes/class.conversion.php';
include_once $class_language->setLanguageFile('frontend', 'language.global');
$error_message = null;
$notice_message = null;
if (isset($_SERVER['argv'][1]) and isset($_SERVER['argv'][2])) {
$pcfg = $class_database->getConfigurations('thumbs_nr,log_video_conversion,thumbs_method,thumbs_width,thumbs_height,server_path_php');
$cfg["thumbs_method"] = 'rand';
$type = 'video';
$user_id = null;
$is_short = false;
$video_id = $class_filter->clr_str($_SERVER['argv'][1]);
$user_key = $class_filter->clr_str($_SERVER['argv'][2]);
$preview_reset = (int) $_SERVER['argv'][3];
$user_id = $class_database->singleFieldValue('db_videofiles', 'usr_id', 'file_key', $video_id);
if ($user_id) {
$type = 'video';
} else {
$user_id = $class_database->singleFieldValue('db_shortfiles', 'usr_id', 'file_key', $video_id);
if ($user_id) {
$type = 'short';
$is_short = true;
}
}
if (!$user_id) {
exit;
}
if ($user_key == '') {
$user_key = $class_database->singleFieldValue('db_accountuser', 'usr_key', 'usr_id', $user_id);
}
$vid = md5($cfg["global_salt_key"] . $video_id);
$file_name_360p = $vid . '.360p.mp4';
$file_name_480p = $vid . '.480p.mp4';
$file_name_720p = $vid . '.720p.mp4';
$file_name_short = $vid . '.short.mp4';
$src_folder = $cfg["media_files_dir"] . '/' . $user_key . '/v/';
$src_360p = $src_folder . $file_name_360p;
$src_480p = $src_folder . $file_name_480p;
$src_720p = $src_folder . $file_name_720p;
$src_short = $src_folder . $file_name_short;
$src = is_file($src_720p) ? $src_720p : (is_file($src_480p) ? $src_480p : (is_file($src_360p) ? $src_360p : false));
$src = ($is_short and is_file($src_short)) ? $src_short : $src;
if ($src && is_file($src)) {
$li = "---------------------------------------------";
$ls = "\n\n" . $li . "\n";
$le = "\n" . $li . "\n";
$conv = new VVideo();
//$conv->log_setup($video_id, ($pcfg["log_video_conversion"] == 1 ? TRUE : FALSE));
$conv->log_setup($video_id, false);
if ($conv->load($src)) {
if ($preview_reset == 0) {
$tcache = $class_database->singleFieldValue('db_' . $type . 'files', 'thumb_cache', 'file_key', $video_id);
$db->execute(sprintf("UPDATE `db_%sfiles` SET `thumb_cache`=`thumb_cache`+1 WHERE `file_key`='%s' LIMIT 1;", $type, $video_id));
if ($db->Affected_Rows()) {
$old_index = $tcache;
$old_index = $old_index > 1 ? $old_index : null;
$old_file_0 = $cfg["media_files_dir"] . '/' . $user_key . '/t/' . $video_id . '/0' . $old_index . '.jpg';
$old_file_1 = $cfg["media_files_dir"] . '/' . $user_key . '/t/' . $video_id . '/1' . $old_index . '.jpg';
$old_file_2 = $cfg["media_files_dir"] . '/' . $user_key . '/t/' . $video_id . '/2' . $old_index . '.jpg';
$old_file_3 = $cfg["media_files_dir"] . '/' . $user_key . '/t/' . $video_id . '/3' . $old_index . '.jpg';
if (is_file($old_file_0)) {unlink($old_file_0);}
if (is_file($old_file_1)) {unlink($old_file_1);}
if (is_file($old_file_2)) {unlink($old_file_2);}
if (is_file($old_file_3)) {unlink($old_file_3);}
}
$fn = !$is_short ? 'extract_thumbs' : 'extract_thumbs_short';
$conv->log($ls . 'Extracting large thumbnail (640x360)' . $le);
$thumbs = $conv->$fn(array($src, 'thumb'), $video_id, $user_key);
$conv->log($ls . 'Extracting smaller thumbnails (' . $pcfg["thumbs_width"] . 'x' . $pcfg["thumbs_height"] . ')' . $le);
$thumbs = $conv->$fn($src, $video_id, $user_key);
$conv->log($ls . 'Extracting preview thumbnails (' . $pcfg["thumbs_width"] . 'x' . $pcfg["thumbs_height"] . ')' . $le);
$fn = !$is_short ? 'extract_preview_thumbs' : 'extract_preview_thumbs_short';
$thumbs = $conv->$fn($src, $video_id, $user_key);
} elseif ($preview_reset == 2) {
$conv->log($ls . 'Extracting video preview thumbnails (' . $pcfg["thumbs_width"] . 'x' . $pcfg["thumbs_height"] . ')' . $le);
$fn = !$is_short ? 'extract_preview_thumbs' : 'extract_preview_thumbs_short';
$thumbs = $conv->$fn($src, $video_id, $user_key, 2);
}
if (is_file($cfg["media_files_dir"] . "/" . $user_key . "/v/" . md5($video_id . "_preview") . ".mp4")) {
$db->execute(sprintf("UPDATE `db_videofiles` SET `thumb_preview`='1' WHERE `file_key`='%s' LIMIT 1;", $video_id));
}
}
}
}

View File

@@ -0,0 +1,405 @@
<?php
/*******************************************************************************************************************
| Fingerprint Management Backend Interface
|*******************************************************************************************************************/
define('_ISVALID', true);
include_once '../../f_core/config.core.php';
// Check admin access
if (!isset($_SESSION['ADMIN_NAME'])) {
header('Location: /error');
exit;
}
$action = VSecurity::getParam('action', 'alpha');
$fingerprint = VSecurity::getParam('fingerprint', 'string');
// Handle actions
if ($_SERVER['REQUEST_METHOD'] === 'POST' && VSecurity::validateCSRFFromPost('fingerprint_management')) {
switch ($action) {
case 'ban':
$reason = VSecurity::postParam('reason', 'string', 'Manual ban');
$duration = VSecurity::postParam('duration', 'int', 0);
if (VFingerprint::banFingerprint($fingerprint, $reason, $duration, $_SESSION['ADMIN_NAME'])) {
$success_message = "Fingerprint has been banned successfully.";
VIPTracker::logActivity('fingerprint_banned', ['fingerprint' => substr($fingerprint, 0, 16) . '...', 'reason' => $reason]);
} else {
$error_message = "Failed to ban fingerprint.";
}
break;
case 'unban':
if (VFingerprint::unbanFingerprint($fingerprint)) {
$success_message = "Fingerprint has been unbanned successfully.";
VIPTracker::logActivity('fingerprint_unbanned', ['fingerprint' => substr($fingerprint, 0, 16) . '...']);
} else {
$error_message = "Failed to unban fingerprint.";
}
break;
}
}
// Get fingerprint statistics if fingerprint is provided
$fingerprint_stats = null;
$threat_info = null;
$ban_info = null;
if ($fingerprint && strlen($fingerprint) === 64) {
$fingerprint_stats = VFingerprint::getFingerprintStats($fingerprint);
$threat_info = VFingerprint::detectFingerprintThreats($fingerprint);
$ban_info = VFingerprint::isBanned($fingerprint);
}
// Get recent fingerprints
global $db;
$recent_fingerprints = [];
try {
$sql = "SELECT fingerprint_hash, first_seen, last_seen, visit_count, last_ip, last_user_id, user_agent
FROM db_fingerprints
ORDER BY last_seen DESC
LIMIT 20";
$result = $db->Execute($sql);
while ($result && !$result->EOF) {
$recent_fingerprints[] = [
'fingerprint' => $result->fields['fingerprint_hash'],
'first_seen' => $result->fields['first_seen'],
'last_seen' => $result->fields['last_seen'],
'visit_count' => $result->fields['visit_count'],
'last_ip' => $result->fields['last_ip'],
'last_user_id' => $result->fields['last_user_id'],
'user_agent' => $result->fields['user_agent']
];
$result->MoveNext();
}
} catch (Exception $e) {
// Handle error
}
// Get current fingerprint bans
$current_bans = [];
try {
$sql = "SELECT fingerprint_hash, ban_reason, ban_date, ban_expires, banned_by
FROM db_fingerprint_bans
WHERE ban_active = 1
ORDER BY ban_date DESC
LIMIT 50";
$result = $db->Execute($sql);
while ($result && !$result->EOF) {
$current_bans[] = [
'fingerprint' => $result->fields['fingerprint_hash'],
'reason' => $result->fields['ban_reason'],
'ban_date' => $result->fields['ban_date'],
'expires' => $result->fields['ban_expires'],
'banned_by' => $result->fields['banned_by']
];
$result->MoveNext();
}
} catch (Exception $e) {
// Handle error
}
// Get suspicious fingerprints
$suspicious_fingerprints = [];
try {
$sql = "SELECT fingerprint_hash, visit_count, last_seen, last_ip, user_agent
FROM db_fingerprints
WHERE visit_count > 100 OR
(TIMESTAMPDIFF(HOUR, first_seen, last_seen) > 0 AND
(visit_count / TIMESTAMPDIFF(HOUR, first_seen, last_seen)) > 50)
ORDER BY visit_count DESC
LIMIT 20";
$result = $db->Execute($sql);
while ($result && !$result->EOF) {
$fp = $result->fields['fingerprint_hash'];
$threats = VFingerprint::detectFingerprintThreats($fp);
$suspicious_fingerprints[] = [
'fingerprint' => $fp,
'visit_count' => $result->fields['visit_count'],
'last_seen' => $result->fields['last_seen'],
'last_ip' => $result->fields['last_ip'],
'user_agent' => $result->fields['user_agent'],
'threat_level' => $threats['risk_assessment'],
'threats' => $threats['threats']
];
$result->MoveNext();
}
} catch (Exception $e) {
// Handle error
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Fingerprint Management - EasyStream Admin</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.container { max-width: 1400px; margin: 0 auto; }
.section { margin-bottom: 30px; padding: 20px; border: 1px solid #ddd; border-radius: 5px; }
.form-group { margin-bottom: 15px; }
.form-group label { display: block; margin-bottom: 5px; font-weight: bold; }
.form-group input, .form-group select, .form-group textarea {
width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 3px;
}
.btn { padding: 10px 20px; background: #007cba; color: white; border: none; border-radius: 3px; cursor: pointer; }
.btn:hover { background: #005a87; }
.btn-danger { background: #dc3545; }
.btn-danger:hover { background: #c82333; }
.btn-success { background: #28a745; }
.btn-success:hover { background: #218838; }
.btn-small { padding: 5px 10px; font-size: 12px; }
.alert { padding: 15px; margin-bottom: 20px; border-radius: 4px; }
.alert-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.alert-danger { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }
.stat-card { background: #f8f9fa; padding: 15px; border-radius: 5px; text-align: center; }
.threat-high { color: #dc3545; font-weight: bold; }
.threat-medium { color: #fd7e14; font-weight: bold; }
.threat-low { color: #ffc107; }
.threat-none { color: #28a745; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; font-size: 12px; }
th { background: #f8f9fa; }
.fingerprint-hash { font-family: monospace; font-size: 11px; }
.fingerprint-link { color: #007cba; text-decoration: none; }
.fingerprint-link:hover { text-decoration: underline; }
.user-agent { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.threats-list { font-size: 11px; color: #666; }
</style>
</head>
<body>
<div class="container">
<h1>Browser Fingerprint Management</h1>
<?php if (isset($success_message)): ?>
<div class="alert alert-success"><?= secure_output($success_message) ?></div>
<?php endif; ?>
<?php if (isset($error_message)): ?>
<div class="alert alert-danger"><?= secure_output($error_message) ?></div>
<?php endif; ?>
<!-- Fingerprint Lookup Section -->
<div class="section">
<h2>Fingerprint Lookup</h2>
<form method="GET">
<div class="form-group">
<label>Fingerprint Hash:</label>
<input type="text" name="fingerprint" value="<?= secure_output($fingerprint ?? '') ?>" placeholder="Enter 64-character fingerprint hash">
</div>
<button type="submit" class="btn">Lookup Fingerprint</button>
</form>
<?php if ($fingerprint_stats): ?>
<h3>Statistics for Fingerprint</h3>
<p class="fingerprint-hash"><?= secure_output($fingerprint) ?></p>
<div class="stats-grid">
<div class="stat-card">
<h4>Total Visits</h4>
<p><?= $fingerprint_stats['visit_count'] ?></p>
</div>
<div class="stat-card">
<h4>First Seen</h4>
<p><?= secure_output($fingerprint_stats['first_seen']) ?></p>
</div>
<div class="stat-card">
<h4>Last Seen</h4>
<p><?= secure_output($fingerprint_stats['last_seen']) ?></p>
</div>
<div class="stat-card">
<h4>Last IP</h4>
<p><?= secure_output($fingerprint_stats['last_ip']) ?></p>
</div>
</div>
<div class="form-group">
<label>User Agent:</label>
<textarea readonly><?= secure_output($fingerprint_stats['user_agent']) ?></textarea>
</div>
<?php if ($threat_info): ?>
<h4>Threat Assessment</h4>
<p>Risk Level: <span class="threat-<?= strtolower($threat_info['risk_assessment']) ?>"><?= $threat_info['risk_assessment'] ?></span></p>
<?php if (!empty($threat_info['threats'])): ?>
<ul>
<?php foreach ($threat_info['threats'] as $threat): ?>
<li><?= secure_output($threat) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endif; ?>
<?php if ($ban_info): ?>
<div class="alert alert-danger">
<strong>This fingerprint is currently banned!</strong><br>
Reason: <?= secure_output($ban_info['reason']) ?><br>
Banned on: <?= secure_output($ban_info['ban_date']) ?><br>
<?php if ($ban_info['expires']): ?>
Expires: <?= secure_output($ban_info['expires']) ?><br>
<?php else: ?>
Permanent ban<br>
<?php endif; ?>
Banned by: <?= secure_output($ban_info['banned_by']) ?>
</div>
<form method="POST" style="display: inline;">
<?= csrf_field('fingerprint_management') ?>
<input type="hidden" name="action" value="unban">
<input type="hidden" name="fingerprint" value="<?= secure_output($fingerprint) ?>">
<button type="submit" class="btn btn-success">Unban Fingerprint</button>
</form>
<?php else: ?>
<h4>Ban Fingerprint</h4>
<form method="POST">
<?= csrf_field('fingerprint_management') ?>
<input type="hidden" name="action" value="ban">
<input type="hidden" name="fingerprint" value="<?= secure_output($fingerprint) ?>">
<div class="form-group">
<label>Reason:</label>
<textarea name="reason" placeholder="Enter reason for ban"></textarea>
</div>
<div class="form-group">
<label>Duration (hours, 0 = permanent):</label>
<input type="number" name="duration" value="48" min="0">
</div>
<button type="submit" class="btn btn-danger">Ban Fingerprint</button>
</form>
<?php endif; ?>
<?php endif; ?>
</div>
<!-- Suspicious Fingerprints -->
<div class="section">
<h2>Suspicious Fingerprints</h2>
<table>
<thead>
<tr>
<th>Fingerprint</th>
<th>Visits</th>
<th>Last Seen</th>
<th>Last IP</th>
<th>Threat Level</th>
<th>Threats</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($suspicious_fingerprints as $fp): ?>
<tr>
<td>
<a href="?fingerprint=<?= urlencode($fp['fingerprint']) ?>" class="fingerprint-link">
<span class="fingerprint-hash"><?= substr($fp['fingerprint'], 0, 16) ?>...</span>
</a>
</td>
<td><?= $fp['visit_count'] ?></td>
<td><?= secure_output($fp['last_seen']) ?></td>
<td><?= secure_output($fp['last_ip']) ?></td>
<td><span class="threat-<?= strtolower($fp['threat_level']) ?>"><?= $fp['threat_level'] ?></span></td>
<td class="threats-list">
<?php if (!empty($fp['threats'])): ?>
<?= secure_output(implode('; ', array_slice($fp['threats'], 0, 2))) ?>
<?php if (count($fp['threats']) > 2): ?>...<?php endif; ?>
<?php endif; ?>
</td>
<td>
<a href="?fingerprint=<?= urlencode($fp['fingerprint']) ?>" class="btn btn-small">View</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<!-- Recent Fingerprints -->
<div class="section">
<h2>Recent Fingerprints</h2>
<table>
<thead>
<tr>
<th>Fingerprint</th>
<th>First Seen</th>
<th>Last Seen</th>
<th>Visits</th>
<th>Last IP</th>
<th>User ID</th>
<th>User Agent</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($recent_fingerprints as $fp): ?>
<tr>
<td>
<a href="?fingerprint=<?= urlencode($fp['fingerprint']) ?>" class="fingerprint-link">
<span class="fingerprint-hash"><?= substr($fp['fingerprint'], 0, 16) ?>...</span>
</a>
</td>
<td><?= secure_output($fp['first_seen']) ?></td>
<td><?= secure_output($fp['last_seen']) ?></td>
<td><?= $fp['visit_count'] ?></td>
<td><?= secure_output($fp['last_ip']) ?></td>
<td><?= $fp['last_user_id'] ?: 'Guest' ?></td>
<td class="user-agent" title="<?= secure_output($fp['user_agent']) ?>">
<?= secure_output(substr($fp['user_agent'], 0, 50)) ?>...
</td>
<td>
<a href="?fingerprint=<?= urlencode($fp['fingerprint']) ?>" class="btn btn-small">View</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<!-- Current Fingerprint Bans -->
<div class="section">
<h2>Current Fingerprint Bans</h2>
<table>
<thead>
<tr>
<th>Fingerprint</th>
<th>Reason</th>
<th>Banned Date</th>
<th>Expires</th>
<th>Banned By</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($current_bans as $ban): ?>
<tr>
<td>
<a href="?fingerprint=<?= urlencode($ban['fingerprint']) ?>" class="fingerprint-link">
<span class="fingerprint-hash"><?= substr($ban['fingerprint'], 0, 16) ?>...</span>
</a>
</td>
<td><?= secure_output($ban['reason']) ?></td>
<td><?= secure_output($ban['ban_date']) ?></td>
<td><?= $ban['expires'] ? secure_output($ban['expires']) : 'Permanent' ?></td>
<td><?= secure_output($ban['banned_by']) ?></td>
<td>
<form method="POST" style="display: inline;">
<?= csrf_field('fingerprint_management') ?>
<input type="hidden" name="action" value="unban">
<input type="hidden" name="fingerprint" value="<?= secure_output($ban['fingerprint']) ?>">
<button type="submit" class="btn btn-success btn-small">Unban</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,312 @@
<?php
/*******************************************************************************************************************
| IP Management Backend Interface
|*******************************************************************************************************************/
define('_ISVALID', true);
include_once '../../f_core/config.core.php';
// Check admin access
if (!isset($_SESSION['ADMIN_NAME'])) {
header('Location: /error');
exit;
}
$action = VSecurity::getParam('action', 'alpha');
$ip = VSecurity::getParam('ip', 'string');
// Handle actions
if ($_SERVER['REQUEST_METHOD'] === 'POST' && VSecurity::validateCSRFFromPost('ip_management')) {
switch ($action) {
case 'ban':
$reason = VSecurity::postParam('reason', 'string', 'Manual ban');
$duration = VSecurity::postParam('duration', 'int', 0);
if (VIPTracker::banIP($ip, $reason, $duration, $_SESSION['ADMIN_NAME'])) {
$success_message = "IP {$ip} has been banned successfully.";
VIPTracker::logActivity('ip_banned', ['ip' => $ip, 'reason' => $reason]);
} else {
$error_message = "Failed to ban IP {$ip}.";
}
break;
case 'unban':
if (VIPTracker::unbanIP($ip)) {
$success_message = "IP {$ip} has been unbanned successfully.";
VIPTracker::logActivity('ip_unbanned', ['ip' => $ip]);
} else {
$error_message = "Failed to unban IP {$ip}.";
}
break;
}
}
// Get IP statistics if IP is provided
$ip_stats = null;
$threat_info = null;
$ban_info = null;
if ($ip && filter_var($ip, FILTER_VALIDATE_IP)) {
$ip_stats = VIPTracker::getIPStats($ip, 24);
$threat_info = VIPTracker::detectThreats($ip);
$ban_info = VIPTracker::isBanned($ip);
}
// Get recent activity
global $db;
$recent_activity = [];
try {
$sql = "SELECT ip_address, action, COUNT(*) as count, MAX(timestamp) as last_seen
FROM db_ip_tracking
WHERE timestamp >= DATE_SUB(NOW(), INTERVAL 1 HOUR)
GROUP BY ip_address, action
ORDER BY count DESC, last_seen DESC
LIMIT 20";
$result = $db->Execute($sql);
while ($result && !$result->EOF) {
$recent_activity[] = [
'ip' => $result->fields['ip_address'],
'action' => $result->fields['action'],
'count' => $result->fields['count'],
'last_seen' => $result->fields['last_seen']
];
$result->MoveNext();
}
} catch (Exception $e) {
// Handle error
}
// Get current bans
$current_bans = [];
try {
$sql = "SELECT ban_ip, ban_reason, ban_date, ban_expires, banned_by
FROM db_banlist
WHERE ban_active = 1
ORDER BY ban_date DESC
LIMIT 50";
$result = $db->Execute($sql);
while ($result && !$result->EOF) {
$current_bans[] = [
'ip' => $result->fields['ban_ip'],
'reason' => $result->fields['ban_reason'],
'ban_date' => $result->fields['ban_date'],
'expires' => $result->fields['ban_expires'],
'banned_by' => $result->fields['banned_by']
];
$result->MoveNext();
}
} catch (Exception $e) {
// Handle error
}
?>
<!DOCTYPE html>
<html>
<head>
<title>IP Management - EasyStream Admin</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.container { max-width: 1200px; margin: 0 auto; }
.section { margin-bottom: 30px; padding: 20px; border: 1px solid #ddd; border-radius: 5px; }
.form-group { margin-bottom: 15px; }
.form-group label { display: block; margin-bottom: 5px; font-weight: bold; }
.form-group input, .form-group select, .form-group textarea {
width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 3px;
}
.btn { padding: 10px 20px; background: #007cba; color: white; border: none; border-radius: 3px; cursor: pointer; }
.btn:hover { background: #005a87; }
.btn-danger { background: #dc3545; }
.btn-danger:hover { background: #c82333; }
.btn-success { background: #28a745; }
.btn-success:hover { background: #218838; }
.alert { padding: 15px; margin-bottom: 20px; border-radius: 4px; }
.alert-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.alert-danger { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }
.stat-card { background: #f8f9fa; padding: 15px; border-radius: 5px; text-align: center; }
.threat-high { color: #dc3545; font-weight: bold; }
.threat-medium { color: #fd7e14; font-weight: bold; }
.threat-low { color: #ffc107; }
.threat-none { color: #28a745; }
table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
th { background: #f8f9fa; }
.ip-link { color: #007cba; text-decoration: none; }
.ip-link:hover { text-decoration: underline; }
</style>
</head>
<body>
<div class="container">
<h1>IP Management System</h1>
<?php if (isset($success_message)): ?>
<div class="alert alert-success"><?= secure_output($success_message) ?></div>
<?php endif; ?>
<?php if (isset($error_message)): ?>
<div class="alert alert-danger"><?= secure_output($error_message) ?></div>
<?php endif; ?>
<!-- IP Lookup Section -->
<div class="section">
<h2>IP Address Lookup</h2>
<form method="GET">
<div class="form-group">
<label>IP Address:</label>
<input type="text" name="ip" value="<?= secure_output($ip ?? '') ?>" placeholder="Enter IP address (e.g., 192.168.1.1)">
</div>
<button type="submit" class="btn">Lookup IP</button>
</form>
<?php if ($ip_stats): ?>
<h3>Statistics for <?= secure_output($ip) ?></h3>
<div class="stats-grid">
<div class="stat-card">
<h4>Total Requests (24h)</h4>
<p><?= $ip_stats['total_requests'] ?></p>
</div>
<div class="stat-card">
<h4>Unique Actions</h4>
<p><?= $ip_stats['unique_actions'] ?></p>
</div>
<div class="stat-card">
<h4>First Seen</h4>
<p><?= secure_output($ip_stats['first_seen'] ?? 'Never') ?></p>
</div>
<div class="stat-card">
<h4>Last Seen</h4>
<p><?= secure_output($ip_stats['last_seen'] ?? 'Never') ?></p>
</div>
</div>
<?php if ($threat_info): ?>
<h4>Threat Assessment</h4>
<p>Risk Level: <span class="threat-<?= strtolower($threat_info['risk_assessment']) ?>"><?= $threat_info['risk_assessment'] ?></span></p>
<?php if (!empty($threat_info['threats'])): ?>
<ul>
<?php foreach ($threat_info['threats'] as $threat): ?>
<li><?= secure_output($threat) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endif; ?>
<?php if ($ban_info): ?>
<div class="alert alert-danger">
<strong>This IP is currently banned!</strong><br>
Reason: <?= secure_output($ban_info['reason']) ?><br>
Banned on: <?= secure_output($ban_info['ban_date']) ?><br>
<?php if ($ban_info['expires']): ?>
Expires: <?= secure_output($ban_info['expires']) ?><br>
<?php else: ?>
Permanent ban<br>
<?php endif; ?>
Banned by: <?= secure_output($ban_info['banned_by']) ?>
</div>
<form method="POST" style="display: inline;">
<?= csrf_field('ip_management') ?>
<input type="hidden" name="action" value="unban">
<input type="hidden" name="ip" value="<?= secure_output($ip) ?>">
<button type="submit" class="btn btn-success">Unban IP</button>
</form>
<?php else: ?>
<h4>Ban IP Address</h4>
<form method="POST">
<?= csrf_field('ip_management') ?>
<input type="hidden" name="action" value="ban">
<input type="hidden" name="ip" value="<?= secure_output($ip) ?>">
<div class="form-group">
<label>Reason:</label>
<textarea name="reason" placeholder="Enter reason for ban"></textarea>
</div>
<div class="form-group">
<label>Duration (hours, 0 = permanent):</label>
<input type="number" name="duration" value="24" min="0">
</div>
<button type="submit" class="btn btn-danger">Ban IP</button>
</form>
<?php endif; ?>
<?php endif; ?>
</div>
<!-- Recent Activity -->
<div class="section">
<h2>Recent Activity (Last Hour)</h2>
<table>
<thead>
<tr>
<th>IP Address</th>
<th>Action</th>
<th>Count</th>
<th>Last Seen</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($recent_activity as $activity): ?>
<tr>
<td>
<a href="?ip=<?= urlencode($activity['ip']) ?>" class="ip-link">
<?= secure_output($activity['ip']) ?>
</a>
</td>
<td><?= secure_output($activity['action']) ?></td>
<td><?= $activity['count'] ?></td>
<td><?= secure_output($activity['last_seen']) ?></td>
<td>
<a href="?ip=<?= urlencode($activity['ip']) ?>" class="btn" style="padding: 5px 10px; font-size: 12px;">View</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<!-- Current Bans -->
<div class="section">
<h2>Current IP Bans</h2>
<table>
<thead>
<tr>
<th>IP Address</th>
<th>Reason</th>
<th>Banned Date</th>
<th>Expires</th>
<th>Banned By</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach ($current_bans as $ban): ?>
<tr>
<td>
<a href="?ip=<?= urlencode($ban['ip']) ?>" class="ip-link">
<?= secure_output($ban['ip']) ?>
</a>
</td>
<td><?= secure_output($ban['reason']) ?></td>
<td><?= secure_output($ban['ban_date']) ?></td>
<td><?= $ban['expires'] ? secure_output($ban['expires']) : 'Permanent' ?></td>
<td><?= secure_output($ban['banned_by']) ?></td>
<td>
<form method="POST" style="display: inline;">
<?= csrf_field('ip_management') ?>
<input type="hidden" name="action" value="unban">
<input type="hidden" name="ip" value="<?= secure_output($ban['ip']) ?>">
<button type="submit" class="btn btn-success" style="padding: 5px 10px; font-size: 12px;">Unban</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,237 @@
<?php
/*******************************************************************************************************************
| Software Name : EasyStream
| Software Description : High End YouTube Clone Script with Videos, Shorts, Streams, Images, Audio, Documents, Blogs
| Software Author : (c) Sami Ahmed
|*******************************************************************************************************************
|
|*******************************************************************************************************************
| This source file is subject to the EasyStream Proprietary License Agreement.
|
| By using this software, you acknowledge having read this Agreement and agree to be bound thereby.
|*******************************************************************************************************************
| Copyright (c) 2025 Sami Ahmed. All rights reserved.
|*******************************************************************************************************************/
define('_ISVALID', true);
include_once '../../f_core/config.core.php';
// Check admin access
if (!VSession::isLoggedIn() || !VLogin::checkBackendAccess()) {
header('Location: /error');
exit;
}
$logger = VLogger::getInstance();
// Handle AJAX requests
if (isset($_GET['action'])) {
header('Content-Type: application/json');
switch ($_GET['action']) {
case 'get_logs':
$level = VSecurity::getParam('level', 'alpha');
$limit = VSecurity::getParam('limit', 'int', 100, ['min' => 1, 'max' => 1000]);
$page = VSecurity::getParam('page', 'int', 1, ['min' => 1]);
$q = VSecurity::getParam('q', 'string', '');
$since = VSecurity::getParam('since', 'string', ''); // ISO datetime or date
$offset = ($page - 1) * $limit;
$logs = $logger->getRecentLogs($level, $limit, $offset);
// Optional filtering by keyword and since timestamp
if ($q !== '') {
$qq = strtolower($q);
$logs = array_values(array_filter($logs, function($row) use ($qq) {
$hay = strtolower(($row['message'] ?? '') . ' ' . json_encode($row['context'] ?? []));
return strpos($hay, $qq) !== false || ($row['request_id'] ?? '') === $qq;
}));
}
if ($since !== '') {
$sinceTs = strtotime($since);
if ($sinceTs !== false) {
$logs = array_values(array_filter($logs, function($row) use ($sinceTs) {
$ts = strtotime($row['timestamp'] ?? '');
return $ts !== false && $ts >= $sinceTs;
}));
}
}
echo json_encode($logs);
break;
case 'clear_logs':
if (VSecurity::validateCSRFFromPost('clear_logs')) {
$logFiles = glob('f_data/logs/*.log*');
foreach ($logFiles as $file) {
unlink($file);
}
echo json_encode(['success' => true, 'message' => 'Logs cleared successfully']);
} else {
echo json_encode(['success' => false, 'message' => 'Invalid CSRF token']);
}
break;
}
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Log Viewer - EasyStream Admin</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; background: #f5f5f5; }
.container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; }
.controls { margin-bottom: 20px; padding: 15px; background: #f8f9fa; border-radius: 4px; }
.controls select, .controls button { margin-right: 10px; padding: 8px 12px; }
.log-entry { margin-bottom: 15px; padding: 15px; border-left: 4px solid #ddd; background: #fafafa; }
.log-entry.error { border-left-color: #f44336; }
.log-entry.warning { border-left-color: #ff9800; }
.log-entry.info { border-left-color: #2196f3; }
.log-entry.debug { border-left-color: #9e9e9e; }
.log-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.log-level { padding: 2px 8px; border-radius: 3px; color: white; font-size: 12px; font-weight: bold; }
.log-level.error { background: #f44336; }
.log-level.warning { background: #ff9800; }
.log-level.info { background: #2196f3; }
.log-level.debug { background: #9e9e9e; }
.log-message { font-weight: bold; margin-bottom: 10px; }
.log-details { font-size: 12px; color: #666; }
.log-context { background: #f0f0f0; padding: 10px; margin-top: 10px; border-radius: 4px; font-family: monospace; font-size: 11px; }
.loading { text-align: center; padding: 20px; }
.btn { background: #1976d2; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; }
.btn:hover { background: #1565c0; }
.btn.danger { background: #f44336; }
.btn.danger:hover { background: #d32f2f; }
</style>
</head>
<body>
<div class="container">
<h1>System Logs</h1>
<div class="controls">
<input id="logQuery" type="text" placeholder="Search keyword or request id" style="padding:8px 12px; width: 260px; margin-right:10px;" />
<input id="logSince" type="datetime-local" style="padding:8px 12px; margin-right:10px;" />
<select id="logLevel">
<option value="">All Levels</option>
<option value="error">Errors</option>
<option value="warning">Warnings</option>
<option value="info">Info</option>
<option value="debug">Debug</option>
</select>
<select id="logLimit">
<option value="50">50 entries</option>
<option value="100" selected>100 entries</option>
<option value="200">200 entries</option>
<option value="500">500 entries</option>
</select>
<button class="btn" onclick="loadLogs()">Refresh</button>
<button class="btn" onclick="prevPage()">Prev</button>
<button class="btn" onclick="nextPage()">Next</button>
<button class="btn danger" onclick="clearLogs()">Clear All Logs</button>
</div>
<div id="logContainer">
<div class="loading">Loading logs...</div>
</div>
</div>
<script>
let currentPage = 1;
function loadLogs() {
const level = document.getElementById('logLevel').value;
const limit = document.getElementById('logLimit').value;
const q = encodeURIComponent(document.getElementById('logQuery').value || '');
const since = document.getElementById('logSince').value ? new Date(document.getElementById('logSince').value).toISOString() : '';
document.getElementById('logContainer').innerHTML = '<div class="loading">Loading logs...</div>';
const url = `?action=get_logs&level=${level}&limit=${limit}&page=${currentPage}&q=${q}&since=${encodeURIComponent(since)}`;
fetch(url)
.then(response => response.json())
.then(logs => {
displayLogs(logs);
})
.catch(error => {
document.getElementById('logContainer').innerHTML = '<div class="error">Error loading logs: ' + error.message + '</div>';
});
}
function nextPage(){ currentPage++; loadLogs(); }
function prevPage(){ if (currentPage>1){ currentPage--; loadLogs(); } }
function displayLogs(logs) {
const container = document.getElementById('logContainer');
if (logs.length === 0) {
container.innerHTML = '<div class="loading">No logs found</div>';
return;
}
let html = '';
logs.forEach(log => {
html += `
<div class="log-entry ${log.level}">
<div class="log-header">
<span class="log-level ${log.level}">${log.level.toUpperCase()}</span>
<span class="log-details">
${log.timestamp} | IP: ${log.ip} | Request: ${log.request_id}
${log.user_id ? ' | User: ' + log.user_id : ''}
</span>
</div>
<div class="log-message">${escapeHtml(log.message)}</div>
<div class="log-details">
URI: ${log.request_uri || 'N/A'} | Method: ${log.request_method || 'N/A'}
</div>
${log.context && Object.keys(log.context).length > 0 ?
`<div class="log-context">${escapeHtml(JSON.stringify(log.context, null, 2))}</div>` :
''
}
</div>
`;
});
container.innerHTML = html;
}
function clearLogs() {
if (!confirm('Are you sure you want to clear all logs? This action cannot be undone.')) {
return;
}
const formData = new FormData();
formData.append('csrf_token', '<?= VSecurity::generateCSRFToken('clear_logs') ?>');
fetch('?action=clear_logs', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(result => {
if (result.success) {
alert(result.message);
loadLogs();
} else {
alert('Error: ' + result.message);
}
})
.catch(error => {
alert('Error clearing logs: ' + error.message);
});
}
function escapeHtml(text) {
const div = document.createElement('div');
div.textContent = text;
return div.innerHTML;
}
// Auto-refresh every 30 seconds
setInterval(loadLogs, 30000);
// Load logs on page load
loadLogs();
</script>
</body>
</html>

View File

@@ -0,0 +1,31 @@
application: easystream-app
version: 1
runtime: python27
api_version: 1
threadsafe: yes
libraries:
- name: jinja2
version: 2.6
- name: markupsafe
version: latest
handlers:
- url: /static
static_dir: static
login: required
secure: always
- url: /admin/proxy/.*
script: controllers.admin.app
login: admin
secure: always
- url: /admin.*
script: controllers.owner.app
login: required
secure: always
- url: /.*
script: controllers.public.app
secure: optional

View File

@@ -0,0 +1,47 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Configuration options for the application.
OAuth 2.0 Client Settings:
Visit the APIs Console (https://code.google.com/apis/console/) to create or
obtain client details for a project.
Authorized Redirect URIs for your client should include the hostname of your
app with /admin/auth appended to the end.
e.g. http://example.appspot.com/admin/auth
XSRF Settings:
This is used to generate a unique key for each user of the app.
Replace this with a unique phrase or random set of characters.
Keep this a secret.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
# OAuth 2.0 Client Settings
AUTH_CONFIG = {
'OAUTH_CLIENT_ID': '',
'OAUTH_CLIENT_SECRET': '',
# E.g. Local Dev Env on port 8080: http://localhost:8080
# E.g. Hosted on App Engine: https://your-application-id.appspot.com
'OAUTH_REDIRECT_URI': '%s%s' % (
'https://easystream-app.appspot.com',
'/admin/auth')
}
# XSRF Settings
XSRF_KEY = 'lk2j3rklnklnr2i3rni23nr;lk23nrr32knklknkr3ASD?/d'

View File

@@ -0,0 +1,69 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles all Admin requests to the Google Analytics Proxy.
These handlers are only available for actions performed by administrators. This
is configured in app.yaml. Addtional logic is provided by utility functions.
AddUserHandler: Allows admins to view and grant users access to the app.
QueryTaskWorker: Executes API Query tasks from the task queue
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from controllers import base
from controllers.util import co
from controllers.util import query_helper
from controllers.util import users_helper
import webapp2
class AddUserHandler(base.BaseHandler):
"""Handles viewing and adding users of the to the service."""
def get(self):
template_values = {
'users': users_helper.ListUsers(),
'invitations': users_helper.ListInvitations(),
'activate_link': self.request.host_url + co.LINKS['owner_activate'],
'LINKS': co.LINKS
}
self.RenderHtmlTemplate('users.html', template_values)
def post(self):
"""Handles HTTP POSTS requests to add a user.
Users can be added by email address only.
"""
email = self.request.get('email')
users_helper.AddInvitation(email)
self.redirect(co.LINKS['admin_users'])
class QueryTaskWorker(base.BaseHandler):
"""Handles API Query requests and responses from the task queue."""
def post(self):
query_id = self.request.get('query_id')
api_query = query_helper.GetApiQuery(query_id)
query_helper.ExecuteApiQueryTask(api_query)
app = webapp2.WSGIApplication(
[(co.LINKS['admin_users'], AddUserHandler),
(co.LINKS['admin_runtask'], QueryTaskWorker)],
debug=True)

View File

@@ -0,0 +1,148 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""The base handlers used by public, owner, and admin handler scripts.
BaseHandler: The base class for all other handlers to render content.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import json
import os
import urllib
from controllers.util import co
from controllers.util import users_helper
import jinja2
import webapp2
from google.appengine.api import users
jinja_environment = jinja2.Environment(
loader=jinja2.FileSystemLoader(
os.path.join(os.path.dirname(__file__), '..', 'templates')),
autoescape=True)
class BaseHandler(webapp2.RequestHandler):
"""Base handler for generating responses for most types of requests."""
def RenderHtmlTemplate(self, template_name, template_values=None):
"""Renders HTML using a template.
Values that are common across most templates are automatically added and
sent to the template.
Args:
template_name: The name of the template to render (e.g. 'admin.html')
template_values: A dict of values to pass to the template.
"""
if template_values is None:
template_values = {}
current_user = users.get_current_user()
user_settings = None
user_email = ''
if current_user:
user_settings = users_helper.GetGaSuperProxyUser(current_user.user_id())
user_email = current_user.email()
template_values.update({
'user_settings': user_settings,
'current_user_email': user_email,
'is_admin': users.is_current_user_admin(),
'logout_url': users.create_logout_url(co.LINKS['owner_index']),
'LINKS': co.LINKS
})
self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
self.response.headers['Content-Disposition'] = 'inline'
self.response.headers['X-Frame-Options'] = 'SAMEORIGIN'
template = jinja_environment.get_template(template_name)
self.response.write(template.render(template_values))
def RenderCsv(self, csv_content, status=200):
"""Renders CSV content.
Args:
csv_content: The CSV content to output.
status: The HTTP status code to send.
"""
self.response.headers['Content-Type'] = 'text/csv; charset=UTF-8'
self.response.headers['Content-Disposition'] = (
'attachment; filename=query_response.csv')
self.response.set_status(status)
self.response.write(csv_content)
def RenderHtml(self, html_content, status=200):
"""Renders HTML content.
Args:
html_content: The HTML content to output.
status: The HTTP status code to send.
"""
self.response.headers['Content-Type'] = 'text/html; charset=UTF-8'
self.response.headers['Content-Disposition'] = 'inline'
self.response.set_status(status)
self.response.write(html_content)
def RenderJson(self, json_response, status=200):
"""Renders JSON/Javascript content.
If a callback parameter is included as part of the request then a
Javascript function is output (JSONP support).
Args:
json_response: The JSON content to output.
status: The HTTP status code to send.
"""
self.response.set_status(status)
self.response.headers['Content-Disposition'] = 'inline'
if self.request.get('callback'): # JSONP Support
self.response.headers['Content-Type'] = (
'application/javascript; charset=UTF-8')
self.response.out.write('(%s)(%s);' %
(urllib.unquote(self.request.get('callback')),
json.dumps(json_response)))
else:
self.response.headers['Content-Type'] = 'application/json; charset=UTF-8'
self.response.write(json.dumps(json_response))
def RenderText(self, text, status=200):
"""Renders plain text content.
Args:
text: The plain text to output.
status: The HTTP status code to send.
"""
self.response.headers['Content-Type'] = 'text/plain; charset=UTF-8'
self.response.headers['Content-Disposition'] = 'inline'
self.response.set_status(status)
self.response.write(text)
def RenderTsv(self, tsv_content, status=200):
"""Renders TSV for Excel content.
Args:
tsv_content: The TSV for Excel content to output.
status: The HTTP status code to send.
"""
self.response.headers['Content-Type'] = ('application/vnd.ms-excel; '
'charset=UTF-16LE')
self.response.headers['Content-Disposition'] = (
'attachment; filename=query_response.tsv')
self.response.set_status(status)
self.response.write(tsv_content)

View File

@@ -0,0 +1,380 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles all Owner requests to the Google Analytics superProxy.
These handlers are available for actions performed by owners that can manage
API Queries. This is configured in app.yaml. Additional logic is provided by
utility functions.
ActivateUserHandler: Activates new users.
AdminHandler: Handles the admin home page for owners.
AuthHandler: Handles OAuth 2.0 flow and storing auth tokens for the owner.
ChangeQueryStatusHandler: Disables/enables public endpoints for queries.
CreateQueryHandler: Handles creating new API Queries.
DeleteQueryHandler: Deletes an API Query and related entities.
DeleteQueryErrorsHandler: Deletes API query error responses.
EditQueryHandler: Handles requests to edit an API Query.
ManageQueryHandler: Provides the status and management operations for an
API Query.
RunQueryHandler: Handles adhoc refresh requests from owners.
ScheduleQueryHandler: Handles API Query scheduling.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from controllers import base
from controllers.util import access_control
from controllers.util import analytics_auth_helper
from controllers.util import co
from controllers.util import query_helper
from controllers.util import schedule_helper
from controllers.util import template_helper
from controllers.util import users_helper
import webapp2
from google.appengine.api import users
class ActivateUserHandler(base.BaseHandler):
"""Handles the activation of a new user."""
def get(self):
"""Handles user activations."""
user = users.get_current_user()
if users_helper.GetGaSuperProxyUser(user.user_id()):
self.redirect(co.LINKS['owner_index'])
return
if not users_helper.GetInvitation(user.email().lower()):
self.redirect(co.LINKS['public_index'])
template_values = {
'xsrf_token': access_control.GetXsrfToken()
}
self.RenderHtmlTemplate('activate.html', template_values)
@access_control.ValidXsrfTokenRequired
def post(self):
"""Activates and adds a user to the service."""
users_helper.ActivateUser()
self.redirect(co.LINKS['owner_index'])
class AdminHandler(base.BaseHandler):
"""Handler for the Admin panel to list all API Queries."""
@access_control.ActiveGaSuperProxyUser
def get(self):
"""Displays a list of API Queries.
Only the user's API Queries are shown unless the user is an administrator.
Administrators can also filter the list to only show queries they own.
"""
query_filter = self.request.get('filter')
if users.is_current_user_admin() and query_filter != 'owner':
user = None
else:
user = users_helper.GetGaSuperProxyUser(
users.get_current_user().user_id())
api_queries = query_helper.ListApiQueries(user)
hostname = self.request.host_url
template_values = {
'api_queries': template_helper.GetTemplateValuesForAdmin(api_queries,
hostname),
'query_error_limit': co.QUERY_ERROR_LIMIT,
'revoke_token_url': '%s?revoke=true' % co.LINKS['owner_auth'],
'oauth_url': analytics_auth_helper.OAUTH_URL
}
self.RenderHtmlTemplate('admin.html', template_values)
class AuthHandler(base.BaseHandler):
"""Handles OAuth 2.0 responses and requests."""
@access_control.ActiveGaSuperProxyUser
def get(self):
template_values = analytics_auth_helper.OAuthHandler(self.request)
self.RenderHtmlTemplate('auth.html', template_values)
class ChangeQueryStatusHandler(base.BaseHandler):
"""Handles requests to change the endpoint status of an API Query."""
@access_control.OwnerRestricted
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Change the public endpoint status of an API Query."""
query_id = self.request.get('query_id')
redirect = self.request.get('redirect', co.LINKS['owner_index'])
api_query = query_helper.GetApiQuery(query_id)
query_helper.SetPublicEndpointStatus(api_query)
self.redirect(redirect)
class CreateQueryHandler(base.BaseHandler):
"""Handles the creation of API Queries.
This handles 3 cases, testing a query, saving a new query, and saving and
automatically scheduling a new query.
"""
@access_control.ActiveGaSuperProxyUser
def get(self):
"""Displays the create query form."""
template_values = {
'timezone': co.TIMEZONE,
'xsrf_token': access_control.GetXsrfToken()
}
self.RenderHtmlTemplate('create.html', template_values)
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Validates and tests/saves the API Query to the datastore.
The owner can do any of the following from the create form:
testing: It will render the create form and show test results.
save: It will save the query to the datastore.
save and schedule: It will save the query to the datastore and enable
scheduling for the query.
"""
query_form_input = {
'name': self.request.get('name'),
'request': self.request.get('request'),
'refresh_interval': self.request.get('refresh_interval')
}
query_form_input = query_helper.ValidateApiQuery(query_form_input)
if not query_form_input:
self.redirect(co.LINKS['owner_index'])
api_query = query_helper.BuildApiQuery(**query_form_input)
if self.request.get('test_query'):
test_response = query_helper.FetchApiQueryResponse(api_query)
template_values = {
'test_response': test_response,
'name': api_query.name,
'request': api_query.request,
'refresh_interval': api_query.refresh_interval,
'timezone': co.TIMEZONE,
'xsrf_token': access_control.GetXsrfToken()
}
self.RenderHtmlTemplate('create.html', template_values)
return
elif self.request.get('create_query'):
query_helper.SaveApiQuery(api_query)
elif self.request.get('create_run_query'):
query_helper.ScheduleAndSaveApiQuery(api_query)
api_query_links = template_helper.GetLinksForTemplate(
api_query, self.request.host_url)
self.redirect(api_query_links.get('manage_link', '/'))
class DeleteQueryHandler(base.BaseHandler):
"""Handles requests to delete an API Query."""
@access_control.OwnerRestricted
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Delete an API Query and any child API Query (Error) Responses."""
query_id = self.request.get('query_id')
redirect = self.request.get('redirect', co.LINKS['owner_index'])
api_query = query_helper.GetApiQuery(query_id)
query_helper.DeleteApiQuery(api_query)
self.redirect(redirect)
class DeleteQueryErrorsHandler(base.BaseHandler):
"""Handles requests to delete API Query Error Responses."""
@access_control.OwnerRestricted
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Delete API query error responses."""
query_id = self.request.get('query_id')
redirect = self.request.get('redirect', co.LINKS['owner_index'])
api_query = query_helper.GetApiQuery(query_id)
query_helper.DeleteApiQueryErrors(api_query)
schedule_helper.ScheduleApiQuery(api_query, randomize=True, countdown=0)
self.redirect(redirect)
class EditQueryHandler(base.BaseHandler):
"""Handles requests to edit an API Query."""
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Validates and tests/saves the API Query to the datastore.
The owner can do any of the following from the edit form:
testing: It will render the create form and show test results.
save: It will save the query to the datastore.
save and refresh: It will save the query, fetch the lastest data and then
save both to the datastore.
"""
query_id = self.request.get('query_id')
api_query = query_helper.GetApiQuery(query_id)
if not api_query:
self.redirect(co.LINKS['owner_index'])
query_form_input = {
'name': self.request.get('name'),
'request': self.request.get('request'),
'refresh_interval': self.request.get('refresh_interval')
}
query_form_input = query_helper.ValidateApiQuery(query_form_input)
hostname = self.request.host_url
api_query_links = template_helper.GetLinksForTemplate(api_query, hostname)
if not query_form_input:
self.redirect(api_query_links.get('manage_link', '/'))
api_query.name = query_form_input.get('name')
api_query.request = query_form_input.get('request')
api_query.refresh_interval = query_form_input.get('refresh_interval')
if self.request.get('test_query'):
test_response = query_helper.FetchApiQueryResponse(api_query)
template_values = {
'test_response': test_response,
'api_query': template_helper.GetTemplateValuesForManage(api_query,
hostname),
'timezone': co.TIMEZONE,
'xsrf_token': access_control.GetXsrfToken()
}
self.RenderHtmlTemplate('edit.html', template_values)
return
elif self.request.get('save_query'):
query_helper.SaveApiQuery(api_query)
elif self.request.get('save_query_refresh'):
query_helper.SaveApiQuery(api_query)
query_helper.RefreshApiQueryResponse(api_query)
self.redirect(api_query_links.get('manage_link', '/'))
class ManageQueryHandler(base.BaseHandler):
"""Handles requests to view and manage API Queries."""
@access_control.OwnerRestricted
@access_control.ActiveGaSuperProxyUser
def get(self):
"""Retrieves a query to be managed by the user."""
query_id = self.request.get('query_id')
api_query = query_helper.GetApiQuery(query_id)
if api_query:
hostname = self.request.host_url
template_values = {
'api_query': template_helper.GetTemplateValuesForManage(api_query,
hostname),
'timezone': co.TIMEZONE,
'xsrf_token': access_control.GetXsrfToken()
}
if self.request.get('action') == 'edit':
self.RenderHtmlTemplate('edit.html', template_values)
return
self.RenderHtmlTemplate('view.html', template_values)
return
self.redirect(co.LINKS['owner_index'])
class RunQueryHandler(base.BaseHandler):
"""Handles a single query execution request.
This handles adhoc requests by owners to Refresh an API Query.
"""
@access_control.OwnerRestricted
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Refreshes the API Query Response."""
query_id = self.request.get('query_id')
api_query = query_helper.GetApiQuery(query_id)
if api_query:
query_helper.RefreshApiQueryResponse(api_query)
api_query_links = template_helper.GetLinksForTemplate(
api_query, self.request.host_url)
self.redirect(api_query_links.get('manage_link', '/'))
return
self.redirect(co.LINKS['owner_index'])
class ScheduleQueryHandler(base.BaseHandler):
"""Handles the scheduling of API Queries. Starting and stopping."""
@access_control.OwnerRestricted
@access_control.ValidXsrfTokenRequired
@access_control.ActiveGaSuperProxyUser
def post(self):
"""Starts/Stops API Query Scheduling."""
query_id = self.request.get('query_id')
api_query = query_helper.GetApiQuery(query_id)
if api_query:
schedule_helper.SetApiQueryScheduleStatus(api_query)
schedule_helper.ScheduleApiQuery(api_query, randomize=True, countdown=0)
api_query_links = template_helper.GetLinksForTemplate(
api_query, self.request.host_url)
self.redirect(api_query_links.get('manage_link', '/'))
return
self.redirect(co.LINKS['owner_index'])
app = webapp2.WSGIApplication(
[(co.LINKS['owner_index'], AdminHandler),
(co.LINKS['query_manage'], ManageQueryHandler),
(co.LINKS['query_edit'], EditQueryHandler),
(co.LINKS['query_delete'], DeleteQueryHandler),
(co.LINKS['query_delete_errors'], DeleteQueryErrorsHandler),
(co.LINKS['query_create'], CreateQueryHandler),
(co.LINKS['query_status_change'], ChangeQueryStatusHandler),
(co.LINKS['query_run'], RunQueryHandler),
(co.LINKS['query_schedule'], ScheduleQueryHandler),
(co.LINKS['owner_auth'], AuthHandler),
(co.LINKS['owner_activate'], ActivateUserHandler),
(co.LINKS['owner_default'], AdminHandler)],
debug=True)

View File

@@ -0,0 +1,83 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles all public requests to the Google Analytics superProxy.
These handlers are for actions performed by external users that may or may not
be signed in. This is configured in app.yaml. Additional logic is provided by
utility functions.
PublicQueryResponseHandler: Outputs the API response for the requested query.
NotAuthorizedHandler: Handles unauthorized requests.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from controllers import base
from controllers.transform import transformers
from controllers.util import co
from controllers.util import errors
from controllers.util import query_helper
import webapp2
class PublicQueryResponseHandler(base.BaseHandler):
"""Handles public requests for an API Query response.
The handler retrieves the latest response for the requested API Query Id
and format (if specified) and renders the response or an error message if
a response was not found.
"""
def get(self):
"""Renders the API Response in the format requested.
Gets the public response and then uses the transformer to render the
content. If there is an error then the error message will be rendered
using the default response format.
"""
query_id = self.request.get('id')
response_format = str(self.request.get('format', co.DEFAULT_FORMAT))
# The tqx parameter is required for Data Table Response requests. If it
# exists then pass the value on to the Transform.
tqx = self.request.get('tqx', None)
transform = transformers.GetTransform(response_format, tqx)
try:
(content, status) = query_helper.GetPublicEndpointResponse(
query_id, response_format, transform)
except errors.GaSuperProxyHttpError, proxy_error:
# For error responses use the transform of the default format.
transform = transformers.GetTransform(co.DEFAULT_FORMAT)
content = proxy_error.content
status = proxy_error.status
transform.Render(self, content, status)
class NotAuthorizedHandler(base.BaseHandler):
"""Handles unauthorized public requests to owner/admin pages."""
def get(self):
self.RenderHtmlTemplate('public.html')
app = webapp2.WSGIApplication(
[(co.LINKS['public_query'], PublicQueryResponseHandler),
(co.LINKS['public_default'], NotAuthorizedHandler)],
debug=True)

View File

@@ -0,0 +1,579 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility module to Transform GA API responses to different formats.
Transforms a JSON response from the Google Analytics Core Reporting API V3.
Responses can be anonymized, transformed, and returned in a new format.
For example: CSV, TSV, Data Table, etc.
GetTransform: Returns a transform for the requested format.
TransformJson: Transform and render a Core Reporting API response as JSON.
TransformCsv: Transform and render a Core Reporting API response as CSV.
TransformDataTableString: Transform and render a Core Reporting API response
as a Data Table string.
TransformDataTableResponse: Transform and render a Core Reporting API response
as a Data Table response.
TransformTsv: Transform and render a Core Reporting API response as TSV.
RemoveKeys: Removes key/value pairs from a JSON response.
GetDataTableSchema: Get a Data Table schema from Core Reporting API Response.
GetDataTableRows: Get Data Table rows from Core Reporting API Response.
GetDataTable: Returns a Data Table using the Gviz library
GetColumnOrder: Converts API Response column headers to columns for Gviz.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import cStringIO
import urllib
from libs.csv_writer import csv_writer
from libs.gviz_api import gviz_api
# The label to use for unknown data types.
UNKNOWN_LABEL = 'UNKNOWN'
# Maps the types used in a Core Reporting API response to Python types.
BUILTIN_DATA_TYPES = {
'STRING': str,
'INTEGER': int,
'FLOAT': float,
'CURRENCY': float,
UNKNOWN_LABEL: str
}
# Maps the types used in a Core Reporting API response to JavaScript types.
JS_DATA_TYPES = {
'STRING': 'string',
'INTEGER': 'number',
'FLOAT': 'number',
'CURRENCY': 'number',
UNKNOWN_LABEL: 'string'
}
# List of properties to remove from the response when Anonymized.
# Paths to sub-properties in a nested dict can be separated with a
# colon. e.g. 'query:ids' will remove ids property from parent property query.
PRIVATE_PROPERTIES = ('id', 'query:ids', 'selfLink', 'nextLink', 'profileInfo')
def GetTransform(response_format='json', tqx=None):
"""Returns a transform based on the requested format.
Args:
response_format: A string indicating the type of transform to get.
tqx: string tqx is a standard parameter for the Chart Tools Datasource
Protocol V0.6. If it exists then we must handle it. In this case it will
get passed to the Data Table Response transform.
Returns:
A transform instance for the requested format type or a default transform
instance if an invalid response format is requested.
"""
if response_format == 'json':
transform = TransformJson()
elif response_format == 'csv':
output = cStringIO.StringIO()
writer = csv_writer.GetCsvStringPrinter(output)
transform = TransformCsv(writer, output)
elif response_format == 'data-table':
transform = TransformDataTableString()
elif response_format == 'data-table-response':
transform = TransformDataTableResponse(tqx)
elif response_format == 'tsv':
output = cStringIO.StringIO()
writer = csv_writer.GetTsvStringPrinter(output)
transform = TransformTsv(writer, output)
else:
transform = TransformJson()
return transform
class TransformJson(object):
"""A transform to render a Core Reporting API response as JSON."""
def Transform(self, content):
"""Transforms a Core Reporting API Response to JSON.
Although this method simply returns the original argument it is needed to
maintain a consistent interface for all transforms.
Args:
content: A dict representing the Core Reporting API JSON response to
transform.
Returns:
A dict, the original Core Reporting API Response.
"""
return content
def Render(self, webapp, content, status):
"""Renders a Core Reporting API response in JSON.
Args:
webapp: The webapp2 object to use to render the response.
content: A dict representing the JSON content to render.
status: An integer representing the HTTP status code to send.
"""
webapp.RenderJson(content, status)
class TransformCsv(object):
"""A transform to render a Core Reporting API response as CSV."""
def __init__(self, writer, output):
"""Initialize the CSV Transform.
Args:
writer: The CSV Writer object to use for the transform.
output: The CStringIO object to write the transformed content to.
"""
self.writer = writer
self.output = output
def Transform(self, content):
"""Transforms the columns and rows from the API JSON response to CSV.
Args:
content: A dict representing the Core Reporting API JSON response to
transform.
Returns:
A string of either a CSV formatted response with a header or empty if no
rows existed in the content to transform.
Raises:
AttributeError: Invalid JSON response content was provided.
"""
csv_output = ''
if content:
column_headers = content.get('columnHeaders', [])
rows = content.get('rows', [])
if column_headers:
self.writer.OutputHeaders(content)
if rows:
self.writer.OutputRows(content)
csv_output = self.output.getvalue()
self.output.close()
return csv_output
def Render(self, webapp, content, status):
"""Renders a Core Reporting API response as CSV.
Args:
webapp: The webapp2 object to use to render the response.
content: A dict representing the JSON content to render.
status: An integer representing the HTTP status code to send.
"""
webapp.RenderCsv(content, status)
class TransformDataTableString(object):
"""A transform to render a Core Reporting API response as a Data Table."""
def Transform(self, content):
"""Transforms a Core Reporting API response to a DataTable JSON String.
DataTable
https://developers.google.com/chart/interactive/docs/reference#DataTable
JSON string -- If you are hosting the page that hosts the visualization that
uses your data, you can generate a JSON string to pass into a DataTable
constructor to populate it.
From: https://developers.google.com/chart/interactive/docs/dev/gviz_api_lib
Args:
content: A dict representing the Core Reporting API JSON response to
transform.
Returns:
None if no content is provided, an empty string if a Data Table isn't
supported for the given content, or a Data Table as a JSON String.
Raises:
AttributeError: Invalid JSON response content was provided.
"""
if not content:
return None
column_headers = content.get('columnHeaders')
rows = content.get('rows')
if column_headers and rows:
data_table_schema = GetDataTableSchema(content)
data_table_rows = GetDataTableRows(content)
data_table_output = GetDataTable(data_table_schema, data_table_rows)
if data_table_output:
return data_table_output.ToJSon()
return ''
def Render(self, webapp, content, status):
"""Renders a Core Reporting API response as a Data Table String.
Args:
webapp: The webapp2 object to use to render the response.
content: A dict representing the JSON content to render.
status: An integer representing the HTTP status code to send.
"""
webapp.RenderText(content, status)
class TransformDataTableResponse(object):
"""A transform to render a Core Reporting API response as a Data Table."""
def __init__(self, tqx=None):
"""Initialize the Data Table Response Transform.
Args:
tqx: string A set of colon-delimited key/value pairs for standard or
custom parameters. Pairs are separated by semicolons.
(https://developers.google.com/chart/interactive/docs/dev/
implementing_data_source#requestformat)
"""
if tqx:
tqx = urllib.unquote(tqx)
self.tqx = tqx
def Transform(self, content):
"""Transforms a Core Reporting API response to a DataTable JSON Response.
DataTable
https://developers.google.com/chart/interactive/docs/reference#DataTable
JSON response -- If you do not host the page that hosts the visualization,
and just want to act as a data source for external visualizations, you can
create a complete JSON response string that can be returned in response to a
data request.
From: https://developers.google.com/chart/interactive/docs/dev/gviz_api_lib
Args:
content: A dict representing the Core Reporting API JSON response to
transform.
Returns:
None if no content is provided, an empty string if a Data Table isn't
supported for the given content, or a Data Table Response as JSON.
Raises:
AttributeError: Invalid JSON response content was provided.
"""
if not content:
return None
column_headers = content.get('columnHeaders')
rows = content.get('rows')
if column_headers and rows:
data_table_schema = GetDataTableSchema(content)
data_table_rows = GetDataTableRows(content)
data_table_output = GetDataTable(data_table_schema, data_table_rows)
column_order = GetColumnOrder(column_headers)
if data_table_output:
req_id = 0
# If tqx exists then handle at a minimum the reqId parameter
if self.tqx:
tqx_pairs = {}
try:
tqx_pairs = dict(pair.split(':') for pair in self.tqx.split(';'))
except ValueError:
# if the parse fails then just continue and use the empty dict
pass
req_id = tqx_pairs.get('reqId', 0)
return data_table_output.ToJSonResponse(
columns_order=column_order, req_id=req_id)
return ''
def Render(self, webapp, content, status):
"""Renders a Core Reporting API response as a Data Table Response.
Args:
webapp: The webapp2 object to use to render the response.
content: A dict representing the JSON content to render.
status: An integer representing the HTTP status code to send.
"""
webapp.RenderText(content, status)
class TransformTsv(object):
"""A transform to render a Core Reporting API response as TSV."""
def __init__(self, writer, output):
"""Initialize the TSV Transform.
Args:
writer: The CSV Writer object to use for the transform.
output: The CStringIO object to write the transformed content to.
"""
self.writer = writer
self.output = output
def Transform(self, content):
"""Transforms the columns and rows from the API JSON response to TSV.
An Excel TSV is UTF-16 encoded.
Args:
content: A dict representing the Core Reporting API JSON response to
transform.
Returns:
A UTF-16 encoded string representing an Excel TSV formatted response with
a header or an empty string if no rows exist in the content.
Raises:
AttributeError: Invalid JSON response content was provided.
"""
tsv_output = ''
if content:
column_headers = content.get('columnHeaders', [])
rows = content.get('rows', [])
if column_headers:
self.writer.OutputHeaders(content)
if rows:
self.writer.OutputRows(content)
out = self.output.getvalue()
# Get UTF-8 output
decoding = out.decode('UTF-8')
# and re-encode to UTF-16 for Excel TSV
tsv_output = decoding.encode('UTF-16')
self.output.close()
return tsv_output
def Render(self, webapp, content, status):
"""Renders a Core Reporting API response as Excel TSV.
Args:
webapp: The webapp2 object to use to render the response.
content: A dict representing the JSON content to render.
status: An integer representing the HTTP status code to send.
"""
webapp.RenderTsv(content, status)
def RemoveKeys(content, keys_to_remove=PRIVATE_PROPERTIES):
"""Removes key/value pairs from a JSON response.
By default this will remove key/value pairs related to account information
for a Google Analytics Core Reporting API JSON response.
To remove keys, a path for each key to delete is created and stored in a list.
Using this list of paths, the content is then traversed until each key is
found and deleted from the content. For example, to traverse the content to
find a single key, the key path is reversed and then each "node" in the path
is popped off and fetched from the content. The traversal continues until
all "nodes" have been fetched. Then a deletion is attempted.
The reversal of the path is required because key paths are defined in order
from ancestor to descendant and a pop operation returns the last item in a
list. Since content traversal needs to go from ancestor to descendants,
reversing the path before traversal will place the parent/ancestor at the
end of the list, making it the first node/key to find in the content.
Args:
content: A dict representing the Core Reporting API JSON response to
remove keys from.
keys_to_remove: A tuple representing the keys to remove from the content.
The hiearchy/paths to child keys should be separated with a
colon. e.g. 'query:ids' will remove the child key, ids, from
parent key query.
Returns:
The given dict with the specified keys removed.
"""
if content and keys_to_remove:
for key_to_remove in keys_to_remove:
# This gives a list that defines the hierarchy/path of the key to remove.
key_hierarchy = key_to_remove.split(':')
# Reverse the path to get the correct traversal order.
key_hierarchy.reverse()
key = key_hierarchy.pop()
child_content = content
# Traverse through hierarchy to find the key to delete.
while key_hierarchy and child_content:
child_content = child_content.get(key)
key = key_hierarchy.pop()
try:
del child_content[key]
except (KeyError, NameError, TypeError):
# If the key doesn't exist then it's already "removed" so just continue
# and move on to the next key for removal.
pass
return content
def GetDataTableSchema(content, data_types=None):
"""Builds and returns a Data Table schema from a Core Reporting API Response.
Args:
content: A dict representing the Core Reporting API JSON response to build
a schmea from.
data_types: A dict that maps the expected data types in the content to
the equivalent JavaScript types. e.g.:
{
'STRING': 'string',
'INTEGER': 'number'
}
Returns:
A dict that contains column header and data type information that can be
used for a Data Table schema/description. Returns None if there are no
column headers in the Core Reporting API Response.
Raises:
AttributeError: Invalid JSON response content was provided.
"""
if not content:
return None
if data_types is None:
data_types = JS_DATA_TYPES
column_headers = content.get('columnHeaders')
schema = None
if column_headers:
schema = {}
for header in column_headers:
name = header.get('name', UNKNOWN_LABEL).encode('UTF-8')
data_type = header.get('dataType', UNKNOWN_LABEL)
data_type = data_types.get(data_type, data_types.get(UNKNOWN_LABEL))
schema.update({
name: (data_type, name),
})
return schema
def GetDataTableRows(content, data_types=None):
"""Builds and returns Data Table rows from a Core Reporting API Response.
Args:
content: A dict representing the Core Reporting API JSON response to build
the rows from.
data_types: A dict that maps the expected data types in the content to
the equivalent Python types. e.g.:
{
'STRING': str,
'INTEGER': int,
'FLOAT': float
}
Returns:
A list where each item is a dict representing one row of data in a Data
Table. Returns None if there are no column headers in the Core Reporting
API response.
"""
if not content:
return None
if data_types is None:
data_types = BUILTIN_DATA_TYPES
column_headers = content.get('columnHeaders')
data_table = None
if column_headers:
data_table = []
for data in content.get('rows', []):
data_row = {}
for index, data in enumerate(data):
data_type = column_headers[index].get('dataType')
convert_to = data_types.get(data_type, data_types.get(UNKNOWN_LABEL))
if convert_to:
data_row_value = convert_to(data)
else:
data_row_value = data.encode('UTF-8')
data_row.update({
column_headers[index].get('name', UNKNOWN_LABEL): data_row_value
})
data_table.append(data_row)
return data_table
def GetDataTable(table_schema, table_rows):
"""Returns a Data Table using the Gviz library.
DataTable:
https://developers.google.com/chart/interactive/docs/reference#DataTable
Data Source Python Library:
https://developers.google.com/chart/interactive/docs/dev/gviz_api_lib
Args:
table_schema: A dict that contains column header and data type information
for a Data Table.
table_rows: A list where each item in the list is a dict representing one
row of data in a Data Table. It should match the schema defined
by the provided table_schema argument.
Returns:
A gviz_api.DataTable object or None if Data Table isn't supported for
the arguments provided.
"""
if not table_schema or not table_rows:
return None
data_table_output = gviz_api.DataTable(table_schema)
data_table_output.LoadData(table_rows)
return data_table_output
def GetColumnOrder(column_headers):
"""Converts GA API columns headers into a column order tuple used by Gviz.
Args:
column_headers: A list of dicts that represent Column Headers. Equivalent
to the response from the GA API.
e.g.
[
{
"name": string,
"columnType": string,
"dataType": string
}
]
Returns:
A tuple with column order that matches column headers in the original
GA API response or None if there are no column headers.
Raises:
TypeError: An invalid list was provided.
"""
column_order = None
if column_headers:
column_order = []
for column in column_headers:
column_order.append(column.get('name'))
column_order = tuple(column_order)
return column_order

View File

@@ -0,0 +1,132 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility module to validate XSRF tokens."""
__author__ = 'nickski15@gmail.com (Nick Mihailovski)'
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import hashlib
import hmac
import config
from controllers.util import query_helper
from controllers.util import users_helper
import co
from google.appengine.api import users
def OwnerRestricted(original_request):
"""Requires that the user owns the entity being accessed or is an admin.
If the request isn't made by the owner of the API Query or an admin then
they will be redirected to the owner index page.
Args:
original_request: The restricted request being made.
Returns:
The wrapped request.
"""
def Wrapper(self, *args, **kwargs):
query_id = self.request.get('query_id')
owner_has_access = UserOwnsApiQuery(query_id)
if owner_has_access or users.is_current_user_admin():
return original_request(self, *args, **kwargs)
else:
self.redirect(co.LINKS['owner_index'])
return
return Wrapper
def ActiveGaSuperProxyUser(original_request):
"""Requires that this is a valid user of the app.
If the request isn't made by an active Google Analytics superProxy user then
they will be redirected to the public index page.
Args:
original_request: The restricted request being made.
Returns:
The wrapped request.
"""
def Wrapper(self, *args, **kwargs):
user = users_helper.GetGaSuperProxyUser(users.get_current_user().user_id())
if user or users.is_current_user_admin():
return original_request(self, *args, **kwargs)
else:
self.redirect(co.LINKS['public_index'])
return
return Wrapper
def GetXsrfToken():
"""Generate a signed token unique to this user.
Returns:
An XSRF token unique to the user.
"""
token = None
user = users.get_current_user()
if user:
mac = hmac.new(config.XSRF_KEY, user.user_id(), hashlib.sha256)
token = mac.hexdigest()
return token
def ValidXsrfTokenRequired(original_handler):
"""Require a valid XSRF token in the environment, or error.
If the request doesn't include a valid XSRF token then they will be
redirected to the public index page.
Args:
original_handler: The handler that requires XSRF validation.
Returns:
The wrapped handler.
"""
def Handler(self, *args, **kwargs):
if self.request.get('xsrf_token') == GetXsrfToken():
return original_handler(self, *args, **kwargs)
else:
self.redirect(co.LINKS['public_index'])
return
Handler.__name__ = original_handler.__name__
return Handler
def UserOwnsApiQuery(query_id):
"""Check if the currently logged in user owns the API Query.
Args:
query_id: The id of the API query.
Returns:
A boolean to indicate whether the logged in user owns the API Query.
"""
user = users.get_current_user()
api_query = query_helper.GetApiQuery(query_id)
if user and user.user_id() and api_query:
return user.user_id() == api_query.user.key().name()
return False

View File

@@ -0,0 +1,347 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions to handle authentication for Google Analytics API.
AuthorizeApiQuery: Decorating function to add an access token to request URL.
FetchAccessToken: Gets a new access token using a refresh token.
FetchCredentials: Makes requests to Google Accounts API.
GetAccessTokenForApiQuery: Requests an access token for a given refresh token.
GetOAuthCredentials: Exchanges a auth code for tokens.
OAuthHandler: Handles incoming requests from the Google Accounts API.
RevokeAuthTokensForUser: Revokes and deletes a user's auth tokens.
RevokeOAuthCredentials: Revokes a refresh token.
SaveAuthTokensForUser: Obtains and saves auth tokens for a user.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import copy
from datetime import datetime
import json
import urllib
import config
from controllers.util import users_helper
from google.appengine.api import urlfetch
from google.appengine.api import users
# Configure with your APIs Console Project
OAUTH_CLIENT_ID = config.AUTH_CONFIG['OAUTH_CLIENT_ID']
OAUTH_CLIENT_SECRET = config.AUTH_CONFIG['OAUTH_CLIENT_SECRET']
OAUTH_REDIRECT_URI = config.AUTH_CONFIG['OAUTH_REDIRECT_URI']
OAUTH_ENDPOINT = 'https://accounts.google.com/o/oauth2/auth'
OAUTH_TOKEN_ENDPOINT = 'https://accounts.google.com/o/oauth2/token'
OAUTH_REVOKE_ENDPOINT = 'https://accounts.google.com/o/oauth2/revoke?token='
OAUTH_SCOPE = 'https://www.googleapis.com/auth/analytics.readonly'
OAUTH_ACCESS_TYPE = 'offline'
ISSUED_AUTH_TOKENS_WEB_URL = (
'https://www.google.com/accounts/IssuedAuthSubTokens')
OAUTH_PARAMS = urllib.urlencode({
'response_type': 'code',
'client_id': OAUTH_CLIENT_ID,
'redirect_uri': OAUTH_REDIRECT_URI,
'scope': OAUTH_SCOPE,
'access_type': OAUTH_ACCESS_TYPE
})
OAUTH_URL = '%s?%s' % (OAUTH_ENDPOINT, OAUTH_PARAMS)
AUTH_MESSAGES = {
'codeError': ('Unable to obtain credentials. Visit %s to revoke any '
'existing tokens for this App and retry.' %
ISSUED_AUTH_TOKENS_WEB_URL),
'codeSuccess': 'Successfully connected to Google Analytics.',
'revokeError': ('There was an error while attempting to disconnect from '
'Google Analytics. Visit <a href="%s">My Account</a> to '
'revoke any existing tokens for this App and retry.' %
ISSUED_AUTH_TOKENS_WEB_URL),
'revokeSuccess': 'Successfully disconnected from Google Analytics.',
'badRequest': ('Unable to obtain credentials for Google Analytics '
'connection visit <a href="%s">My Account</a> to revoke any '
'existing tokens for this App and retry.' %
ISSUED_AUTH_TOKENS_WEB_URL)
}
def AuthorizeApiQuery(fn):
"""Decorator to retrieve an access token and append it to an API Query URL.
Args:
fn: The original function being wrapped.
Returns:
An API Query entity with an access token appended to request URL.
"""
def Wrapper(api_query):
"""Returns the original function with an authorized API Query."""
access_token = GetAccessTokenForApiQuery(api_query)
query = api_query.request
if access_token:
query = ('%s&access_token=%s&gasp=1' % (
urllib.unquote(api_query.request), access_token))
# Leave original API Query untouched by returning a copy with
# a valid access_token appended to the API request URL.
new_api_query = copy.copy(api_query)
new_api_query.request = query
return fn(new_api_query)
return Wrapper
def FetchAccessToken(refresh_token):
"""Gets a new access token using a refresh token.
Args:
refresh_token: The refresh token to use.
Returns:
A valid access token or None if query was unsuccessful.
"""
auth_params = {
'refresh_token': refresh_token,
'client_id': OAUTH_CLIENT_ID,
'client_secret': OAUTH_CLIENT_SECRET,
'grant_type': 'refresh_token'
}
return FetchCredentials(auth_params)
def FetchCredentials(auth_params):
"""General utility to make fetch requests to OAuth Service.
Args:
auth_params: The OAuth parameters to use for the request.
Returns:
A dict with the response status code and content.
"""
auth_status = {
'status_code': 400
}
auth_payload = urllib.urlencode(auth_params)
try:
response = urlfetch.fetch(url=OAUTH_TOKEN_ENDPOINT,
payload=auth_payload,
method=urlfetch.POST,
headers={
'Content-Type':
'application/x-www-form-urlencoded'
})
response_content = json.loads(response.content)
if response.status_code == 200:
auth_status['status_code'] = 200
auth_status['content'] = response_content
except (ValueError, TypeError, AttributeError, urlfetch.Error), e:
auth_status['content'] = str(e)
return auth_status
def GetAccessTokenForApiQuery(api_query):
"""Attempts to retrieve a valid access token for an API Query.
First retrieves the stored access token for the owner of the API Query, if
available. Checks if token has expired and refreshes token if required (and
saves it) before returning the token.
Args:
api_query: The API Query for which to retrieve an access token.
Returns:
A valid access token if available or None.
"""
user_settings = users_helper.GetGaSuperProxyUser(api_query.user.key().name())
if user_settings.ga_refresh_token and user_settings.ga_access_token:
access_token = user_settings.ga_access_token
# Check for expired access_token
if datetime.utcnow() > user_settings.ga_token_expiry:
response = FetchAccessToken(user_settings.ga_refresh_token)
if (response.get('status_code') == 200 and response.get('content')
and response.get('content').get('access_token')):
access_token = response.get('content').get('access_token')
expires_in = int(response.get('content').get('expires_in', 0))
users_helper.SetUserCredentials(api_query.user.key().name(),
user_settings.ga_refresh_token,
access_token,
expires_in)
return access_token
return None
def GetOAuthCredentials(code):
"""Retrieves credentials from OAuth 2.0 service.
Args:
code: The authorization code from the auth server
Returns:
A dict indicating whether auth flow was a success and the auth
server response.
"""
auth_params = {
'code': code,
'client_id': OAUTH_CLIENT_ID,
'client_secret': OAUTH_CLIENT_SECRET,
'redirect_uri': OAUTH_REDIRECT_URI,
'grant_type': 'authorization_code'
}
return FetchCredentials(auth_params)
def OAuthHandler(request):
"""Handles OAuth Responses from Google Accounts.
The function can handle code, revoke, and error requests.
Args:
request: The request object for the incoming request from Google Accounts.
Returns:
A dict containing messages that can be used to display to a user to indicate
the outcome of the auth task.
"""
# Request to exchange auth code for refresh/access token
if request.get('code'):
code_response = SaveAuthTokensForUser(request.get('code'))
if code_response.get('success'):
auth_values = {
'status': 'success',
'message': AUTH_MESSAGES['codeSuccess'],
}
else:
auth_values = {
'status': 'error',
'message': AUTH_MESSAGES['codeError'],
'message_detail': code_response.get('message')
}
# Request to revoke an issued refresh/access token
elif request.get('revoke'):
revoked = RevokeAuthTokensForUser()
if revoked:
auth_values = {
'status': 'success',
'message': AUTH_MESSAGES['revokeSuccess']
}
else:
auth_values = {
'status': 'error',
'message': AUTH_MESSAGES['revokeError']
}
# Error returned from OAuth service
elif request.get('error'):
auth_values = {
'status': 'error',
'message': AUTH_MESSAGES['badRequest'],
'message_detail': request.get('error')
}
else:
auth_values = {
'status': 'error',
'message': 'There was an error connecting to Google Analytics.',
'message_detail': AUTH_MESSAGES['badRequest']
}
return auth_values
def RevokeAuthTokensForUser():
"""Revokes a user's auth tokens and removes them from the datastore.
Returns:
A boolean indicating whether the revoke was successfully.
"""
user = users_helper.GetGaSuperProxyUser(users.get_current_user().user_id())
if user and user.ga_refresh_token:
RevokeOAuthCredentials(user.ga_refresh_token)
users_helper.SetUserCredentials(users.get_current_user().user_id())
return True
return False
def RevokeOAuthCredentials(token):
"""Revokes an OAuth token.
Args:
token: A refresh or access token
Returns:
True if token successfully revoked, False otherwise
"""
if token:
revoke_url = OAUTH_REVOKE_ENDPOINT + token
try:
response = urlfetch.fetch(url=revoke_url)
if response.status_code == 200:
return True
except urlfetch.Error:
return False
return False
def SaveAuthTokensForUser(code):
"""Exchanges an auth code for tokens and saves it to the datastore for a user.
Args:
code: The auth code from Google Accounts to exchange for tokens.
Returns:
A dict indicating whether the user's auth settings were successfully
saved to the datastore and any messages returned from the service.
"""
response = {
'success': False
}
auth_response = GetOAuthCredentials(code)
response_content = auth_response.get('content')
if (auth_response.get('status_code') == 200
and response_content
and response_content.get('refresh_token')):
refresh_token = response_content.get('refresh_token')
access_token = response_content.get('access_token')
users_helper.SetUserCredentials(
users.get_current_user().user_id(),
refresh_token, access_token)
response['success'] = True
else:
response['message'] = response_content
return response

View File

@@ -0,0 +1,132 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Application settings/constants for the Google Analytics superProxy."""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
# Determines if account info is removed from responses.
# Set to True to remove Google Analytics account info from public responses.
# TODO(pfrisella): Move this into an Admin Web UI.
ANONYMIZE_RESPONSES = True
# Determines which timezone relative dates will be resolved to.
# North American timezones are supported and UTC.
# Acceptable values are (case-insensitive):
# atlantic, atc, adt, eastern, est, edt, central, cst, cdt, mountain, mst,
# mdt, pacific, pst, pdt, utc
# TODO(pfrisella): Move this into an Admin Web UI.
TIMEZONE = 'utc'
# A list of all supported formats for responses.
# The key represents the query paramter value to use to request a format.
# For example &format=csv will return a CSV response.
# The label key/value is the friendly name for this format. It is displayed
# in the Web UI.
DEFAULT_FORMAT = 'json'
SUPPORTED_FORMATS = {
'json': {
'label': 'JSON'
},
'csv': {
'label': 'CSV'
},
'data-table': {
'label': 'DataTable (JSON String)'
},
'data-table-response': {
'label': 'DataTable (JSON Response)'
},
'tsv': {
'label': 'TSV for Excel'
}
}
# Log API Response Errors
# It's not recommended to set this to False.
LOG_ERRORS = True
# Scheduling: Max number of errors until query scheduling is paused.
QUERY_ERROR_LIMIT = 10
# Scheduling: How many seconds until a query is considered abandoned. (i.e.
# there have been no requests for the data). Calculated as a multiple of the
# query's refresh interval.
ABANDONED_INTERVAL_MULTIPLE = 2
# Scheduling: Used to randomize start times for scheduled tasks to prevent
# multiple queries from all starting at the same time.
MAX_RANDOM_COUNTDOWN = 60 # seconds
# API Query Limitations (CreateForm)
MAX_NAME_LENGTH = 115 # characters
MAX_URL_LENGTH = 2000 # characters
MIN_INTERVAL = 15 # seconds
MAX_INTERVAL = 2505600 # seconds
# Sharding Key Names
REQUEST_COUNTER_KEY_TEMPLATE = 'request-count-{}'
REQUEST_TIMESTAMP_KEY_TEMPLATE = 'last-request-{}'
# General Error Messages
ERROR_INACTIVE_QUERY = 'inactiveQuery'
ERROR_INVALID_REQUEST = 'invalidRequest'
ERROR_INVALID_QUERY_ID = 'invalidQueryId'
ERROR_MESSAGES = {
ERROR_INACTIVE_QUERY: ('The query is not yet available. Wait and try again '
'later.'),
ERROR_INVALID_REQUEST: ('The query id is invalid or the API Query is '
'disabled.'),
ERROR_INVALID_QUERY_ID: 'Invalid query id.'
}
DEFAULT_ERROR_MESSAGE = {
'error': ERROR_INVALID_REQUEST,
'code': 400,
'message': ERROR_MESSAGES[ERROR_INVALID_REQUEST]
}
# All Links for Google Analytics superProxy
LINKS = {
# Admin links
'admin_users': '/admin/proxy/users',
'admin_runtask': '/admin/proxy/runtask',
# Owner links
'owner_default': r'/admin.*',
'owner_index': '/admin',
'owner_auth': '/admin/auth',
'owner_activate': '/admin/activate',
'query_manage': '/admin/query/manage',
'query_edit': '/admin/query/edit',
'query_delete': '/admin/query/delete',
'query_delete_errors': '/admin/query/errors/delete',
'query_create': '/admin/query/create',
'query_status_change': '/admin/query/status',
'query_run': '/admin/query/run',
'query_schedule': '/admin/query/schedule',
# Public links
'public_default': r'/.*',
'public_index': '/',
'public_query': '/query',
# Static directories
'css': '/static/gasuperproxy/css/',
'js': '/static/gasuperproxy/js/'
}

View File

@@ -0,0 +1,133 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles timezone conversions for the Google Analytics superProxy.
Based on example from:
https://developers.google.com/appengine/docs/python/datastore/typesandpropertyclasses#datetime
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import datetime
def GetNATzinfo(tz='utc'):
"""Returns a timezone info object for the requested North American timezone.
Args:
tz: The requested timezone in North America.
Returns:
tzinfo object The tzinfo object for the requested timezone. If the timezone
info is not available then None is returned.
Raises:
AttributeError: An invalid string was provided as an argument.
"""
tzinfo = None
tz = tz.lower()
if tz == 'pst' or tz == 'pdt' or tz == 'pacific':
tzinfo = NorthAmericanTzinfo(-8, 'PST', 'PDT')
elif tz == 'mst' or tz == 'mdt' or tz == 'mountain':
tzinfo = NorthAmericanTzinfo(-7, 'MST', 'MDT')
elif tz == 'cst' or tz == 'cdt' or tz == 'central':
tzinfo = NorthAmericanTzinfo(-6, 'CST', 'CDT')
elif tz == 'est' or tz == 'edt' or tz == 'eastern':
tzinfo = NorthAmericanTzinfo(-5, 'EST', 'EDT')
elif tz == 'ast' or tz == 'adt' or tz == 'atlantic':
tzinfo = NorthAmericanTzinfo(-4, 'AST', 'ADT')
elif tz == 'utc':
tzinfo = UtcTzinfo()
return tzinfo
def ConvertDatetimeTimezone(date_to_convert, to_timezone):
"""Converts a datetime object's timzeone.
Args:
date_to_convert: The datetime object to convert the timezone.
to_timezone: The timezone to convert the datetimt to.
Returns:
A datetime object set to the timezone requested. If the timezone isn't
supported then None is returned.
Raises:
AttributeError: An invalid datetime object was provided.
"""
tzinfo = GetNATzinfo(to_timezone)
if tzinfo:
new_date = date_to_convert.replace(tzinfo=UtcTzinfo())
return new_date.astimezone(tzinfo)
return None
class NorthAmericanTzinfo(datetime.tzinfo):
"""Implementation of North American timezones."""
def __init__(self, hours, std_name, dst_name):
"""Initialize value for the North American timezone.
Args:
hours: integer Offset of local time from UTC in hours. E.g. -8 is Pacific.
std_name: string Name of the timezone for standard time. E.g. PST.
dst_name: string Name of the timezone for daylight savings time. E.g. PDT.
"""
self.std_offset = datetime.timedelta(hours=hours)
self.std_name = std_name
self.dst_name = dst_name
def utcoffset(self, dt):
return self.std_offset + self.dst(dt)
def _FirstSunday(self, dt):
"""First Sunday on or after dt."""
return dt + datetime.timedelta(days=(6-dt.weekday()))
def dst(self, dt):
# 2 am on the second Sunday in March
dst_start = self._FirstSunday(datetime.datetime(dt.year, 3, 8, 2))
# 1 am on the first Sunday in November
dst_end = self._FirstSunday(datetime.datetime(dt.year, 11, 1, 1))
if dst_start <= dt.replace(tzinfo=None) < dst_end:
return datetime.timedelta(hours=1)
else:
return datetime.timedelta(hours=0)
def tzname(self, dt):
if self.dst(dt) == datetime.timedelta(hours=0):
return self.dst_name
else:
return self.std_name
class UtcTzinfo(datetime.tzinfo):
"""Implementation of UTC time."""
def utcoffset(self, dt):
return datetime.timedelta(0)
def dst(self, dt):
return datetime.timedelta(0)
def tzname(self, dt):
return 'UTC'

View File

@@ -0,0 +1,38 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Custom exceptions for the Google Analytics superProxy."""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
class GaSuperProxyHttpError(Exception):
"""Exception for a proxy response with a non-200 HTTP status."""
def __init__(self, content, status):
"""Initialize the error object.
Args:
content: A dict representing the error message response to display.
status: An integer representing the HTTP status code of the error.
"""
Exception.__init__(self)
self.status = status
self.content = content
def __str__(self):
"""Returns the string representation of the error message content."""
return repr(self.content)

View File

@@ -0,0 +1,205 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions for DB Models.
FormatTimedelta: Converts a time delta to nicely formatted string.
GetApiQueryLastRequest: Get timestamp of last request for an API Query.
GetApiQueryRequestCount: Get request count of API Query.
GetLastRequestTimedelta: Get the time since last request for query.
GetModifiedTimedelta: Get the time since last refresh of API Query.
IsApiQueryAbandoned: Checks if an API Query is abandoned.
IsErrorLimitReached: Checks if the API Query has reached the error limit.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from datetime import datetime
from controllers.util import co
from controllers.util import request_counter_shard
from controllers.util import request_timestamp_shard
from google.appengine.api import memcache
def FormatTimedelta(time_delta):
"""Formats a time delta into a sentence.
Args:
time_delta: A Timedelta object to format.
Returns:
A string containing a nicely formatted time delta in the form of
"HH hours, MM minutes, ss seconds ago".
"""
seconds = int(time_delta.total_seconds())
days, time_left = divmod(seconds, 86400) # 86400: seconds in a day = 24*60*60
hours, time_left = divmod(time_left, 3600) # 3600: seconds in an hour = 60*60
minutes, seconds = divmod(time_left, 60) # 60: seconds in a minute
pretty_label = '%ss ago' % seconds
if days > 0:
pretty_label = '%sd, %sh, %sm ago' % (days, hours, minutes)
elif hours > 0:
pretty_label = '%sh, %sm ago' % (hours, minutes)
elif minutes > 0:
pretty_label = '%sm, %ss ago' % (minutes, seconds)
return pretty_label
def GetApiQueryLastRequest(query_id):
"""Returns the timestamp of the last request.
Args:
query_id: The ID of the Query for which to retrieve the last request time.
Returns:
A DateTime object specifying the time when the API Query was last
requested using the external public endpoint.
"""
if query_id:
request_timestamp_key = co.REQUEST_TIMESTAMP_KEY_TEMPLATE.format(query_id)
request_timestamp = memcache.get(request_timestamp_key)
if not request_timestamp:
request_timestamp = request_timestamp_shard.GetTimestamp(
request_timestamp_key)
return request_timestamp
return None
def GetApiQueryRequestCount(query_id):
"""Returns the request count for an API Query.
Args:
query_id: The ID of the Query from which to retrieve the request count.
Returns:
An integer representing the number of times the API Query has been
requested using the external public endpoint.
"""
request_counter_key = co.REQUEST_COUNTER_KEY_TEMPLATE.format(query_id)
request_count = memcache.get(request_counter_key)
if not request_count:
request_count = request_counter_shard.GetCount(request_counter_key)
return request_count
def GetLastRequestTimedelta(api_query, from_time=None):
"""Returns how long since the API Query response was last requested.
Args:
api_query: The API Query from which to retrieve the last request timedelta.
from_time: A DateTime object representing the start time to calculate the
timedelta from.
Returns:
A string that describes how long since the API Query response was last
requested in the form of "HH hours, MM minutes, ss seconds ago" or None
if the API Query response has never been requested.
"""
if not from_time:
from_time = datetime.utcnow()
if api_query.last_request:
time_delta = from_time - api_query.last_request
return FormatTimedelta(time_delta)
return None
def GetModifiedTimedelta(api_query, from_time=None):
"""Returns how long since the API Query was updated.
Args:
api_query: The API Query from which to retrieve the modified timedelta.
from_time: A DateTime object representing the start time to calculate the
timedelta from.
Returns:
A string that describes how long since the API Query has been updated in
the form of "HH hours, MM minutes, ss seconds ago" or None if the API Query
has never been updated.
"""
if not from_time:
from_time = datetime.utcnow()
api_query_response = api_query.api_query_responses.get()
if api_query_response:
time_delta = from_time - api_query_response.modified
return FormatTimedelta(time_delta)
return None
def IsApiQueryAbandoned(api_query):
"""Determines whether the API Query is considered abandoned.
When an API Query response has not been requested for a period
of time (configurable) then it is considered abandoned. Abandoned
queries will not be scheduled for a refresh. This saves quota and resources.
If any of the following 3 cases are true, then a query is considered to be
abandoned:
1) The timestamp of the last public request is greater than some multiple
of the query's refresh interval. The multiple is a configurable value,
defined as the constant ABANDONED_INTERVAL_MULTIPLE. For example, if the
refresh interval of a query is 30 seconds, and the
ABANDONED_INTERVAL_MULTIPLE is 2, and the last public request for the query
is greater than 60 seconds ago, then the query is considered abandoned.
If the query has never been publicly requested and there is no timestamp then
the modified date of the query is used. The query is considered abandoned
when:
2) The timestamp of the last modified date of the query is greater than some
multiple of the query's refresh interval. The multiple is a configurable
value, defined as the constant ABANDONED_INTERVAL_MULTIPLE.
If the query has never been publicly requested and there is no modified
timestamp then the query is considered abandoned when:
3) A stored API Query Response exists for the query.
Args:
api_query: THe API Query to check if abandonded.
Returns:
A boolean indicating if the query is considered abandoned.
"""
# Case 1: Use the last requested timestamp.
if api_query.last_request:
last_request_age = int(
(datetime.utcnow() - api_query.last_request).total_seconds())
max_timedelta = co.ABANDONED_INTERVAL_MULTIPLE * api_query.refresh_interval
return last_request_age > max_timedelta
# Case 2: Use the last modified timestamp.
elif api_query.modified:
last_modified_age = int(
(datetime.utcnow() - api_query.modified).total_seconds())
max_timedelta = co.ABANDONED_INTERVAL_MULTIPLE * api_query.refresh_interval
return last_modified_age > max_timedelta
# Case 3: Check if there is a saved API Query Response.
else:
api_query_response = api_query.api_query_responses.get()
if api_query_response:
return True
return False
def IsErrorLimitReached(api_query):
"""Returns a boolean to indicate if the API Query reached the error limit."""
return (api_query.api_query_errors.count(
limit=co.QUERY_ERROR_LIMIT) == co.QUERY_ERROR_LIMIT)

View File

@@ -0,0 +1,659 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions to help ineteract with API Queries.
ResolveDates: Converts placeholders to actual dates.
BuildApiQuery: Creates an API Query for the user.
DeleteApiQuery: Deletes an API Query and related entities.
DeleteApiQueryErrors: Deletes API Query Errors.
DeleteApiQueryResponses: Deletes API Query saved Responses.
ExecuteApiQueryTask: Runs a task from the task queue.
FetchApiQueryResponse: Makes a request to an API.
GetApiQuery: Retrieves an API Query from the datastore.
GetApiQueryResponseFromDb: Returns the response content from the datastore..
GetApiQueryResponseFromMemcache: Retrieves an API query from memcache.
GetPublicEndpointResponse: Returns public response for an API Query request.
InsertApiQueryError: Saves an API Query Error response.
ListApiQueries: Returns a list of API Queries.
RefreshApiQueryResponse: Fetched and saves an updated response for a query
SaveApiQuery: Saves an API Query for a user.
SaveApiQueryResponse: Saves an API Query response for an API Query.
ScheduleAndSaveApiQuery: Saves and API Query and schedules it.
SetPublicEndpointStatus: Enables/Disables the public endpoint.
UpdateApiQueryCounter: Increments the request counter for an API Query.
UpdateApiQueryTimestamp: Updates the last request time for an API Query.
ValidateApiQuery: Validates form input for creating an API Query.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import copy
from datetime import datetime
from datetime import timedelta
import json
import re
import urllib
from controllers.transform import transformers
from controllers.util import analytics_auth_helper
from controllers.util import co
from controllers.util import date_helper
from controllers.util import errors
from controllers.util import request_counter_shard
from controllers.util import request_timestamp_shard
from controllers.util import schedule_helper
from controllers.util import users_helper
from models import db_models
from google.appengine.api import memcache
from google.appengine.api import urlfetch
from google.appengine.api import users
from google.appengine.ext import db
def ResolveDates(fn):
"""A decorator to resolve placeholder dates of an API Query request URL.
Supports {today} and {Ndaysago} date formats.
Args:
fn: The original function being wrapped.
Returns:
An API Query entity with a new request URL where placeholder dates
have been resolved to actual dates.
"""
def Wrapper(api_query):
"""Returns an API Query with resolved placeholder dates in request URL."""
query = urllib.unquote(api_query.request)
start_search = re.search(r'start-date={(\d+)daysago}', query)
end_search = re.search(r'end-date={(\d+)daysago}', query)
if start_search:
resolved_date = (datetime.utcnow() - timedelta(
days=int(start_search.group(1))))
resolved_date = FormatResolvedDate(resolved_date)
query = query.replace(start_search.group(),
'start-date=%s' % resolved_date)
if end_search:
resolved_date = (datetime.utcnow() - timedelta(days=int(
end_search.group(1))))
resolved_date = FormatResolvedDate(resolved_date)
query = query.replace(end_search.group(),
'end-date=%s' % resolved_date)
if '{today}' in query:
resolved_date = datetime.utcnow()
resolved_date = FormatResolvedDate(resolved_date)
query = query.replace('{today}', resolved_date)
# Leave original API Query untouched by returning a copy w/resolved dates
new_api_query = copy.copy(api_query)
new_api_query.request = query
return fn(new_api_query)
return Wrapper
def FormatResolvedDate(date_to_format, timezone=co.TIMEZONE):
"""Formats a UTC date for the Google Analytics superProxy.
Args:
date_to_format: datetime The UTC date to format.
timezone: string The timezone to use when formatting the date.
E.g. 'pst', 'Eastern', 'cdt'.
Returns:
A string representing the resolved date for the specified timezone. The
date format returned is yyyy-mm-dd. If the timezone specified does not
exist then the original date will be used.
"""
if timezone.lower() != 'utc':
timezone_date = date_helper.ConvertDatetimeTimezone(
date_to_format, timezone)
if timezone_date:
date_to_format = timezone_date
return date_to_format.strftime('%Y-%m-%d')
def BuildApiQuery(name, request, refresh_interval, **kwargs):
"""Builds an API Query object for the current user.
Args:
name: The name of the API Query.
request: The requet URL for the API Query.
refresh_interval: An integer that specifies how often, in seconds, to
refresh the API Query when it is scheduled.
**kwargs: Additional properties to set when building the query.
Returns:
An API Query object configured using the passed in parameters.
"""
current_user = users_helper.GetGaSuperProxyUser(
users.get_current_user().user_id())
modified = datetime.utcnow()
api_query = db_models.ApiQuery(name=name,
request=request,
refresh_interval=refresh_interval,
user=current_user,
modified=modified)
for key in kwargs:
if hasattr(api_query, key):
setattr(api_query, key, kwargs[key])
return api_query
def DeleteApiQuery(api_query):
"""Deletes an API Query including any related entities.
Args:
api_query: The API Query to delete.
"""
if api_query:
query_id = str(api_query.key())
DeleteApiQueryErrors(api_query)
DeleteApiQueryResponses(api_query)
api_query.delete()
memcache.delete_multi(['api_query'] + co.SUPPORTED_FORMATS.keys(),
key_prefix=query_id)
request_counter_key = co.REQUEST_COUNTER_KEY_TEMPLATE.format(query_id)
request_counter_shard.DeleteCounter(request_counter_key)
request_timestamp_key = co.REQUEST_TIMESTAMP_KEY_TEMPLATE.format(query_id)
request_timestamp_shard.DeleteTimestamp(request_timestamp_key)
def DeleteApiQueryErrors(api_query):
"""Deletes API Query Errors.
Args:
api_query: The API Query to delete errors for.
"""
if api_query and api_query.api_query_errors:
db.delete(api_query.api_query_errors)
def DeleteApiQueryResponses(api_query):
"""Deletes an API Query saved response.
Args:
api_query: The API Query for which to delete the response.
"""
if api_query and api_query.api_query_responses:
db.delete(api_query.api_query_responses)
def ExecuteApiQueryTask(api_query):
"""Executes a refresh of an API Query from the task queue.
Attempts to fetch and update an API Query and will also log any errors.
Schedules the API Query for next execution.
Args:
api_query: The API Query to refresh.
Returns:
A boolean. True if the API refresh was a success and False if the API
Query is not valid or an error was logged.
"""
if api_query:
query_id = str(api_query.key())
api_query.in_queue = False
api_response_content = FetchApiQueryResponse(api_query)
if not api_response_content or api_response_content.get('error'):
InsertApiQueryError(api_query, api_response_content)
if api_query.is_error_limit_reached:
api_query.is_scheduled = False
SaveApiQuery(api_query)
# Since it failed, execute the query again unless the refresh interval of
# query is less than the random countdown, then schedule it normally.
if api_query.refresh_interval < co.MAX_RANDOM_COUNTDOWN:
schedule_helper.ScheduleApiQuery(api_query) # Run at normal interval.
else:
schedule_helper.ScheduleApiQuery(api_query, randomize=True, countdown=0)
return False
else:
SaveApiQueryResponse(api_query, api_response_content)
# Check that public endpoint wasn't disabled after task added to queue.
if api_query.is_active:
memcache.set_multi({'api_query': api_query,
co.DEFAULT_FORMAT: api_response_content},
key_prefix=query_id,
time=api_query.refresh_interval)
# Delete the transformed content in memcache since it will be updated
# at the next request.
delete_keys = set(co.SUPPORTED_FORMATS) - set([co.DEFAULT_FORMAT])
memcache.delete_multi(list(delete_keys), key_prefix=query_id)
SaveApiQuery(api_query)
schedule_helper.ScheduleApiQuery(api_query)
return True
# Save the query state just in case the user disabled it
# while it was in the task queue.
SaveApiQuery(api_query)
return False
@ResolveDates
@analytics_auth_helper.AuthorizeApiQuery
def FetchApiQueryResponse(api_query):
try:
response = urlfetch.fetch(url=api_query.request, deadline=60)
response_content = json.loads(response.content)
except (ValueError, TypeError, AttributeError, urlfetch.Error), e:
return {'error': str(e)}
return response_content
def GetApiQuery(query_id):
"""Retrieves an API Query entity.
Args:
query_id: the id of the entity
Returns:
The requested API Query entity or None if it doesn't exist.
"""
try:
return db_models.ApiQuery.get(query_id)
except db.BadKeyError:
return None
def GetApiQueryResponseFromDb(api_query):
"""Attempts to return an API Query response from the datastore.
Args:
api_query: The API Query for which the response is being requested.
Returns:
A dict with the HTTP status code and content for a public response.
e.g. Valid Response: {'status': 200, 'content': A_JSON_RESPONSE}
e.g. Error: {'status': 400, 'content': {'error': 'badRequest',
'code': 400,
'message': This is a bad request'}}
"""
status = 400
content = co.DEFAULT_ERROR_MESSAGE
if api_query and api_query.is_active:
try:
query_response = api_query.api_query_responses.get()
if query_response:
status = 200
content = query_response.content
else:
status = 400
content = {
'error': co.ERROR_INACTIVE_QUERY,
'code': status,
'message': co.ERROR_MESSAGES[co.ERROR_INACTIVE_QUERY]}
except db.BadKeyError:
status = 400
content = {
'error': co.ERROR_INVALID_QUERY_ID,
'code': status,
'message': co.ERROR_MESSAGES[co.ERROR_INVALID_QUERY_ID]}
response = {
'status': status,
'content': content
}
return response
def GetApiQueryResponseFromMemcache(query_id, requested_format):
"""Attempts to return an API Query response from memcache.
Args:
query_id: The query id of the API Query to retrieve from memcache.
requested_format: The format type requested for the response.
Returns:
A dict contatining the API Query, the response in the default format
and requested format if available. None if there was no query found.
"""
query_in_memcache = memcache.get_multi(
['api_query', co.DEFAULT_FORMAT, requested_format],
key_prefix=query_id)
if query_in_memcache:
query = {
'api_query': query_in_memcache.get('api_query'),
'content': query_in_memcache.get(co.DEFAULT_FORMAT),
'transformed_content': query_in_memcache.get(requested_format)
}
return query
return None
def GetPublicEndpointResponse(
query_id=None, requested_format=None, transform=None):
"""Returns the public response for an external user request.
This handles all the steps required to get the latest successful API
response for an API Query.
1) Check Memcache, if found skip to #4.
2) If not in memcache, check if the stored response is abandoned and needs
to be refreshed.
3) Retrieve response from datastore.
4) Perform any transforms and return the formatted response to the user.
Args:
query_id: The query id to retrieve the response for.
requested_format: The format type requested for the response.
transform: The transform instance to use to transform the content to the
requested format, if required.
Returns:
A tuple contatining the response content, and status code to
render. e.g. (CONTENT, 200)
"""
transformed_response_content = None
schedule_query = False
if not requested_format or requested_format not in co.SUPPORTED_FORMATS:
requested_format = co.DEFAULT_FORMAT
response = GetApiQueryResponseFromMemcache(query_id, requested_format)
# 1. Check Memcache
if response and response.get('api_query') and response.get('content'):
api_query = response.get('api_query')
response_content = response.get('content')
transformed_response_content = response.get('transformed_content')
response_status = 200
else:
api_query = GetApiQuery(query_id)
# 2. Check if this is an abandoned query
if (api_query is not None and api_query.is_active
and not api_query.is_error_limit_reached
and api_query.is_abandoned):
RefreshApiQueryResponse(api_query)
# 3. Retrieve response from datastore
response = GetApiQueryResponseFromDb(api_query)
response_content = response.get('content')
response_status = response.get('status')
# Flag to schedule query later on if there is a successful response.
if api_query:
schedule_query = not api_query.in_queue
# 4. Return the formatted response.
if response_status == 200:
UpdateApiQueryCounter(query_id)
UpdateApiQueryTimestamp(query_id)
if co.ANONYMIZE_RESPONSES:
response_content = transformers.RemoveKeys(response_content)
if not transformed_response_content:
try:
transformed_response_content = transform.Transform(response_content)
except (KeyError, TypeError, AttributeError):
# If the transformation fails then return the original content.
transformed_response_content = response_content
memcache_keys = {
'api_query': api_query,
co.DEFAULT_FORMAT: response_content,
requested_format: transformed_response_content
}
memcache.add_multi(memcache_keys,
key_prefix=query_id,
time=api_query.refresh_interval)
# Attempt to schedule query if required.
if schedule_query:
schedule_helper.ScheduleApiQuery(api_query)
response_content = transformed_response_content
else:
raise errors.GaSuperProxyHttpError(response_content, response_status)
return (response_content, response_status)
def InsertApiQueryError(api_query, error):
"""Stores an API Error Response entity for an API Query.
Args:
api_query: The API Query for which the error occurred.
error: The error that occurred.
"""
if co.LOG_ERRORS:
error = db_models.ApiErrorResponse(
api_query=api_query,
content=error,
timestamp=datetime.utcnow())
error.put()
def ListApiQueries(user=None, limit=1000):
"""Returns all queries that have been created.
Args:
user: The user to list API Queries for. None returns all queries.
limit: The maximum number of queries to return.
Returns:
A list of queries.
"""
if user:
try:
db_query = user.api_queries
db_query.order('name')
return db_query.run(limit=limit)
except db.ReferencePropertyResolveError:
return None
else:
api_query = db_models.ApiQuery.all()
api_query.order('name')
return api_query.run(limit=limit)
return None
def RefreshApiQueryResponse(api_query):
"""Executes the API request and refreshes the response for an API Query.
Args:
api_query: The API Query to refresh the respone for.
"""
if api_query:
api_response = FetchApiQueryResponse(api_query)
if not api_response or api_response.get('error'):
InsertApiQueryError(api_query, api_response)
else:
SaveApiQueryResponse(api_query, api_response)
# Clear memcache since this query response has changed.
memcache.delete_multi(['api_query'] + co.SUPPORTED_FORMATS.keys(),
key_prefix=str(api_query.key()))
def SaveApiQuery(api_query, **kwargs):
"""Saves an API Query to the datastore.
Args:
api_query: The API Query to save.
**kwargs: Additional properties to set for the API Query before saving.
Returns:
If successful the API Query that was saved or None if the save was
unsuccessful.
"""
if api_query:
for key in kwargs:
modified = datetime.utcnow()
api_query.modified = modified
if hasattr(api_query, key):
setattr(api_query, key, kwargs[key])
try:
api_query.put()
return api_query
except db.TransactionFailedError:
return None
return None
def SaveApiQueryResponse(api_query, content):
"""Updates or creates a new API Query Response for an API Query.
Args:
api_query: The API Query for which the response will be added to
content: The content of the API respone to add to the API Query.
"""
db_response = api_query.api_query_responses.get()
modified = datetime.utcnow()
if db_response:
db_response.content = content
db_response.modified = modified
else:
db_response = db_models.ApiQueryResponse(api_query=api_query,
content=content,
modified=modified)
db_response.put()
def ScheduleAndSaveApiQuery(api_query, **kwargs):
"""Schedules and saves an API Query.
Args:
api_query: The API Query to save and schedule.
**kwargs: Additional properties to set for the API Query before saving.
Returns:
If successful the API Query that was saved or None if the save was
unsuccessful.
"""
if api_query:
api_query.is_active = True
api_query.is_scheduled = True
saved = SaveApiQuery(api_query, **kwargs)
if saved:
schedule_helper.ScheduleApiQuery(api_query, randomize=True, countdown=0)
return api_query
return None
def SetPublicEndpointStatus(api_query, status=None):
"""Change the public endpoint status of an API Query.
Args:
api_query: The API Query to change
status: The status to change the API Query to. If status=None then the
status of the API Query will be toggled.
Returns:
True if status change was successful, False otherwise.
"""
if api_query and status in (None, True, False):
if not status:
api_query.is_active = not api_query.is_active
else:
api_query.is_active = status
if api_query.is_active is False:
api_query.is_scheduled = False
try:
api_query.put()
memcache.delete_multi(['api_query'] + co.SUPPORTED_FORMATS.keys(),
key_prefix=str(api_query.key()))
return True
except db.TransactionFailedError:
return False
return False
def UpdateApiQueryCounter(query_id):
"""Increment the request counter for the API Query."""
request_counter_key = co.REQUEST_COUNTER_KEY_TEMPLATE.format(query_id)
request_counter_shard.Increment(request_counter_key)
def UpdateApiQueryTimestamp(query_id):
"""Update the last request timestamp for an API Query."""
request_timestamp_key = co.REQUEST_TIMESTAMP_KEY_TEMPLATE.format(query_id)
request_timestamp_shard.Refresh(request_timestamp_key)
def ValidateApiQuery(request_input):
"""Validates API Query settings.
Args:
request_input: The incoming request object containing form input value.
Returns:
A dict containing the validated API Query values or None if the input
was invalid.
e.g. {'name': 'Query Name',
'request': 'http://apirequest',
'refresh_interval': 15
}
"""
if request_input:
name = request_input.get('name')
request = request_input.get('request')
refresh_interval = request_input.get('refresh_interval')
validated_request = None
try:
if not name or not request or not refresh_interval:
return None
if len(name) > co.MAX_NAME_LENGTH or len(name) <= 0:
return None
validated_request = {
'name': name
}
if len(request) > co.MAX_URL_LENGTH or len(request) <= 0:
return None
validated_request['request'] = request
if int(refresh_interval) not in range(co.MIN_INTERVAL, co.MAX_INTERVAL):
return None
validated_request['refresh_interval'] = int(refresh_interval)
except (ValueError, TypeError):
return None
return validated_request
return None

View File

@@ -0,0 +1,140 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles the request counter for API Queries.
Sharding is used to keep track of the number of requests for an API Query.
Based on code from:
https://developers.google.com/appengine/articles/sharding_counters
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import random
from google.appengine.api import memcache
from google.appengine.ext import ndb
SHARD_KEY_TEMPLATE = 'shard-{}-{:d}'
class GeneralCounterShardConfig(ndb.Model):
"""Tracks the number of shards for each named counter."""
num_shards = ndb.IntegerProperty(default=20)
@classmethod
def AllKeys(cls, name):
"""Returns all possible keys for the counter name given the config.
Args:
name: The name of the counter.
Returns:
The full list of ndb.Key values corresponding to all the possible
counter shards that could exist.
"""
config = cls.get_or_insert(name)
shard_key_strings = [SHARD_KEY_TEMPLATE.format(name, index)
for index in range(config.num_shards)]
return [ndb.Key(GeneralCounterShard, shard_key_string)
for shard_key_string in shard_key_strings]
class GeneralCounterShard(ndb.Model):
"""Shards for each named counter."""
count = ndb.IntegerProperty(default=0)
def GetCount(name):
"""Retrieve the value for a given sharded counter.
Args:
name: The name of the counter.
Returns:
Integer; the cumulative count of all sharded counters for the given
counter name.
"""
total = memcache.get(name)
if total is None:
total = 0
all_keys = GeneralCounterShardConfig.AllKeys(name)
for counter in ndb.get_multi(all_keys):
if counter is not None:
total += counter.count
memcache.add(name, total, 60)
return total
def Increment(name):
"""Increment the value for a given sharded counter.
Args:
name: The name of the counter.
"""
config = GeneralCounterShardConfig.get_or_insert(name)
_Increment(name, config.num_shards)
@ndb.transactional
def _Increment(name, num_shards):
"""Transactional helper to increment the value for a given sharded counter.
Also takes a number of shards to determine which shard will be used.
Args:
name: The name of the counter.
num_shards: How many shards to use.
"""
index = random.randint(0, num_shards - 1)
shard_key_string = SHARD_KEY_TEMPLATE.format(name, index)
counter = GeneralCounterShard.get_by_id(shard_key_string)
if counter is None:
counter = GeneralCounterShard(id=shard_key_string)
counter.count += 1
counter.put()
# Memcache increment does nothing if the name is not a key in memcache
memcache.incr(name)
@ndb.transactional
def IncreaseShards(name, num_shards):
"""Increase the number of shards for a given sharded counter.
Will never decrease the number of shards.
Args:
name: The name of the counter.
num_shards: How many shards to use.
"""
config = GeneralCounterShardConfig.get_or_insert(name)
if config.num_shards < num_shards:
config.num_shards = num_shards
config.put()
def DeleteCounter(name):
"""Delete a sharded counter.
Args:
name: The name of the counter to delete.
"""
all_keys = GeneralCounterShardConfig.AllKeys(name)
ndb.delete_multi(all_keys)
memcache.delete(name)
config_key = ndb.Key('GeneralCounterShardConfig', name)
config_key.delete()

View File

@@ -0,0 +1,143 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles the request timestamp for API Query requests.
Sharding timestamps is used to handle when the last request was made for
and API Query.
Based on code from:
https://developers.google.com/appengine/articles/sharding_counters
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from datetime import datetime
import random
from google.appengine.api import memcache
from google.appengine.ext import ndb
SHARD_KEY_TEMPLATE = 'shard-{}-{:d}'
class GeneralTimestampShardConfig(ndb.Model):
"""Tracks the number of shards for each named timestamp."""
num_shards = ndb.IntegerProperty(default=20)
@classmethod
def AllKeys(cls, name):
"""Returns all possible keys for the timestamp name given the config.
Args:
name: The name of the timestamp.
Returns:
The full list of ndb.Key values corresponding to all the possible
timestamp shards that could exist.
"""
config = cls.get_or_insert(name)
shard_key_strings = [SHARD_KEY_TEMPLATE.format(name, index)
for index in range(config.num_shards)]
return [ndb.Key(GeneralTimestampShard, shard_key_string)
for shard_key_string in shard_key_strings]
class GeneralTimestampShard(ndb.Model):
"""Shards for each named Timestamp."""
timestamp = ndb.DateTimeProperty()
def GetTimestamp(name):
"""Retrieve the value for a given sharded timestamp.
Args:
name: The name of the timestamp.
Returns:
Integer; the cumulative count of all sharded Timestamps for the given
Timestamp name.
"""
latest_timestamp = memcache.get(name)
if latest_timestamp is None:
all_keys = GeneralTimestampShardConfig.AllKeys(name)
for timestamp in ndb.get_multi(all_keys):
if timestamp is not None and latest_timestamp is None:
latest_timestamp = timestamp.timestamp
elif timestamp is not None and timestamp.timestamp > latest_timestamp:
latest_timestamp = timestamp.timestamp
memcache.add(name, latest_timestamp, 60)
return latest_timestamp
def Refresh(name):
"""Refresh the value for a given sharded timestamp.
Args:
name: The name of the timestamp.
"""
config = GeneralTimestampShardConfig.get_or_insert(name)
_Refresh(name, config.num_shards)
@ndb.transactional
def _Refresh(name, num_shards):
"""Transactional helper to refresh the value for a given sharded timestamp.
Also takes a number of shards to determine which shard will be used.
Args:
name: The name of the timestamp.
num_shards: How many shards to use.
"""
index = random.randint(0, num_shards - 1)
shard_key_string = SHARD_KEY_TEMPLATE.format(name, index)
timestamp = GeneralTimestampShard.get_by_id(shard_key_string)
if timestamp is None:
timestamp = GeneralTimestampShard(id=shard_key_string)
timestamp.timestamp = datetime.utcnow()
timestamp.put()
# Memcache replace does nothing if the name is not a key in memcache
memcache.replace(name, timestamp.timestamp)
@ndb.transactional
def IncreaseShards(name, num_shards):
"""Increase the number of shards for a given sharded counter.
Will never decrease the number of shards.
Args:
name: The name of the counter.
num_shards: How many shards to use.
"""
config = GeneralTimestampShardConfig.get_or_insert(name)
if config.num_shards < num_shards:
config.num_shards = num_shards
config.put()
def DeleteTimestamp(name):
"""Delete a sharded timestamp.
Args:
name: The name of the timestamp to delete.
"""
all_keys = GeneralTimestampShardConfig.AllKeys(name)
ndb.delete_multi(all_keys)
memcache.delete(name)
config_key = ndb.Key('GeneralTimestampShardConfig', name)
config_key.delete()

View File

@@ -0,0 +1,90 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions to handle API Query scheduling.
SetApiQueryScheduleStatus: Start and stop scheduling for an API Query.
ScheduleApiQuery: Attempt to add an API Query to the task queue.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import logging
import random
from controllers.util import co
from google.appengine.api import taskqueue
def SetApiQueryScheduleStatus(api_query, status=None):
"""Change the scheduling status of an API Query.
Args:
api_query: The API Query to change the scheduling status for.
status: The status to change the API Query to. If status=None then the
scheduling status of the API Query will be toggled.
Returns:
True if status change was successful, False otherwise.
"""
if api_query:
if status is None:
api_query.is_scheduled = not api_query.is_scheduled
elif status:
api_query.is_scheduled = True
else:
api_query.is_scheduled = False
api_query.put()
return True
return False
def ScheduleApiQuery(api_query, randomize=False, countdown=None):
"""Adds a task to refresh an API Query response.
Args:
api_query: the API Query entity to update
randomize: A boolean to indicate whether to add a random amount of time to
task countdown. Helpful to minimze occurrence of all tasks
starting at the same time.
countdown: How long to wait until executing the query
"""
if (not api_query.in_queue
and (api_query.is_scheduled and not api_query.is_abandoned
and not api_query.is_error_limit_reached)):
random_seconds = 0
if randomize:
random_seconds = random.randint(0, co.MAX_RANDOM_COUNTDOWN)
if countdown is None:
countdown = api_query.refresh_interval
try:
taskqueue.add(
url=co.LINKS['admin_runtask'],
countdown=countdown + random_seconds,
params={
'query_id': api_query.key(),
})
api_query.in_queue = True
api_query.put()
except taskqueue.Error as e:
logging.error(
'Error adding task to queue. API Query ID: {}. Error: {}'.format(
api_query.key(), e))

View File

@@ -0,0 +1,204 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions to help prepare template values for API Queries.
GetContentForTemplate: Template value for API Query response content.
GetErrorsForTemplate: Template value for API Query errors responses.
GetFormatLinksForTemplate: Template value for API Query transform links.
GetLinksForTemplate: Template values for API Query links.
GetPropertiesForTemplate: Template values for API Query properties.
GetTemplateValuesForAdmin: All template values required for the Admin page.
GetTemplateValuesForManage: All template values required for the Manage page.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from controllers.util import co
def GetContentForTemplate(api_query):
"""Prepares and returns the template value for an API Query response.
Args:
api_query: The API Query for which to prepare the response content template
value.
Returns:
A dict containing the template value to use for the Response content.
"""
content = {}
if api_query:
api_query_response = api_query.api_query_responses.get()
if api_query_response:
content['response_content'] = api_query_response.content
return content
def GetErrorsForTemplate(api_query):
"""Prepares and returns the template values for API Query error responses.
Args:
api_query: The API Query for which to prepare the errors template values.
Returns:
A dict containing a list of template values to use for each API Query
error responses.
"""
errors = {}
if api_query and api_query.api_query_errors:
error_list = []
for error in api_query.api_query_errors:
error_list.append({
'timestamp': error.timestamp,
'content': error.content
})
errors['errors'] = error_list
return errors
def GetFormatLinksForTemplate(api_query, hostname):
"""Prepares and returns template values for API Query format links.
Args:
api_query: The API Query for which to prepare the format links template
values.
hostname: The hostname to use for the format links.
Returns:
A dict containing the template value to use for the API Query format links.
"""
query_id = api_query.key()
format_links = {}
format_links_list = {}
for transform, config in co.SUPPORTED_FORMATS.items():
format_links_list.update({
config.get('label'): '%s%s?id=%s&format=%s' % (
hostname, co.LINKS['public_query'], query_id, transform)
})
format_links['format_links'] = format_links_list
return format_links
def GetLinksForTemplate(api_query, hostname):
"""Prepares and returns the template values for API Query links.
Args:
api_query: The API Query for which to prepare the links template values.
hostname: The hostname to use for the links.
Returns:
A dict containing the template values to use for API Query links.
"""
query_id = api_query.key()
public_link = '%s%s?id=%s' % (hostname, co.LINKS['public_query'], query_id)
manage_link = '%s?query_id=%s' % (co.LINKS['query_manage'], query_id)
edit_link = '%s?query_id=%s&action=edit' % (
co.LINKS['query_manage'], query_id)
edit_post_link = '%s?query_id=%s' % (co.LINKS['query_edit'], query_id)
delete_link = '%s?query_id=%s' % (co.LINKS['query_delete'], query_id)
delete_errors_link = '%s?query_id=%s' % (
co.LINKS['query_delete_errors'], query_id)
status_change_link = '%s?query_id=%s' % (
co.LINKS['query_status_change'], query_id)
links = {
'public_link': public_link,
'manage_link': manage_link,
'edit_link': edit_link,
'edit_post_link': edit_post_link,
'delete_link': delete_link,
'delete_errors_link': delete_errors_link,
'status_change_link': status_change_link
}
return links
def GetPropertiesForTemplate(api_query):
"""Prepares and returns the template value for a set of API Query properties.
Args:
api_query: The API Query for which to prepare the properties template
values.
Returns:
A dict containing the template values to use for the API Query properties.
"""
properties = {}
if api_query:
properties = {
'id': str(api_query.key()),
'name': api_query.name,
'request': api_query.request,
'user_email': api_query.user.email,
'is_active': api_query.is_active,
'is_scheduled': api_query.is_scheduled,
'is_error_limit_reached': api_query.is_error_limit_reached,
'in_queue': api_query.in_queue,
'refresh_interval': api_query.refresh_interval,
'modified_timedelta': api_query.modified_timedelta,
'last_request_timedelta': api_query.last_request_timedelta,
'request_count': api_query.request_count,
'error_count': api_query.api_query_errors.count(
limit=co.QUERY_ERROR_LIMIT)
}
return properties
def GetTemplateValuesForAdmin(api_queries, hostname):
"""Prepares and returns all the template values required for the Admin page.
Args:
api_queries: The list of queries for which to prepare template values.
hostname: The hostname to use for links.
Returns:
A list of dicts that contain all the template values needed for each API
Query that is listed on the Admin page.
"""
template_values = []
if api_queries:
for api_query in api_queries:
query_values = {}
query_values.update(GetPropertiesForTemplate(api_query))
query_values.update(GetLinksForTemplate(api_query, hostname))
template_values.append(query_values)
return template_values
def GetTemplateValuesForManage(api_query, hostname):
"""Prepares and returns all the template values required for the Manage page.
Args:
api_query: The API Query for which to prepare template values.
hostname: The hostname to use for links.
Returns:
A dict that contains all the template values needed the API
Query that is listed on the Manage page.
"""
template_values = {}
template_values.update(GetPropertiesForTemplate(api_query))
template_values.update(GetLinksForTemplate(api_query, hostname))
template_values.update(GetErrorsForTemplate(api_query))
template_values.update(GetContentForTemplate(api_query))
template_values.update(GetFormatLinksForTemplate(api_query, hostname))
return template_values

View File

@@ -0,0 +1,158 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility functions to handle user operations.
AddInvitation: Adds an email to the user invite table.
ActivateUser: Activates a user account so they can use the application.
GetGaSuperProxyUser: Returns a user from the datastore.
GetInvitation: Gets a user's invitation from the datastore.
ListInvitations: Lists all invitations saved in the datastore.
ListUsers: Lists all users saved in the datastore.
SetUserCredentials: Saves auth tokens for a user.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
from datetime import datetime
from datetime import timedelta
from models import db_models
from google.appengine.api import users
from google.appengine.ext import db
def AddInvitation(email):
"""Create an invite for a user so that they can login.
Args:
email: the email of the user to invite/add.
Returns:
A boolean indicating whether the user was added or not.
"""
if not GetInvitation(email):
invitation = db_models.GaSuperProxyUserInvitation(
email=email.lower(),
issued=datetime.utcnow())
invitation.put()
return True
return False
def ActivateUser():
"""Activates the current user if they have an outstanding invite.
Returns:
The user object for the activated user.
"""
current_user = users.get_current_user()
if current_user:
invite = GetInvitation(current_user.email().lower())
if invite:
user = db_models.GaSuperProxyUser.get_or_insert(
key_name=current_user.user_id(),
email=current_user.email(),
nickname=current_user.nickname())
invite.delete()
return user
return None
def GetGaSuperProxyUser(user_id):
"""Retrieves a GaSuperProxyUser entity.
Args:
user_id: the user id of the entity
Returns:
The requested GaSuperProxyUser entity or None if it does not exist.
"""
try:
return db_models.GaSuperProxyUser.get_by_key_name(user_id)
except db.BadKeyError:
return None
def GetInvitation(email):
"""Retrieves a user invitation.
Args:
email: the email of the user
Returns:
The requested user invitation or None if it does not exist.
"""
invitation = db_models.GaSuperProxyUserInvitation.all()
invitation.filter('email = ', email)
return invitation.get()
def ListInvitations(limit=1000):
"""Returns all outstanding user invitations.
Args:
limit: The maximum number of invitations to return.
Returns:
A list of invitations.
"""
invitation = db_models.GaSuperProxyUserInvitation.all()
return invitation.run(limit=limit)
def ListUsers(limit=1000):
"""Returns all users that have been added to the service.
Args:
limit: The maximum number of queries to return.
Returns:
A list of users.
"""
user = db_models.GaSuperProxyUser.all()
return user.run(limit=limit)
def SetUserCredentials(
user_id, refresh_token=None, access_token=None, expires_in=3600):
"""Saves OAuth credentials for a user. Creates user if it does not exist.
If only a user id is provided then credentials for a user will be cleared.
Args:
user_id: The id of the user to store credentials for.
refresh_token: The refresh token to save for the user.
access_token: The access token to save for the user.
expires_in: How long the access token is valid for (seconds).
"""
user = GetGaSuperProxyUser(user_id)
token_expiry = datetime.utcnow() + timedelta(seconds=expires_in)
if user:
user.ga_refresh_token = refresh_token
user.ga_access_token = access_token
user.ga_token_expiry = token_expiry
else:
user = db_models.GaSuperProxyUser(
key_name=users.get_current_user().user_id(),
email=users.get_current_user().email(),
nickname=users.get_current_user().nickname(),
ga_refresh_token=refresh_token,
ga_access_token=access_token,
ga_token_expiry=token_expiry)
user.put()

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
!function(t){function e(s){if(i[s])return i[s].exports;var r=i[s]={exports:{},id:s,loaded:!1};return t[s].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e){"use strict";gapi.analytics.ready(function(){gapi.analytics.createComponent("ActiveUsers",{initialize:function(){this.activeUsers=0},execute:function(){this.polling_&&this.stop(),this.render_(),gapi.analytics.auth.isAuthorized()?this.getActiveUsers_():gapi.analytics.auth.once("success",this.getActiveUsers_.bind(this))},stop:function(){clearTimeout(this.timeout_),this.polling_=!1,this.emit("stop",{activeUsers:this.activeUsers})},render_:function(){var t=this.get();this.container="string"==typeof t.container?document.getElementById(t.container):t.container,this.container.innerHTML=t.template||this.template,this.container.querySelector("b").innerHTML=this.activeUsers},getActiveUsers_:function(){var t=this.get(),e=1e3*(t.pollingInterval||5);if(isNaN(e)||5e3>e)throw new Error("Frequency must be 5 seconds or more.");this.polling_=!0,gapi.client.analytics.data.realtime.get({ids:t.ids,metrics:"rt:activeUsers"}).execute(function(t){var i=t.totalResults?+t.rows[0][0]:0,s=this.activeUsers;this.emit("success",{activeUsers:this.activeUsers}),i!=s&&(this.activeUsers=i,this.onChange_(i-s)),(this.polling_=!0)&&(this.timeout_=setTimeout(this.getActiveUsers_.bind(this),e))}.bind(this))},onChange_:function(t){var e=this.container.querySelector("b");e&&(e.innerHTML=this.activeUsers),this.emit("change",{activeUsers:this.activeUsers,delta:t}),t>0?this.emit("increase",{activeUsers:this.activeUsers,delta:t}):this.emit("decrease",{activeUsers:this.activeUsers,delta:t})},template:'<div class="ActiveUsers">Active Users: <b class="ActiveUsers-value"></b></div>'})})}]);
//# sourceMappingURL=active-users.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
!function(t){function e(s){if(i[s])return i[s].exports;var a=i[s]={exports:{},id:s,loaded:!1};return t[s].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e){"use strict";gapi.analytics.ready(function(){function t(t){if(s.test(t))return t;var a=i.exec(t);if(a)return e(+a[1]);if("today"==t)return e(0);if("yesterday"==t)return e(1);throw new Error("Cannot convert date "+t)}function e(t){var e=new Date;e.setDate(e.getDate()-t);var i=String(e.getMonth()+1);i=1==i.length?"0"+i:i;var s=String(e.getDate());return s=1==s.length?"0"+s:s,e.getFullYear()+"-"+i+"-"+s}var i=/(\d+)daysAgo/,s=/\d{4}\-\d{2}\-\d{2}/;gapi.analytics.createComponent("DateRangeSelector",{execute:function(){var e=this.get();e["start-date"]=e["start-date"]||"7daysAgo",e["end-date"]=e["end-date"]||"yesterday",this.container="string"==typeof e.container?document.getElementById(e.container):e.container,e.template&&(this.template=e.template),this.container.innerHTML=this.template;var i=this.container.querySelectorAll("input");return this.startDateInput=i[0],this.startDateInput.value=t(e["start-date"]),this.endDateInput=i[1],this.endDateInput.value=t(e["end-date"]),this.setValues(),this.setMinMax(),this.container.onchange=this.onChange.bind(this),this},onChange:function(){this.setValues(),this.setMinMax(),this.emit("change",{"start-date":this["start-date"],"end-date":this["end-date"]})},setValues:function(){this["start-date"]=this.startDateInput.value,this["end-date"]=this.endDateInput.value},setMinMax:function(){this.startDateInput.max=this.endDateInput.value,this.endDateInput.min=this.startDateInput.value},template:'<div class="DateRangeSelector"> <div class="DateRangeSelector-item"> <label>Start Date</label> <input type="date"> </div> <div class="DateRangeSelector-item"> <label>End Date</label> <input type="date"> </div></div>'})})}]);
//# sourceMappingURL=date-range-selector.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,22 @@
indexes:
# AUTOGENERATED
# This index.yaml is automatically updated whenever the dev_appserver
# detects that a new type of query is run. If you want to manage the
# index.yaml file manually, remove the above marker line (the line
# saying "# AUTOGENERATED"). If you want to manage some indexes
# manually, move them above the marker line. The index.yaml file is
# automatically uploaded to the admin console when you next deploy
# your application using appcfg.py.
- kind: ApiQuery
properties:
- name: user
- name: name
- kind: ApiQuery
properties:
- name: user
- name: name
direction: desc

View File

@@ -0,0 +1,262 @@
#!/usr/bin/python2.5
# -*- coding: utf-8 -*-
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Utility to convert a Core Reporting API reponse into TSV.
This provides utitlites to both print TSV files to the standard output
as well as directly to a file. This logic handles all the utf-8 conversion.
GetCsvStringPrinter: Returns an instantiated object to output to a string.
GetTsvFilePrinter: Returns an instantiated object to output to files.
GetTsvScreenPrinter: Returns an instantiated object to output to the screen.
UnicodeWriter(): Utf-8 encodes output.
ExportPrinter(): Converts the Core Reporting API response into tabular data.
"""
__author__ = 'nickski15@gmail.com (Nick Mihailovski)'
import codecs
import csv
import StringIO
import sys
import types
# A list of special characters that need to be escaped.
SPECIAL_CHARS = ('+', '-', '/', '*', '=')
# TODO(nm): Test leading numbers.
def GetCsvStringPrinter(f):
"""Returns a ExportPrinter object to output to string."""
writer = UnicodeWriter(f)
return ExportPrinter(writer)
def GetTsvFilePrinter(file_name):
"""Returns a ExportPrinter object to output to file_name.
Args:
file_name: string The name of the file to output to.
Returns:
The newly created ExportPrinter object.
"""
my_handle = open(file_name)
writer = UnicodeWriter(my_handle, dialect='excel-tab')
return ExportPrinter(writer)
def GetTsvScreenPrinter():
"""Returns a ExportPrinter object to output to std.stdout."""
writer = UnicodeWriter(sys.stdout, dialect='excel-tab')
return ExportPrinter(writer)
def GetTsvStringPrinter(f):
"""Returns a ExportPrinter object to output to std.stdout."""
writer = UnicodeWriter(f, dialect='excel-tab')
return ExportPrinter(writer)
# Wrapper to output to utf-8. Taken mostly / directly from Python docs:
# http://docs.python.org/library/csv.html
class UnicodeWriter(object):
"""A CSV writer which uses the csv module to output csv compatible formats.
Will write rows to CSV file "f", which is encoded in the given encoding.
"""
def __init__(self, f, dialect=csv.excel, encoding='utf-8', **kwds):
# Redirect output to a queue
self.queue = StringIO.StringIO()
self.writer = csv.writer(self.queue, dialect=dialect, **kwds)
self.stream = f
self.encoder = codecs.getincrementalencoder(encoding)()
def WriteRow(self, row):
"""Writes a row to the file."""
self.writer.writerow([s.encode('utf-8') for s in row])
# Fetch UTF-8 output from the queue ...
data = self.queue.getvalue()
data = data.decode('utf-8')
# ... and reencode it into the target encoding
data = self.encoder.encode(data)
# write to the target stream
self.stream.write(data)
# empty queue
self.queue.truncate(0)
def WriteRows(self, rows):
for row in rows:
self.writerow(row)
class ExportPrinter(object):
"""Utility class to output a the data feed as tabular data."""
def __init__(self, writer):
"""Initializes the class.
Args:
writer: Typically an instance of UnicodeWriter. The interface for this
object provides two methods, WriteRow and WriteRow, which
accepts a list or a list of lists respectively and process them as
needed.
"""
self.writer = writer
def Output(self, results):
"""Outputs formatted rows of data retrieved from the Core Reporting API.
This uses the writer object to output the data in the Core Reporting API.
Args:
results: The response from the Core Reporting API.
"""
if not results.get('rows'):
self.writer.WriteRow('No Results found')
else:
self.OutputProfileName(results)
self.writer.WriteRow([])
self.OutputContainsSampledData(results)
self.writer.WriteRow([])
self.OutputQueryInfo(results)
self.writer.WriteRow([])
self.OutputHeaders(results)
self.OutputRows(results)
self.writer.WriteRow([])
self.OutputRowCounts(results)
self.OutputTotalsForAllResults(results)
def OutputProfileName(self, results):
"""Outputs the profile name along with the qurey."""
profile_name = ''
info = results.get('profileInfo')
if info:
profile_name = info.get('profileName')
self.writer.WriteRow(['Report For Profile: ', profile_name])
def OutputQueryInfo(self, results):
"""Outputs the query used."""
self.writer.WriteRow(['These query parameters were used:'])
query = results.get('query')
for key, value in query.iteritems():
if type(value) == types.ListType:
value = ','.join(value)
else:
value = str(value)
value = ExcelEscape(value)
self.writer.WriteRow([key, value])
def OutputContainsSampledData(self, results):
"""Outputs whether the resuls have been sampled."""
sampled_text = 'do not'
if results.get('containsSampledData'):
sampled_text = 'do'
row_text = 'These results %s contain sampled data.' % sampled_text
self.writer.WriteRow([row_text])
def OutputHeaders(self, results):
"""Outputs all the dimension and metric names in order."""
row = []
for header in results.get('columnHeaders'):
row.append(header.get('name'))
self.writer.WriteRow(row)
def OutputRows(self, results):
"""Outputs all the rows in the table."""
# Replace any first characters that have an = with '=
for row in results.get('rows'):
out_row = []
for cell in row:
cell = ExcelEscape(cell)
out_row.append(cell)
self.writer.WriteRow(out_row)
def OutputRowCounts(self, results):
"""Outputs how many rows were returned vs rows that were matched."""
items = str(results.get('itemsPerPage'))
matched = str(results.get('totalResults'))
output = [
['Rows Returned', items],
['Rows Matched', matched]
]
self.writer.WriteRows(output)
def OutputTotalsForAllResults(self, results):
"""Outputs the totals for all results matched by the query.
This is not the sum of the values returned in the response.
This will align the metric totals in the same columns as
the headers are printed. The totals are stored as a dict, where the
key is the metric name and the value is the total. To align these
totals in the proper columns, a position index of the metric name
and it's position in the table is first created. Then the totals
are added by position to a row of empty strings.
Args:
results: The response from the Core Reporting API.
"""
# Create the metric position index.
metric_index = {}
headers = results.get('columnHeaders')
for index in range(0, len(headers)):
header = headers[index]
if header.get('columnType') == 'METRIC':
metric_index[header.get('name')] = index
# Create a row of empty strings the same length as the header.
row = [''] * len(headers)
# Use the position index to output the totals in the right columns.
totals = results.get('totalsForAllResults')
for metric_name, metric_total in totals.iteritems():
index = metric_index[metric_name]
row[index] = metric_total
self.writer.WriteRows([['Totals For All Rows Matched'], row])
def ExcelEscape(input_value):
"""Escapes the first character of a string if it is special in Excel.
Args:
input_value: string The value to escape.
Returns:
A string that has the first character escaped if it is sepcial.
"""
if input_value and input_value[0] in SPECIAL_CHARS:
return "'" + input_value
return input_value

View File

@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,25 @@
Copyright (C) 2009 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Installing the library:
python ./setup.py install
(You might need root privileges to do this)
Testing the library:
python ./setup.py test
Dependencies:
On Python <2.6 you will need to have simplejson[1] installed on your system.
[1]: http://pypi.python.org/pypi/simplejson/

View File

@@ -0,0 +1,8 @@
The Data Source Python Library is required by the Google Analytics superProxy
to transform responses to Data Tables.
https://developers.google.com/chart/interactive/docs/dev/gviz_api_lib
The Python library is available at:
https://code.google.com/p/google-visualization-python/
Place the gviz_api.py module in this directory.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,576 @@
#!/usr/bin/python
#
# Copyright (C) 2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tests for the gviz_api module."""
__author__ = "Amit Weinstein"
from datetime import date
from datetime import datetime
from datetime import time
try:
import json
except ImportError:
import simplejson as json
import unittest
from gviz_api import DataTable
from gviz_api import DataTableException
class DataTableTest(unittest.TestCase):
def testCoerceValue(self):
# We first check that given an unknown type it raises exception
self.assertRaises(DataTableException,
DataTable.CoerceValue, 1, "no_such_type")
# If we give a type which does not match the value, we expect it to fail
self.assertRaises(DataTableException,
DataTable.CoerceValue, "a", "number")
self.assertRaises(DataTableException,
DataTable.CoerceValue, "b", "timeofday")
self.assertRaises(DataTableException,
DataTable.CoerceValue, 10, "date")
# A tuple for value and formatted value should be of length 2
self.assertRaises(DataTableException,
DataTable.CoerceValue, (5, "5$", "6$"), "string")
# Some good examples from all the different types
self.assertEqual(True, DataTable.CoerceValue(True, "boolean"))
self.assertEqual(False, DataTable.CoerceValue(False, "boolean"))
self.assertEqual(True, DataTable.CoerceValue(1, "boolean"))
self.assertEqual(None, DataTable.CoerceValue(None, "boolean"))
self.assertEqual((False, u"a"),
DataTable.CoerceValue((False, "a"), "boolean"))
self.assertEqual(1, DataTable.CoerceValue(1, "number"))
self.assertEqual(1., DataTable.CoerceValue(1., "number"))
self.assertEqual(-5, DataTable.CoerceValue(-5, "number"))
self.assertEqual(None, DataTable.CoerceValue(None, "number"))
self.assertEqual((5, u"5$"),
DataTable.CoerceValue((5, "5$"), "number"))
self.assertEqual("-5", DataTable.CoerceValue(-5, "string"))
self.assertEqual("abc", DataTable.CoerceValue("abc", "string"))
self.assertEqual(None, DataTable.CoerceValue(None, "string"))
self.assertEqual(date(2010, 1, 2),
DataTable.CoerceValue(date(2010, 1, 2), "date"))
self.assertEqual(date(2001, 2, 3),
DataTable.CoerceValue(datetime(2001, 2, 3, 4, 5, 6),
"date"))
self.assertEqual(None, DataTable.CoerceValue(None, "date"))
self.assertEqual(time(10, 11, 12),
DataTable.CoerceValue(time(10, 11, 12), "timeofday"))
self.assertEqual(time(3, 4, 5),
DataTable.CoerceValue(datetime(2010, 1, 2, 3, 4, 5),
"timeofday"))
self.assertEqual(None, DataTable.CoerceValue(None, "timeofday"))
self.assertEqual(datetime(2001, 2, 3, 4, 5, 6, 555000),
DataTable.CoerceValue(datetime(2001, 2, 3, 4, 5, 6,
555000),
"datetime"))
self.assertEqual(None, DataTable.CoerceValue(None, "datetime"))
self.assertEqual((None, "none"),
DataTable.CoerceValue((None, "none"), "string"))
def testDifferentStrings(self):
# Checking escaping of strings in JSON output
the_strings = ["new\nline",
r"one\slash",
r"two\\slash",
u"unicode eng",
u"unicode \u05e2\u05d1\u05e8\u05d9\u05ea",
u"unicode \u05e2\u05d1\u05e8\u05d9\u05ea".encode("utf-8"),
u'"\u05e2\u05d1\\"\u05e8\u05d9\u05ea"']
table = DataTable([("a", "string")],
[[x] for x in the_strings])
json_obj = json.loads(table.ToJSon())
for i, row in enumerate(json_obj["rows"]):
utf8_str = the_strings[i]
if isinstance(utf8_str, unicode):
utf8_str = utf8_str.encode("utf-8")
out_str = row["c"][0]["v"]
self.assertEqual(out_str.encode("utf-8"), utf8_str)
def testColumnTypeParser(self):
# Checking several wrong formats
self.assertRaises(DataTableException,
DataTable.ColumnTypeParser, 5)
self.assertRaises(DataTableException,
DataTable.ColumnTypeParser, ("a", 5, "c"))
self.assertRaises(DataTableException,
DataTable.ColumnTypeParser, ("a", "blah"))
self.assertRaises(DataTableException,
DataTable.ColumnTypeParser, ("a", "number", "c", "d"))
# Checking several legal formats
self.assertEqual({"id": "abc", "label": "abc", "type": "string",
"custom_properties": {}},
DataTable.ColumnTypeParser("abc"))
self.assertEqual({"id": "abc", "label": "abc", "type": "string",
"custom_properties": {}},
DataTable.ColumnTypeParser(("abc",)))
self.assertEqual({"id": "abc", "label": "bcd", "type": "string",
"custom_properties": {}},
DataTable.ColumnTypeParser(("abc", "string", "bcd")))
self.assertEqual({"id": "a", "label": "b", "type": "number",
"custom_properties": {}},
DataTable.ColumnTypeParser(("a", "number", "b")))
self.assertEqual({"id": "a", "label": "a", "type": "number",
"custom_properties": {}},
DataTable.ColumnTypeParser(("a", "number")))
self.assertEqual({"id": "i", "label": "l", "type": "string",
"custom_properties": {"key": "value"}},
DataTable.ColumnTypeParser(("i", "string", "l",
{"key": "value"})))
def testTableDescriptionParser(self):
# We expect it to fail with empty lists or dictionaries
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, {})
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, [])
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, {"a": []})
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, {"a": {"b": {}}})
# We expect it to fail if we give a non-string at the lowest level
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, {"a": 5})
self.assertRaises(DataTableException,
DataTable.TableDescriptionParser, [("a", "number"), 6])
# Some valid examples which mixes both dictionaries and lists
self.assertEqual(
[{"id": "a", "label": "a", "type": "date",
"depth": 0, "container": "iter", "custom_properties": {}},
{"id": "b", "label": "b", "type": "timeofday",
"depth": 0, "container": "iter", "custom_properties": {}}],
DataTable.TableDescriptionParser([("a", "date"), ("b", "timeofday")]))
self.assertEqual(
[{"id": "a", "label": "a", "type": "string",
"depth": 0, "container": "dict", "custom_properties": {}},
{"id": "b", "label": "b", "type": "number",
"depth": 1, "container": "iter", "custom_properties": {}},
{"id": "c", "label": "column c", "type": "string",
"depth": 1, "container": "iter", "custom_properties": {}}],
DataTable.TableDescriptionParser({"a": [("b", "number"),
("c", "string", "column c")]}))
self.assertEqual(
[{"id": "a", "label": "column a", "type": "number", "depth": 0,
"container": "dict", "custom_properties": {}},
{"id": "b", "label": "column b", "type": "string", "depth": 0,
"container": "dict", "custom_properties": {}}],
DataTable.TableDescriptionParser({"a": ("number", "column a"),
"b": ("string", "column b")}))
self.assertEqual(
[{"id": "a", "label": "column a", "type": "number",
"depth": 0, "container": "dict", "custom_properties": {}},
{"id": "b", "label": "b", "type": "number",
"depth": 1, "container": "dict", "custom_properties": {}},
{"id": "c", "label": "c", "type": "string",
"depth": 1, "container": "dict", "custom_properties": {}}],
DataTable.TableDescriptionParser({("a", "number", "column a"):
{"b": "number", "c": "string"}}))
self.assertEqual(
[{"id": "a", "label": "column a", "type": "number",
"depth": 0, "container": "dict", "custom_properties": {}},
{"id": "b", "label": "column b", "type": "string",
"depth": 1, "container": "scalar", "custom_properties": {}}],
DataTable.TableDescriptionParser({("a", "number", "column a"):
("b", "string", "column b")}))
# Cases that might create ambiguity
self.assertEqual(
[{"id": "a", "label": "column a", "type": "number", "depth": 0,
"container": "dict", "custom_properties": {}}],
DataTable.TableDescriptionParser({"a": ("number", "column a")}))
self.assertRaises(DataTableException, DataTable.TableDescriptionParser,
{"a": ("b", "number")})
self.assertEqual(
[{"id": "a", "label": "a", "type": "string", "depth": 0,
"container": "dict", "custom_properties": {}},
{"id": "b", "label": "b", "type": "number", "depth": 1,
"container": "scalar", "custom_properties": {}}],
DataTable.TableDescriptionParser({"a": ("b", "number", "b", {})}))
self.assertEqual(
[{"id": "a", "label": "a", "type": "string", "depth": 0,
"container": "dict", "custom_properties": {}},
{"id": "b", "label": "b", "type": "number", "depth": 1,
"container": "scalar", "custom_properties": {}}],
DataTable.TableDescriptionParser({("a",): ("b", "number")}))
def testAppendData(self):
# We check a few examples where the format of the data does not match the
# description and hen a few valid examples. The test for the content itself
# is done inside the ToJSCode and ToJSon functions.
table = DataTable([("a", "number"), ("b", "string")])
self.assertEqual(0, table.NumberOfRows())
self.assertRaises(DataTableException,
table.AppendData, [[1, "a", True]])
self.assertRaises(DataTableException,
table.AppendData, {1: ["a"], 2: ["b"]})
self.assertEquals(None, table.AppendData([[1, "a"], [2, "b"]]))
self.assertEqual(2, table.NumberOfRows())
self.assertEquals(None, table.AppendData([[3, "c"], [4]]))
self.assertEqual(4, table.NumberOfRows())
table = DataTable({"a": "number", "b": "string"})
self.assertEqual(0, table.NumberOfRows())
self.assertRaises(DataTableException,
table.AppendData, [[1, "a"]])
self.assertRaises(DataTableException,
table.AppendData, {5: {"b": "z"}})
self.assertEquals(None, table.AppendData([{"a": 1, "b": "z"}]))
self.assertEqual(1, table.NumberOfRows())
table = DataTable({("a", "number"): [("b", "string")]})
self.assertEqual(0, table.NumberOfRows())
self.assertRaises(DataTableException,
table.AppendData, [[1, "a"]])
self.assertRaises(DataTableException,
table.AppendData, {5: {"b": "z"}})
self.assertEquals(None, table.AppendData({5: ["z"], 6: ["w"]}))
self.assertEqual(2, table.NumberOfRows())
table = DataTable({("a", "number"): {"b": "string", "c": "number"}})
self.assertEqual(0, table.NumberOfRows())
self.assertRaises(DataTableException,
table.AppendData, [[1, "a"]])
self.assertRaises(DataTableException,
table.AppendData, {1: ["a", 2]})
self.assertEquals(None, table.AppendData({5: {"b": "z", "c": 6},
7: {"c": 8},
9: {}}))
self.assertEqual(3, table.NumberOfRows())
def testToJSCode(self):
table = DataTable([("a", "number", "A'"), "b\"", ("c", "timeofday")],
[[1],
[None, "z", time(1, 2, 3)],
[(2, "2$"), "w", time(2, 3, 4)]])
self.assertEqual(3, table.NumberOfRows())
self.assertEqual((u"var mytab = new google.visualization.DataTable();\n"
u"mytab.addColumn(\"number\", \"A'\", \"a\");\n"
u"mytab.addColumn(\"string\", \"b\\\"\", \"b\\\"\");\n"
u"mytab.addColumn(\"timeofday\", \"c\", \"c\");\n"
u"mytab.addRows(3);\n"
u"mytab.setCell(0, 0, 1);\n"
u"mytab.setCell(1, 1, \"z\");\n"
u"mytab.setCell(1, 2, [1,2,3]);\n"
u"mytab.setCell(2, 0, 2, \"2$\");\n"
u"mytab.setCell(2, 1, \"w\");\n"
u"mytab.setCell(2, 2, [2,3,4]);\n"),
table.ToJSCode("mytab"))
table = DataTable({("a", "number"): {"b": "date", "c": "datetime"}},
{1: {},
2: {"b": date(1, 2, 3)},
3: {"c": datetime(1, 2, 3, 4, 5, 6, 555000)},
4: {"c": datetime(1, 2, 3, 4, 5, 6)}})
self.assertEqual(4, table.NumberOfRows())
self.assertEqual(("var mytab2 = new google.visualization.DataTable();\n"
'mytab2.addColumn("datetime", "c", "c");\n'
'mytab2.addColumn("date", "b", "b");\n'
'mytab2.addColumn("number", "a", "a");\n'
'mytab2.addRows(4);\n'
'mytab2.setCell(0, 2, 1);\n'
'mytab2.setCell(1, 1, new Date(1,1,3));\n'
'mytab2.setCell(1, 2, 2);\n'
'mytab2.setCell(2, 0, new Date(1,1,3,4,5,6,555));\n'
'mytab2.setCell(2, 2, 3);\n'
'mytab2.setCell(3, 0, new Date(1,1,3,4,5,6));\n'
'mytab2.setCell(3, 2, 4);\n'),
table.ToJSCode("mytab2", columns_order=["c", "b", "a"]))
def testToJSon(self):
json_obj = {"cols":
[{"id": "a", "label": "A", "type": "number"},
{"id": "b", "label": "b", "type": "string"},
{"id": "c", "label": "c", "type": "boolean"}],
"rows":
[{"c": [{"v": 1}, None, None]},
{"c": [None, {"v": "z"}, {"v": True}]},
{"c": [None, {"v": u"\u05d0"}, None]},
{"c": [None, {"v": u"\u05d1"}, None]}]}
table = DataTable([("a", "number", "A"), "b", ("c", "boolean")],
[[1],
[None, "z", True],
[None, u"\u05d0"],
[None, u"\u05d1".encode("utf-8")]])
self.assertEqual(4, table.NumberOfRows())
self.assertEqual(json.dumps(json_obj,
separators=(",", ":"),
ensure_ascii=False).encode("utf-8"),
table.ToJSon())
table.AppendData([[-1, "w", False]])
self.assertEqual(5, table.NumberOfRows())
json_obj["rows"].append({"c": [{"v": -1}, {"v": "w"}, {"v": False}]})
self.assertEqual(json.dumps(json_obj,
separators=(",", ":"),
ensure_ascii=False).encode("utf-8"),
table.ToJSon())
json_obj = {"cols":
[{"id": "t", "label": "T", "type": "timeofday"},
{"id": "d", "label": "d", "type": "date"},
{"id": "dt", "label": "dt", "type": "datetime"}],
"rows":
[{"c": [{"v": [1, 2, 3]}, {"v": "Date(1,1,3)"}, None]}]}
table = DataTable({("d", "date"): [("t", "timeofday", "T"),
("dt", "datetime")]})
table.LoadData({date(1, 2, 3): [time(1, 2, 3)]})
self.assertEqual(1, table.NumberOfRows())
self.assertEqual(json.dumps(json_obj, separators=(",", ":")),
table.ToJSon(columns_order=["t", "d", "dt"]))
json_obj["rows"] = [
{"c": [{"v": [2, 3, 4], "f": "time 2 3 4"},
{"v": "Date(2,2,4)"},
{"v": "Date(1,1,3,4,5,6,555)"}]},
{"c": [None, {"v": "Date(3,3,5)"}, None]}]
table.LoadData({date(2, 3, 4): [(time(2, 3, 4), "time 2 3 4"),
datetime(1, 2, 3, 4, 5, 6, 555000)],
date(3, 4, 5): []})
self.assertEqual(2, table.NumberOfRows())
self.assertEqual(json.dumps(json_obj, separators=(",", ":")),
table.ToJSon(columns_order=["t", "d", "dt"]))
json_obj = {
"cols": [{"id": "a\"", "label": "a\"", "type": "string"},
{"id": "b", "label": "bb\"", "type": "number"}],
"rows": [{"c": [{"v": "a1"}, {"v": 1}]},
{"c": [{"v": "a2"}, {"v": 2}]},
{"c": [{"v": "a3"}, {"v": 3}]}]}
table = DataTable({"a\"": ("b", "number", "bb\"", {})},
{"a1": 1, "a2": 2, "a3": 3})
self.assertEqual(3, table.NumberOfRows())
self.assertEqual(json.dumps(json_obj, separators=(",", ":")),
table.ToJSon())
def testCustomProperties(self):
# The json of the initial data we load to the table.
json_obj = {"cols": [{"id": "a",
"label": "A",
"type": "number",
"p": {"col_cp": "col_v"}},
{"id": "b", "label": "b", "type": "string"},
{"id": "c", "label": "c", "type": "boolean"}],
"rows": [{"c": [{"v": 1},
None,
{"v": None,
"p": {"null_cp": "null_v"}}],
"p": {"row_cp": "row_v"}},
{"c": [None,
{"v": "z", "p": {"cell_cp": "cell_v"}},
{"v": True}]},
{"c": [{"v": 3}, None, None],
"p": {"row_cp2": "row_v2"}}],
"p": {"global_cp": "global_v"}}
jscode = ("var mytab = new google.visualization.DataTable();\n"
"mytab.setTableProperties({\"global_cp\":\"global_v\"});\n"
"mytab.addColumn(\"number\", \"A\", \"a\");\n"
"mytab.setColumnProperties(0, {\"col_cp\":\"col_v\"});\n"
"mytab.addColumn(\"string\", \"b\", \"b\");\n"
"mytab.addColumn(\"boolean\", \"c\", \"c\");\n"
"mytab.addRows(3);\n"
"mytab.setCell(0, 0, 1);\n"
"mytab.setCell(0, 2, null, null, {\"null_cp\":\"null_v\"});\n"
"mytab.setRowProperties(0, {\"row_cp\":\"row_v\"});\n"
"mytab.setCell(1, 1, \"z\", null, {\"cell_cp\":\"cell_v\"});\n"
"mytab.setCell(1, 2, true);\n"
"mytab.setCell(2, 0, 3);\n"
"mytab.setRowProperties(2, {\"row_cp2\":\"row_v2\"});\n")
table = DataTable([("a", "number", "A", {"col_cp": "col_v"}), "b",
("c", "boolean")],
custom_properties={"global_cp": "global_v"})
table.AppendData([[1, None, (None, None, {"null_cp": "null_v"})]],
custom_properties={"row_cp": "row_v"})
table.AppendData([[None, ("z", None, {"cell_cp": "cell_v"}), True], [3]])
table.SetRowsCustomProperties(2, {"row_cp2": "row_v2"})
self.assertEqual(json.dumps(json_obj, separators=(",", ":")),
table.ToJSon())
self.assertEqual(jscode, table.ToJSCode("mytab"))
def testToCsv(self):
init_data_csv = "\r\n".join(["A,\"b\"\"\",c",
"1,,",
",zz'top,true",
""])
table = DataTable([("a", "number", "A"), "b\"", ("c", "boolean")],
[[(1, "$1")], [None, "zz'top", True]])
self.assertEqual(init_data_csv, table.ToCsv())
table.AppendData([[-1, "w", False]])
init_data_csv = "%s%s\r\n" % (init_data_csv, "-1,w,false")
self.assertEquals(init_data_csv, table.ToCsv())
init_data_csv = "\r\n".join([
"T,d,dt",
"01:02:03,1901-02-03,",
"\"time \"\"2 3 4\"\"\",1902-03-04,1901-02-03 04:05:06",
",1903-04-05,",
""])
table = DataTable({("d", "date"): [("t", "timeofday", "T"),
("dt", "datetime")]})
table.LoadData({date(1901, 2, 3): [time(1, 2, 3)],
date(1902, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
datetime(1901, 2, 3, 4, 5, 6)],
date(1903, 4, 5): []})
self.assertEqual(init_data_csv, table.ToCsv(columns_order=["t", "d", "dt"]))
def testToTsvExcel(self):
table = DataTable({("d", "date"): [("t", "timeofday", "T"),
("dt", "datetime")]})
table.LoadData({date(1901, 2, 3): [time(1, 2, 3)],
date(1902, 3, 4): [(time(2, 3, 4), 'time "2 3 4"'),
datetime(1901, 2, 3, 4, 5, 6)],
date(1903, 4, 5): []})
self.assertEqual(table.ToCsv().replace(",", "\t").encode("UTF-16LE"),
table.ToTsvExcel())
def testToHtml(self):
html_table_header = "<html><body><table border=\"1\">"
html_table_footer = "</table></body></html>"
init_data_html = html_table_header + (
"<thead><tr>"
"<th>A&lt;</th><th>b&gt;</th><th>c</th>"
"</tr></thead>"
"<tbody>"
"<tr><td>$1</td><td></td><td></td></tr>"
"<tr><td></td><td>&lt;z&gt;</td><td>true</td></tr>"
"</tbody>") + html_table_footer
table = DataTable([("a", "number", "A<"), "b>", ("c", "boolean")],
[[(1, "$1")], [None, "<z>", True]])
self.assertEqual(init_data_html.replace("\n", ""), table.ToHtml())
init_data_html = html_table_header + (
"<thead><tr>"
"<th>T</th><th>d</th><th>dt</th>"
"</tr></thead>"
"<tbody>"
"<tr><td>01:02:03</td><td>0001-02-03</td><td></td></tr>"
"<tr><td>time 2 3 4</td><td>0002-03-04</td>"
"<td>0001-02-03 04:05:06</td></tr>"
"<tr><td></td><td>0003-04-05</td><td></td></tr>"
"</tbody>") + html_table_footer
table = DataTable({("d", "date"): [("t", "timeofday", "T"),
("dt", "datetime")]})
table.LoadData({date(1, 2, 3): [time(1, 2, 3)],
date(2, 3, 4): [(time(2, 3, 4), "time 2 3 4"),
datetime(1, 2, 3, 4, 5, 6)],
date(3, 4, 5): []})
self.assertEqual(init_data_html.replace("\n", ""),
table.ToHtml(columns_order=["t", "d", "dt"]))
def testOrderBy(self):
data = [("b", 3), ("a", 3), ("a", 2), ("b", 1)]
description = ["col1", ("col2", "number", "Second Column")]
table = DataTable(description, data)
table_num_sorted = DataTable(description,
sorted(data, key=lambda x: (x[1], x[0])))
table_str_sorted = DataTable(description,
sorted(data, key=lambda x: x[0]))
table_diff_sorted = DataTable(description,
sorted(sorted(data, key=lambda x: x[1]),
key=lambda x: x[0], reverse=True))
self.assertEqual(table_num_sorted.ToJSon(),
table.ToJSon(order_by=("col2", "col1")))
self.assertEqual(table_num_sorted.ToJSCode("mytab"),
table.ToJSCode("mytab", order_by=("col2", "col1")))
self.assertEqual(table_str_sorted.ToJSon(), table.ToJSon(order_by="col1"))
self.assertEqual(table_str_sorted.ToJSCode("mytab"),
table.ToJSCode("mytab", order_by="col1"))
self.assertEqual(table_diff_sorted.ToJSon(),
table.ToJSon(order_by=[("col1", "desc"), "col2"]))
self.assertEqual(table_diff_sorted.ToJSCode("mytab"),
table.ToJSCode("mytab",
order_by=[("col1", "desc"), "col2"]))
def testToJSonResponse(self):
description = ["col1", "col2", "col3"]
data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")]
req_id = 4
table = DataTable(description, data)
start_str_default = r"google.visualization.Query.setResponse"
start_str_handler = r"MyHandlerFunction"
json_str = table.ToJSon().strip()
json_response = table.ToJSonResponse(req_id=req_id)
self.assertEquals(json_response.find(start_str_default + "("), 0)
json_response_obj = json.loads(json_response[len(start_str_default) + 1:-2])
self.assertEquals(json_response_obj["table"], json.loads(json_str))
self.assertEquals(json_response_obj["version"], "0.6")
self.assertEquals(json_response_obj["reqId"], str(req_id))
self.assertEquals(json_response_obj["status"], "ok")
json_response = table.ToJSonResponse(req_id=req_id,
response_handler=start_str_handler)
self.assertEquals(json_response.find(start_str_handler + "("), 0)
json_response_obj = json.loads(json_response[len(start_str_handler) + 1:-2])
self.assertEquals(json_response_obj["table"], json.loads(json_str))
def testToResponse(self):
description = ["col1", "col2", "col3"]
data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")]
table = DataTable(description, data)
self.assertEquals(table.ToResponse(), table.ToJSonResponse())
self.assertEquals(table.ToResponse(tqx="out:csv"), table.ToCsv())
self.assertEquals(table.ToResponse(tqx="out:html"), table.ToHtml())
self.assertRaises(DataTableException, table.ToResponse, tqx="version:0.1")
self.assertEquals(table.ToResponse(tqx="reqId:4;responseHandler:handle"),
table.ToJSonResponse(req_id=4, response_handler="handle"))
self.assertEquals(table.ToResponse(tqx="out:csv;reqId:4"), table.ToCsv())
self.assertEquals(table.ToResponse(order_by="col2"),
table.ToJSonResponse(order_by="col2"))
self.assertEquals(table.ToResponse(tqx="out:html",
columns_order=("col3", "col2", "col1")),
table.ToHtml(columns_order=("col3", "col2", "col1")))
self.assertRaises(ValueError, table.ToResponse, tqx="SomeWrongTqxFormat")
self.assertRaises(DataTableException, table.ToResponse, tqx="out:bad")
if __name__ == "__main__":
unittest.main()

View File

@@ -0,0 +1,59 @@
#!/usr/bin/python
#
# Copyright (C) 2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Setup module for Google Visualization Python API."""
__author__ = "Misha Seltzer"
import distutils.core
import unittest
import gviz_api_test
class TestCommand(distutils.core.Command):
"""Class that provides the 'test' command for setup."""
user_options = []
def initialize_options(self):
"""Must override this method in the Command class."""
pass
def finalize_options(self):
"""Must override this method in the Command class."""
pass
def run(self):
"""The run method - running the tests on invocation."""
suite = unittest.TestLoader().loadTestsFromTestCase(
gviz_api_test.DataTableTest)
unittest.TextTestRunner().run(suite)
distutils.core.setup(
name="gviz_api.py",
version="1.8.2",
description="Python API for Google Visualization",
long_description="""
The Python API for Google Visualization makes it easy to convert python data
structures into Google Visualization JS code, DataTable JSon construction
string or JSon response for Query object.
""".strip(),
author="Amit Weinstein, Misha Seltzer",
license="Apache 2.0",
url="http://code.google.com/p/google-visualization-python/",
py_modules=["gviz_api"],
cmdclass={"test": TestCommand},
)

View File

@@ -0,0 +1,127 @@
#!/usr/bin/python2.7
#
# Copyright 2013 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Models for the Google Analytics superProxy.
JsonQueryProperty: Property to store API Responses.
GaSuperProxyUser: Represents the users of the service.
GaSuperProxyUserInvitation: Represents an user invited to the service.
ApiQuery: Models the API Queries created by users.
ApiQueryResponse: Represents a successful response from an API.
ApiErrorResponse: Represents an error response from an API.
"""
__author__ = 'pete.frisella@gmail.com (Pete Frisella)'
import json
from controllers.util import models_helper
from google.appengine.ext import db
class JsonQueryProperty(db.Property):
"""Property to store/retrieve queries and responses in JSON format."""
data_type = db.BlobProperty()
# pylint: disable-msg=C6409
def get_value_for_datastore(self, model_instance):
value = super(JsonQueryProperty, self).get_value_for_datastore(
model_instance)
return db.Blob(json.dumps(value))
def make_value_from_datastore(self, value):
if value is None:
return None
value = json.loads(str(value))
return super(JsonQueryProperty, self).make_value_from_datastore(value)
class GaSuperProxyUser(db.Model):
"""Models a GaSuperProxyUser and user settings."""
email = db.StringProperty()
nickname = db.StringProperty()
ga_refresh_token = db.StringProperty()
ga_access_token = db.StringProperty()
ga_token_expiry = db.DateTimeProperty()
class GaSuperProxyUserInvitation(db.Model):
"""Models a user invited to use the service."""
email = db.StringProperty()
issued = db.DateTimeProperty()
class ApiQuery(db.Model):
"""Models an API Query."""
user = db.ReferenceProperty(GaSuperProxyUser,
required=True,
collection_name='api_queries')
name = db.StringProperty(required=True)
request = JsonQueryProperty(required=True)
refresh_interval = db.IntegerProperty(required=True, default=3600)
in_queue = db.BooleanProperty(required=True, default=False)
is_active = db.BooleanProperty(required=True, default=False)
is_scheduled = db.BooleanProperty(required=True, default=False)
modified = db.DateTimeProperty()
@property
def is_abandoned(self):
"""Determines whether the API Query is considered abandoned."""
return models_helper.IsApiQueryAbandoned(self)
@property
def is_error_limit_reached(self):
"""Returns True if the API Query has hit error limits."""
return models_helper.IsErrorLimitReached(self)
@property
def last_request(self):
"""Returns the timestamp of the last request."""
return models_helper.GetApiQueryLastRequest(str(self.key()))
@property
def last_request_timedelta(self):
"""Returns how long since the API Query response was last requested."""
return models_helper.GetLastRequestTimedelta(self)
@property
def modified_timedelta(self, from_time=None):
"""Returns how long since the API Query was updated."""
return models_helper.GetModifiedTimedelta(self, from_time)
@property
def request_count(self):
"""Reuturns the request count for the API Query."""
return models_helper.GetApiQueryRequestCount(str(self.key()))
class ApiQueryResponse(db.Model):
"""Models an API Response."""
api_query = db.ReferenceProperty(ApiQuery,
required=True,
collection_name='api_query_responses')
content = JsonQueryProperty(required=True)
modified = db.DateTimeProperty(required=True)
class ApiErrorResponse(db.Model):
"""Models an API Query Error Response."""
api_query = db.ReferenceProperty(ApiQuery,
required=True,
collection_name='api_query_errors')
content = JsonQueryProperty(required=True)
timestamp = db.DateTimeProperty(required=True)

View File

@@ -0,0 +1,527 @@
/**
Copyright 2013 Google Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
**/
body {
font-family: Arial, sans-serif
}
#page {
max-width: 1280px;
min-width: 885px;
margin: 0px auto 0px;
padding: 0
}
h1.query {
display: inline-block;
margin-right: 15px;
}
#site_description {
font-size: 14px;
}
div.container_heading {
border-bottom: 1px solid #888;
margin: 20px 0px 10px 0px;
padding-bottom: 5px;
}
div.container_heading h2 {
font-size: 18px;
color: #333;
display: inline;
margin-right: 10px;
}
div.container_heading span{
font-size: 13px;
float: right;
}
.tagline {
font-size: 14px;
width: 800px;
}
.user_details {
font-size: 13px;
float:right;
}
.user_details #user_email {
margin-right: 5px;
}
.admin_container {
max-width: 1280px;
margin: 30px 0px;
}
.sandbar {
background-color: #f1f1f1;
border: 1px solid #e1e1e1;
max-width: 1280px;
padding: 10px 30px 10px;
margin-top: 10px;
}
.auth_container {
padding: 0px 30px;
min-height: 60px;
}
.response_container {
border: 1px solid #ddd;
font-family: courier;
font-size: 13px;
padding: 20px;
background-color: #fefefe;
}
.test_response_container {
border: 2px solid rgb(184, 54, 43) !important;
}
.back_link {
font-size: 13px;
font-weight: bold;
text-decoration: none;
}
.back_link:hover {
text-decoration: underline;
}
/* Button Style */
.button {
text-decoration: none;
font-size: 12px;
border: 1px solid rgba(0, 0, 0, 0.1);
cursor: pointer;
display: inline-block;
min-width: 54px;
height: 25px;
line-height: 25px;
font-weight: bold;
padding: 0 8px;
text-align: center;
-webkit-border-radius: 2px;
box-sizing: content-box;
}
.cancel {
font-size: 12px;
display: inline-block;
height: 5px;
margin-left: 10px;
}
/* Button Colors */
.button-gray:hover {
background-color: rgb(233, 224, 218) !important;
border-color: rgb(168, 164, 162) !important;
color: #222 !important;
background-image: -webkit-linear-gradient(top, rgb(253, 248, 244),rgb(230, 219, 212)) !important;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
}
.button-gray {
background-color: rgb(253, 249, 245) !important;
border-color: rgb(199, 194, 190) !important;
color: #444 !important;
background-image: -webkit-linear-gradient(top, rgb(255, 250, 244),rgb(232, 225, 222)) !important
}
.button-orange:hover {
background-color: rgb(231, 122, 50) !important;
border-color: rgb(163, 88, 37) !important;
color: rgb(61, 59, 59) !important;
background-image: -webkit-linear-gradient(top, rgb(254, 162, 77),rgb(232, 125, 53)) !important;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
}
.button-orange {
background-color: rgb(254, 155, 77) !important;
border-color: rgb(237, 139, 48) !important;
color: rgb(34, 31, 31) !important;
background-image: -webkit-linear-gradient(top, rgb(254, 169, 77),rgb(237, 137, 71)) !important;
}
.button-red:hover {
background-color: rgb(206, 56, 49) !important;
border-color: rgb(121, 35, 31) !important;
color: white !important;
background-image: -webkit-linear-gradient(top, rgb(207, 80, 63),rgb(184, 54, 43)) !important;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
}
.button-red {
background-color: rgb(209, 62, 62) !important;
border-color: rgb(170, 40, 34) !important;
color: white !important;
background-image: -webkit-linear-gradient(top, rgb(219, 64, 64),rgb(180, 52, 52)) !important;
}
.button-blue:hover {
background-color: #357ae8 !important;
border-color: #2f5bb7 !important;
color: white !important;
background-image: -webkit-linear-gradient(top, #4d90fe,#357ae8) !important;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 1px 0;
}
.button-blue {
background-color: #4d90fe !important;
border-color: #3079ed !important;
color: white !important;
background-image: -webkit-linear-gradient(top, #4d90fe,#4787ed) !important;
}
p.users_button {
float:right;
margin-left:20px;
}
p.create_button {
float:left
}
p.revoke_button {
float:right
}
span.revoke_button {
padding-right:10px;
font-size:12px
}
p.auth_button {
text-align: right
}
.auth_padding_admin {
margin-right: 200px;
}
.auth_padding {
margin-right: 70px;
}
.auth_message {
padding-right: 10px;
}
.create_message {
margin-left: 70px;
}
.auth_arrow, .create_arrow {
margin-right: 10px;
font-size: 25px;
}
/* Tables */
table {
width: 100%;
}
.admin_table {
border: 1px solid #bbb;
border-spacing: 0;
font-size: 12px;
}
.query_table {
font-size: 12px;
width: auto;
}
.admin_table tr:nth-child(even) {
background-color:#eee;
}
.admin_table tr:nth-child(odd) {
background-color:#fff;
}
.admin_table th {
border-bottom: 1px solid #ccc;
background-color:#eee;
}
.admin_table td, .admin_table th {
padding: 8px 10px;
}
td, th {
padding: 8px 10px 8px 0px;
text-align: left;
}
td.row_label {
font-weight: bold;
width: 110px;
vertical-align: top;
}
td.operations {
width: 75px;
}
td.name {
max-width: 200px;
word-wrap: break-word;
}
td.email {
max-width: 135px;
word-wrap: break-word;
}
td.public_link {
font-size: 12px;
max-width: 275px;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
/* Forms */
#query_form input, #user_form input {
padding-left: 5px;
width: 300px;
font-size: 13px;
font-family: Arial;
color: #333;
margin-bottom: 20px;
}
div.action_bar {
float: right;
}
div.manage {
width: 285px;
}
form.action_bar {
display: inline-block;
}
#refresh_interval input{
width: 20px !important;
font-size: 13px;
}
#query_form textarea#request {
width: 900px;
height: 65px;
}
#query_form label {
display: inline-block;
width: 175px;
text-align: right;
vertical-align: top;
padding: 2px 10px;
margin-bottom: 15px;
font-size: 15px;
}
#query_form label.edit-label {
font-weight: bold;
font-size: 12px;
text-align: left;
padding-left: 0px;
width: 110px;
}
#query_form .create-button {
width: 100px;
margin-left: 199px;
margin-top: 20px;
}
#query_form .save-button {
width: 100px;
margin-left: 124px;
margin-top: 20px;
}
#query_form .save-run-button {
width: 150px;
}
#query_form .test-button {
width: 100px;
margin-left: 5x;
margin-top: 20px;
}
#user_form label {
display: inline-block;
text-align: right;
vertical-align: top;
padding: 2px 10px;
margin-bottom: 15px;
font-size: 15px;
padding-left: 0px;
}
#user_form .create-button {
width: 100px;
margin-left: 50px;
}
#activate_form .create-button {
width: 100px;
height: 40px;
}
.tip-text {
font-size: 12px;
color: #444;
}
.explorer_tip {
margin-left: 199px;
}
#date_params {
margin-left: 199px;
}
#date_params.edit, .explorer_tip_edit {
margin-left: 124px;
}
label.error, .validate-text {
color: red;
font-size: 12px !important;
font-weight: bold;
width: auto !important;
}
label[for=query_request].error {
margin-left: 189px;
}
form.delete {
display: inline-block;
}
.edit-button {
float: right;
}
/*Auth Styles*/
.auth_status_message {
background-color: rgb(218, 218, 218);
padding: 15px;
margin-top: 31px;
border: 1px solid rgb(194, 166, 166);
}
h3.error_message {
text-transform: capitalize;
}
h3.error_message.success {
color: green;
}
h3.error_message.error {
color: red
}
.error_message_detail {
font-style: italic;
font-family: courier;
font-size: 15px;
color: green;
margin: 20px 0px 50px;
}
.user_activate {
font-size: 13px;
margin: 0px 0 20px 0;
}
.activation_container {
margin: 0 auto;
width: 700px;
padding: 25px;
text-align: center;
font-family: Arial;
font-size: 18px;
color: #222;
}
.warning {
margin: 10px 0 10px 0;
padding: 10px;
border-left: 4px solid rgb(219, 104, 104);
color: rgb(139, 34, 34);
}
/**
* API Query Status formatting
*/
#scheduling_running {
color: #4d90fe;
}
#scheduling_paused {
color: rgb(160, 11, 11);
}
#query_enabled {
color: rgb(18, 153, 67);
}
#query_disabled {
color: rgb(160, 11, 11);
}
.error_limit_reached {
color: red;
font-weight: bold;
}
.manage_status {
font-weight: bold;
}
.endpoint_warning {
font-size: 13px;
font-weight: bold;
}
#error_count {
color: rgb(204, 15, 15) !important
}

View File

@@ -0,0 +1,42 @@
/**
*
* Copyright 2013 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview
* Frame buster code that requires JS to display a page.
* This framebusting code attempts to protect a page that shouldn't be framed.
*/
(function() {
try {
var win = this;
while (true) {
if (win.parent == win)
break;
eval('win.frameElement.src').substr(0, 1);
win = win.parent;
}
if (win.frameElement != null)throw 'busted';
} catch (e) {
document.write('--><plaintext style=display:none><!--');
if (!open(location, '_top'))
alert('this content cant be framed');
top.location = location;
}
})();

View File

@@ -0,0 +1,267 @@
/**
*
* Copyright 2013 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author pete.frisella@gmail.com (Pete Frisella)
*
* @fileoverview
* Helper functions to validate form input and to prompt users before delete
* operations.
*/
/**
* Adds event hanlders that will to prompt the user to confirm delete
* operations.
*/
function initializeDeleteEventHandlers() {
var deleteQueryForm = document.getElementById('delete_query');
if (deleteQueryForm) {
deleteQueryForm.onsubmit = promptDeleteQuery;
}
var clearErrorsForm = document.getElementById('clear_errors');
if (clearErrorsForm) {
clearErrorsForm.onsubmit = promptClearErrors;
}
}
/**
* The event handling function for deleting an API Query.
* @param {Object} evt The even that took place.
*/
function promptDeleteQuery(evt) {
confirmFormSubmit('Are you sure you want to delete this query?', evt);
}
/**
* The event handling function for clearing API Query Error Responses.
* @param {Object} evt The even that took place.
*/
function promptClearErrors(evt) {
confirmFormSubmit('Are you sure you want to clear the errors. Has the ' +
'problem been resolved?', evt);
}
/**
* Prompts the user with a message to confirm or cancel an event that took
* place.
* @param {String} message The message to display to the user.
* @param {Object} e The event that took place.
* @return {Boolean} Whether the user confirmed or cancelled the event.
*/
function confirmFormSubmit(message, e) {
var e = e || window.event;
var confirmSubmit = confirm(message);
if (confirmSubmit) {
return true;
}
e.preventDefault();
return false;
}
/**
* Intialize event handlers
*/
window.onload = initializeDeleteEventHandlers;
/**
* Client-side Validation rules for user input.
*
* To define a validation rule for form input, use the id of the input element
* as the Key for the rule.
* The following rules can be set for each input:
* required: Boolean - Indicate whether input is required.
* maxLength: Number - Set a maximum length for the input.
* min, max: Number - Set a minimum and maximum value for the input. You need
* to specify both.
* test: RegExp - A regular expression to test against the input. Requires that
* you also define a testErrorMsg.
* testErrorMsg: String - The error message to display if RegExp test fails.
* This is required when a test rule has been set.
* msgId: String - The id of the element to write to for any error or status
* messages that need to be displayed to the user. This is required.
*
* Example: A rule for text input with id=email_address, and a div element to
* display error messages with id=email_error:
* VALIDATION_RULES = {
* email_address: {
* required: true,
* maxLength: 256,
* test: /.+\@.+\..+/,
* testErrorMsg: 'Please enter a valid email address.',
* msgId: email_error
* }
* }
*
* <form>
* <input id="email_address" type="text"/>
* <span id="email_error"></span>
*/
VALIDATION_RULES = {
name: {
required: true,
maxLength: 115,
msgId: 'name_msg'
},
refresh_interval: {
required: true,
min: 15,
max: 2505600,
msgId: 'refresh_interval_msg',
test: /^\d+$/,
testErrorMsg: 'Please enter only digits.'
},
request: {
required: true,
maxLength: 2000,
msgId: 'request_msg',
test: /^(http|https):\/\/(\S+)?$/,
testErrorMsg: 'Please enter a valid URL.'
},
email: {
required: true,
maxLength: 256,
msgId: 'email_msg',
test: /.+\@.+\..+/,
testErrorMsg: 'Please enter a valid email address.'
}
};
/**
* Checks if a value has been set for input that is required.
* @param {String} value The value of the input element to check.
* @param {Array} rules The set of validation rules for this input element.
* @return {Boolean} Whether the input value is valid.
*/
function isRequiredConditionMet(value, rules) {
if (rules.required) {
if (!value) {
document.getElementById(rules.msgId).innerHTML = 'This field is ' +
'required.';
return false;
}
return true;
}
}
/**
* Checks that the character length of an input value isn't too long.
* @param {String} value The value of the input element to check.
* @param {Array} rules The set of validation rules for this input element.
* @return {Boolean} Whether the input value length is less than the maximum.
*/
function isLengthValid(value, rules) {
var maxLength = rules.maxLength;
if (maxLength) {
if (value.length > maxLength) {
document.getElementById(rules.msgId).innerHTML = 'Please ' +
'enter no more than ' + maxLength + ' characters.';
return false;
}
}
return true;
}
/**
* Checks if an input value is within a range.
* @param {String} value The value of the input element to check.
* @param {Array} rules The set of validation rules for this input element.
* @return {Boolean} Whether the input value is within the range.
*/
function isBoundsValid(value, rules) {
var min = rules.min;
var max = rules.max;
if (min && max) {
if (value > max || value < min) {
document.getElementById(rules.msgId).innerHTML = 'Please ' +
'enter a value between ' + min + ' and ' + max;
return false;
}
}
return true;
}
/**
* Checks if an input value is formatted correctly.
* @param {String} value The value of the input element to check.
* @param {Array} rules The set of validation rules for this input element.
* @return {Boolean} Whether the input value is valid.
*/
function isContentValid(value, rules) {
var pattern = rules.test;
if (pattern) {
if (!pattern.test(value)) {
document.getElementById(rules.msgId).innerHTML = rules.testErrorMsg;
return false;
}
}
return true;
}
/**
* Validates an input element against a set of rules.
* @param {Object} value The value to validate.
* @param {Array} rules The set of rules to use to validate the input.
* @return {Boolean} Whether the input is validates against the rule.
*/
function validateInput(value, rules) {
if (isRequiredConditionMet(value, rules) &&
isLengthValid(value, rules) &&
isBoundsValid(value, rules) &&
isContentValid(value, rules)) {
// Clear the error message
document.getElementById(rules.msgId).innerHTML = '';
return true;
}
return false;
}
/**
* Validates a form against a set of rules.
* @param {Object} form The form to validate.
* @return {Boolean} Whether the form input is valid.
*/
function validateForm(form) {
isFormInputValid = true;
for (inputRule in VALIDATION_RULES) {
// Check if the form has an input element with an ID that matches a rule.
formInputElement = form[inputRule];
if (formInputElement) {
inputValue = formInputElement.value;
inputRules = VALIDATION_RULES[inputRule];
isInputValid = validateInput(inputValue, inputRules);
if (!isInputValid) {
isFormInputValid = false;
}
}
}
return isFormInputValid;
}

View File

@@ -0,0 +1,20 @@
{% extends "base_page.html" %}
{% set omit_admin_link = true %}
{% block pagetitle %}Account Activation{% endblock %}
{% block bodytitle %}Welcome{% endblock %}
{% block content %}
<div id="admin_container">
<div class="activation_container">
<p>Welcome to <strong>Google Analytics superProxy</strong>.
Activate your account to get started.</p>
<form method="post" id="activate_form"
action="{{ LINKS['owner_activate'] }}">
<input type="submit" class="button button-blue create-button"
name="activate_user" id="activate_user" value="Activate"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,136 @@
{% extends "base_page.html" %}
{% set omit_admin_link = true %}
{% set ga_connected = user_settings.ga_refresh_token %}
{% block pagetitle %}Admin Home{% endblock %}
{% block bodytitle %}Google Analytics superProxy{% endblock %}
{% block content %}
<p id="site_description">The Google Analytics superProxy allows you to publicly
share your Google Analytics reporting data. Use it to power your own
custom dashboards and widgets, transform responses to various formats, manage
your quota efficiently, and much more. Visit the
<a href="https://github.com/googleanalytics/google-analytics-super-proxy">
google-analytics-super-proxy</a> repo on GitHub for additional information.
</p>
<div class="sandbar auth_container">
{% if is_admin %}
<p class="users_button">
<a class="button button-blue"
href="{{ LINKS['admin_users'] }}">Manage Users</a>
</p>
{% endif %}
{% if ga_connected %}
<p class="create_button">
<a class="button button-red"
href="{{ LINKS['query_create'] }}">Create Query</a>
</p>
<p class="revoke_button">
<span class="revoke_button">
Google Analytics access is authorized. </span>
<a class="button button-gray"
href="{{ revoke_token_url }}">Revoke Access</a>
</p>
{% else %}
<p class="auth_button">
<a class="button button-blue" href="{{ oauth_url }}">Authorize Access</a>
</p>
{% endif %}
</div>
{% if not ga_connected %}
<p class="auth_button
{% if is_admin %}auth_padding_admin{% else %}auth_padding{% endif %}">
<span class="auth_message">
<strong>Authorize access</strong> to get started and create a new
query.</span>
<span class="auth_arrow">&uarr;</span>
</p>
{% endif %}
{% for api_query in api_queries %}
{# Set API Query status formatting #}
{% if api_query.is_active %}
{% set query_status = 'Enabled' %}
{% set query_status_id = 'query_enabled' %}
{% else %}
{% set query_status = 'Disabled' %}
{% set query_status_id = 'query_disabled' %}
{% endif %}
{# Set Schedule Status Formatting #}
{% if api_query.is_scheduled %}
{% set scheduling_status = 'Running' %}
{% set scheduling_id = 'scheduling_running' %}
{% else %}
{% set scheduling_status = 'Paused' %}
{% set scheduling_id = 'scheduling_paused' %}
{% endif %}
{% if loop.first %}
<div class="admin_container">
<div class="container_heading">
<h2>Queries</h2>
</div>
<table class="admin_table">
<tr>
<th>Name</th>
<th>Public Endpoint</th>
<th>Endpoint Status</th>
<th>Scheduling Status</th>
<th>Refreshed</th>
<th>Requested</th>
<th>Request Count</th>
<th>Errors</th>
{% if is_admin %}<th>Owner</th>{% endif %}
<th></th>
</tr>
{% endif %} {# First item in loop #}
<tr>
<td class="name">{{ api_query.name }}</td>
<td class="public_link">
<a href="{{ api_query.public_link }}">{{ api_query.public_link }}</a>
</td>
<td>
<span id="{{ query_status_id }}">{{ query_status }}</span>
</td>
<td>
<span id="{{ scheduling_id }}">{{ scheduling_status }}</span>
</td>
<td>{{ api_query.modified_timedelta }}</td>
<td>{{ api_query.last_request_timedelta }}</td>
<td>{{ api_query.request_count }}</td>
<td {% if api_query.is_error_limit_reached %}
class="error_limit_reached"{% endif %}>
{{ api_query.error_count }}
</td>
{% if is_admin %}
<td class="email">
{% if current_user_email == api_query.user_email %}
me
{% else %}
{{ api_query.user_email }}</td>
{% endif %}
{% endif %}
<td class="operations">
<a class="button button-gray"
href="{{ api_query.manage_link }}">
Manage</a>&nbsp;
</td>
</tr>
{% if loop.last %}
</table>
</div>
{% endif %} {# Last item in loop #}
{% else %}
{% if ga_connected %}
<p class="create_message">
<span class="create_arrow">&uarr;</span>
To get started click on <strong>Create Query</strong></p>
{% endif %}
{% endfor %}
{% endblock %}

View File

@@ -0,0 +1,17 @@
{% extends "base_page.html" %}
{% block pagetitle %}Authorization{% endblock %}
{% block bodytitle %}Google Analytics Authorization{% endblock %}
{% block content %}
<div id="admin_container">
<h3 class="error_message {{ status }}">{{ status }}</h3>
<p class="auth_status_message">{{ message }}</p>
{% if message_detail %}
<h4>Details: </h4>
<p class="error_message_detail">{{ message_detail }}</p>
{% endif %}
<p><a class="button button-blue" href="{{ LINKS['owner_index'] }}">Continue</a></p>
</div>
{% endblock %}

View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Google Analytics superProxy - {% block pagetitle %}{% endblock %}
</title>
<link href="{{ LINKS.css }}style.css" type="text/css" rel="stylesheet">
{% block head %}{% endblock%}
</head>
<body>
<script src="{{ LINKS.js }}framebuster.js"></script>
<div id="page">
<div class="user_details">
<span id="user_email">{{ current_user_email }}</span>
<a href={{ logout_url }}>logout</a></div>
<div>
<h1 class="query">{% block bodytitle %}{% endblock %}</h1>
{% if not omit_admin_link %}
<span><a class="back_link" href="{{ LINKS['owner_index'] }}">
&laquo; Admin Home</a></span>
{% endif %}
</div>
<p class="title_tagline">{% block titletagline %}{% endblock %}</p>
{% block content %}{% endblock %}
</div>
</body>
</html>

View File

@@ -0,0 +1,164 @@
{% extends "base_page.html" %}
{% if api_query %}
{# Set API Query status style #}
{% if api_query.is_active %}
{% set query_status = 'Enabled' %}
{% set query_status_btn = 'Disable Endpoint' %}
{% set query_status_btn_color = 'red' %}
{% set query_status_id = 'query_enabled' %}
{% else %}
{% set query_status = 'Disabled' %}
{% set query_status_btn = 'Enable Endpoint' %}
{% set query_status_btn_color = 'blue' %}
{% set query_status_id = 'query_disabled' %}
{% endif %}
{# Set Schedule status style #}
{% if api_query.is_scheduled %}
{% set schedule_status = 'Running' %}
{% set schedule_status_btn = 'Pause Scheduling' %}
{% set schedule_status_btn_color = 'red' %}
{% set scheduling_id = 'scheduling_running' %}
{% else %}
{% set schedule_status = 'Paused' %}
{% set schedule_status_btn = 'Start Scheduling' %}
{% set schedule_status_btn_color = 'blue' %}
{% set scheduling_id = 'scheduling_paused' %}
{% endif %}
{% endif %}
{% block content %}
{% block api_query_content %}{% endblock %}
{% if api_query %}
<div class="admin_container">
<div class="container_heading">
<h2>Scheduling</h2>
</div>
{% if not api_query.is_error_limit_reached %}
<div class="action_bar">
{% if api_query.is_active %}
<form class="action_bar" method="post"
action="{{ LINKS['query_schedule'] }}">
<input type="hidden" name="query_id" value="{{ api_query.id }}"/>
<input type="hidden" name="ui" value="true"/>
<input class="button button-{{ schedule_status_btn_color }}"
type="submit"
id="ui_schedule" name="schedule"
value="{{ schedule_status_btn }}"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
{% else %}
<div class="endpoint_warning">Enable the public
request endpoint to start scheduling</div>
{% endif %}
</div>
{% endif %}
<p class="tagline">Schedule and check the status of updated.</p>
<table class="query_table">
<tr>
<td class="row_label">Status</td>
<td id="{{ scheduling_id }}" class="manage_status">
{{ schedule_status }}</td>
</tr>
<tr>
<td class="row_label">Refresh Interval</td>
<td>{{ api_query.refresh_interval }} seconds</td>
</tr>
<tr>
<td class="row_label">Last Refreshed</td>
<td>{{ api_query.modified_timedelta }}</td>
</tr>
</table>
</div>
{% for error in api_query.errors %}
{% if loop.first %}
<div class="admin_container">
<div class="container_heading">
<h2 id="error_count">
Errors ({{ api_query.error_count }})</h2>
</div>
<div class="action_bar">
<form class="delete" method="post"
id='clear_errors' action="{{ api_query.delete_errors_link }}">
<input type="hidden" id="redirect" name="redirect"
value="{{ api_query.manage_link }}">
<input type="submit" class="button button-red"
value="Clear Errors"/>
<input type="hidden" id="type" name="type" value="errors"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
</div>
<p class="tagline">Error responses received during API request fetch.
</p>
<table class="query_table">
<tr>
<th>Timestamp</th>
<th>Error</th>
</tr>
{% endif %} {# first error in loop #}
<tr>
<td class="row_label">{{ error.timestamp }}</td>
<td>{{ error.content }}</td>
</tr>
{% if loop.last %}
</table>
</div>
{% endif %} {# last error in list #}
{% endfor %}
<div class="admin_container">
<div class="container_heading">
<h2>Response Info</h2>
</div>
{% if not api_query.is_error_limit_reached %}
<div class="action_bar">
<form class="action_bar" method="post" action="{{ LINKS['query_run'] }}">
<input type="hidden" name="query_id" value="{{ api_query.id }}"/>
<input type="hidden" name="ui" value="true"/>
<input class="button button-blue" type="submit"
id="run_once" name="run_once" value="Refresh Now"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
</div>
{% endif %}
<p class="tagline">Details about the response for requests to the Public
Endpoint.</p>
<table class="query_table">
<tr>
<td class="row_label">Last Requested</td>
<td>{{ api_query.last_request_timedelta }}</td>
</tr>
<tr>
<td class="row_label">Request Count</td>
<td>{{ api_query.request_count }}</td>
</tr>
<tr>
<td class="row_label">Response</td>
<td>
{% if api_query.response_content %}
<div class="response_container">
{{ api_query.response_content }}</div>
{% else %}
<p><strong>No response found.</strong></p>
<p>
{% if api_query.is_active and api_query.in_queue %}
The query is scheduled, click on Run Now to execute it manually.
{% else %}
Click <strong>Start</strong> to schedule this query.
{% endif %}
</p>
</td>
</tr>
</table>
{% endif %}
</div>
{% endif %} {# if api_query #}
{% endblock %}

View File

@@ -0,0 +1,74 @@
{% extends "base_query_page.html" %}
{% set ga_connected = user_settings.ga_refresh_token %}
{% block pagetitle %}Create Query{% endblock %}
{% block bodytitle %}Create Query{% endblock %}
{% block head %}
<script src="{{ LINKS.js }}helpers.js"></script>
{% endblock %}
{% block api_query_content %}
{% if ga_connected %}
<div class="admin_container auth_container">
<div class="container_heading">
<h2>Setup your query</h2>
</div>
<form method="post" id="query_form" onsubmit="return validateForm(this)"
action="{{ LINKS['query_create'] }}">
<label class="query_label" for="name">Query Name</label>
<input type="text" id="name" name="name"
value="{{ name }}"
placeholder="e.g. Site pageviews (example.com)"/> &nbsp;
<span class="validate-text" id="name_msg"></span><br/>
<label for="refresh_interval">Refresh Interval (seconds)</label>
<input type="text" id="refresh_interval" name="refresh_interval"
value="{{ refresh_interval }}"/> &nbsp;
<span class="validate-text" id="refresh_interval_msg"></span>
<span class="tip-text">(1 hour = 3600, 1 day = 86400)</span><br/>
<label for="request">
Encoded URI for the query</label>
<textarea id="request"
name="request">{{ request }}</textarea><br/>
<div id="date_params" class="tip-text">
<span class="validate-text" id="request_msg"></span><br/>
Supported date parameters are <strong>{today}</strong> and
<strong>{Ndaysago}</strong>.<br/>
Relative dates are resolved to actual dates during query execution
and are currently configured to use the
<strong>{{ timezone|capitalize }}</strong> timezone.<br/><br/>
E.g. A query for the last 7 days would use the following
start and end dates: <br/>
https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A12345&start-date={6daysago}&end-date={today}
</div>
<p class="explorer_tip"><strong>Tip:</strong> Use the
<a target="_blank" href="//ga-dev-tools.appspot.com/explorer/">
Google Analytics Query Explorer</a> to build a valid Query URI.
</p>
<input type="submit" class="button button-red create-button"
name="create_query" id="create_query" value="Save Query"/>
<input type="submit" class="button button-red save-run-button"
name="create_run_query" id="create_run_query"
value="Save & Schedule Query"/>
<input type="submit" class="button button-gray test-button"
name="test_query" id="test_query" value="Test Query"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
{% if test_response %}
<h4>Test Response Content</h4>
<div class="response_container test_response_container">
{{ test_response }}
</div>
{% endif %}
</div>
{% endif %} {# New query box #}
{% endblock %}

View File

@@ -0,0 +1,92 @@
{% extends "base_query_page.html" %}
{% block pagetitle %}Manage Query{% endblock %}
{% block bodytitle %}Manage Query{% endblock %}
{% block head %}
<script src="{{ LINKS.js }}helpers.js"></script>
{% endblock %}
{% block api_query_content %}
<div class="admin_container">
<div class="container_heading">
<h2>Public Request Endpoint</h2>
</div>
<p class="tagline">Details about the configuration and the public URL for
this query.</p>
<table class="query_table">
<tr>
<td class="row_label">Status</td>
<td class="manage_status" id="{{ query_status_id }}">
{{ query_status }}</td>
</tr>
{% if is_admin %}
<tr>
<td class="row_label">Owner</td>
<td>{{ api_query.user_email }}</td>
</tr>
{% endif %}
</table>
<form method="post" id="query_form" onsubmit="return validateForm(this)"
action="{{ api_query.edit_post_link }}">
<label class="edit-label" for="name">Query Name</label>
<input type="text" id="name" name="name"
value="{{ api_query.name }}"
placeholder="e.g. Site pageviews (example.com)"/> &nbsp;
<span class="validate-text" id="name_msg"></span><br/>
<label class="edit-label"
for="refresh_interval">Refresh Interval (seconds)</label>
<input type="text" id="refresh_interval" name="refresh_interval"
value="{{ api_query.refresh_interval }}"/> &nbsp;
<span class="validate-text" id="refresh_interval_msg"></span>
<span class="tip-text">(1 hour = 3600, 1 day = 86400)</span><br/>
<label class="edit-label" for="request">
API Request</label>
<textarea id="request"
name="request">{{ api_query.request }}</textarea><br/>
<div id="date_params" class="tip-text edit">
<span class="validate-text" id="request_msg"></span><br/>
Supported date parameters are <strong>{today}</strong> and
<strong>{Ndaysago}</strong>.<br/>
Relative dates are resolved to actual dates during query execution
and are currently configured to use the
<strong>{{ timezone|capitalize }}</strong> timezone.<br/><br/>
E.g. A query for the last 7 days would use the following
start and end dates: <br/>
https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A12345&start-date={7daysago}&end-date={today}
<div class="warning">
<strong>Warning</strong>: Changing the the API Request URL may cause
you to break clients that are expecting a stable API Response for
this public endpoint.
</div>
</div>
<p class="explorer_tip_edit"><strong>Tip:</strong> Use the
<a target="_blank" href="//ga-dev-tools.appspot.com/explorer/">
Google Analytics Query Explorer</a> to build a valid Query URI.
</p>
<input type="submit" class="button button-red save-button"
name="save_query" id="save_query" value="Save Query"/>
<input type="submit" class="button button-red save-run-button"
name="save_query_refresh" id="save_query_refresh"
value="Save & Refresh Now"/>
<input type="submit" class="button button-gray test-button"
name="test_query" id="test_query" value="Test Query"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
<a class="cancel"
href="{{ api_query.manage_link }}">
Cancel</a>
</form>
{% if test_response %}
<h4>Test Response Content</h4>
<div class="response_container test_response_container">
{{ test_response }}
</div>
{% endif %}
</div>
{% endblock %}

View File

@@ -0,0 +1,17 @@
{% extends "base_page.html" %}
{% set omit_admin_link = true %}
{% block pagetitle %}Access Denied{% endblock %}
{% block bodytitle %}Authorization Required{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
<div id="admin_container">
<h3 class="error_message">Access Denied</h3>
<p class="auth_status_message">You must be granted access by the administrator
to use this service.</p>
</div>
{% endblock %}

View File

@@ -0,0 +1,77 @@
{% extends "base_query_page.html" %}
{% set ga_connected = user_settings.ga_refresh_token %}
{% block pagetitle %}Manage Users{% endblock %}
{% block bodytitle %}Manage Users{% endblock %}
{% block head %}
<script src="{{ LINKS.js }}helpers.js"></script>
{% endblock %}
{% block api_query_content %}
<div class="admin_container auth_container">
<div class="container_heading">
<h2>Add a User</h2>
</div>
<form method="post" id="user_form" onsubmit="return validateForm(this)"
action="{{ LINKS['admin_users'] }}">
<label class="email_label" for="name">Email</label>
<input type="text" id="email" name="email"/>
<span class="validate-text" id="email_msg"></span><br/>
<input type="submit" class="button button-red create-button"
name="add_user" id="add_user" value="Add User"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
<p class="user_activate">Once you add a user please let them know they can
activate their account by visiting:
<a href="{{ activate_link }}">{{ activate_link }}</a>
</p>
</div>
{% for invite in invitations %}
{% if loop.first %}
<div class="admin_container auth_container">
<div class="container_heading">
<h2>Outstanding Invites</h2>
</div>
<table class="admin_table">
<tr>
<th>Email</th>
<th>Date Added</th>
</tr>
</tr>
{% endif %} {# First item in loop #}
<tr>
<td class="name">{{ invite.email }}</td>
<td class="name">{{ invite.issued }}</td>
</tr>
{% if loop.last %}
</table>
</div>
{% endif %} {# Last item in loop #}
{% endfor %}
{% for user in users %}
{% if loop.first %}
<div class="admin_container auth_container">
<div class="container_heading">
<h2>Active Users</h2>
</div>
<table class="admin_table">
<tr>
<th>Email</th>
<th>Name</th>
</tr>
</tr>
{% endif %} {# First item in loop #}
<tr>
<td class="name">{{ user.email }}</td>
<td class="name">{{ user.nickname }}</td>
</tr>
{% if loop.last %}
</table>
</div>
{% endif %} {# Last item in loop #}
{% endfor %}
{% endblock %}

View File

@@ -0,0 +1,74 @@
{% extends "base_query_page.html" %}
{% block pagetitle %}{{ api_query.name }}{% endblock %}
{% block bodytitle %}Manage{% endblock %}
{% block head %}
<script src="{{ LINKS.js }}helpers.js"></script>
{% endblock %}
{% block api_query_content %}
<div class="admin_container">
<div class="container_heading">
<h2>Public Request Endpoint</h2>
</div>
<div class="manage action_bar">
<form class="action_bar" method="post"
action="{{ api_query.status_change_link }}">
<input type="hidden" id="redirect" name="redirect"
value="{{ api_query.manage_link }}"/>
<input type="hidden" id="ui" name="ui" value="true"/>
<input type="submit"
class="button button-{{ query_status_btn_color }}"
value="{{ query_status_btn }}"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
<form class="delete action_bar delete_button" method="post"
id="delete_query" action="{{ api_query.delete_link }}">
<input type="submit" class="button button-red" value="Delete"/>
<input type="hidden" name="xsrf_token" value="{{ xsrf_token }}"/>
</form>
<a class="edit-button button button-gray" href="{{ api_query.edit_link }}">Edit</a>
</div>
<p class="tagline">Details about the configuration and the public URL for
this query.</p>
<table class="query_table">
<tr>
<td class="row_label">Name</td>
<td>{{ api_query.name }}</td>
</tr>
<tr>
<td class="row_label">URL</td>
<td>
<a href="{{ api_query.public_link }}">{{ api_query.public_link }}</a>
</td>
</tr>
<tr>
<td class="row_label">Formats</td>
<td>
{% for format in api_query.format_links|dictsort %}
<a href="{{ format[1] }}">
{{ format[0] }}</a>&nbsp;
{% endfor %}
</td>
</tr>
<tr>
<td class="row_label">Status</td>
<td class="manage_status" id="{{ query_status_id }}">
{{ query_status }}</td>
</tr>
<tr>
<td class="row_label">API Request</td>
<td>{{ api_query.request }}</td>
</tr>
{% if is_admin %}
<tr>
<td class="row_label">Owner</td>
<td>{{ api_query.user_email }}</td>
</tr>
{% endif %}
</table>
</div>
{% endblock %}

View File

@@ -0,0 +1 @@
Deny from all

View File

@@ -0,0 +1,142 @@
<?php
// Don't touch this. It attempts to thwart attempts of reading this file by another php script
defined('IN_INFO') or exit;
// If you experience timezone errors, uncomment (remove //) the following line and change the timezone to your liking
// date_default_timezone_set('America/New_York');
/*
* Usual configuration
*/
$settings['byte_notation'] = 1024; // Either 1024 or 1000; defaults to 1024
$settings['language'] = 'en'; // Refer to the lang/ folder for supported lanugages
$settings['icons'] = true; // simple icons
/*
* Possibly don't show stuff
*/
// For certain reasons, some might choose to not display all we can
// Set these to true to enable; false to disable. They default to false.
$settings['show']['kernel'] = true;
$settings['show']['os'] = true;
$settings['show']['load'] = true;
$settings['show']['ram'] = true;
$settings['show']['hd'] = true;
$settings['show']['mounts'] = true;
$settings['show']['mounts_options'] = false; // Might be useless/confidential information; disabled by default.
$settings['show']['network'] = true;
$settings['show']['uptime'] = true;
$settings['show']['cpu'] = true;
$settings['show']['process_stats'] = true;
$settings['show']['hostname'] = true;
$settings['show']['distro'] = true; # Attempt finding name and version of distribution on Linux systems
$settings['show']['devices'] = true; # Slow on old systems
$settings['show']['model'] = true; # Model of system. Supported on certain OS's. ex: Macbook Pro
// Disabled by default as they require extra config below
$settings['show']['temps'] = false;
$settings['show']['raid'] = false;
// Following are probably only useful on laptop/desktop/workstation systems, not servers, although they work just as well
$settings['show']['battery'] = false;
$settings['show']['sound'] = false;
$settings['show']['wifi'] = false; # Not finished
// Service monitoring
$settings['show']['services'] = false;
/*
* Misc settings pertaining to the above follow below:
*/
// Hide certain file systems / devices
$settings['hide']['filesystems'] = array(
'tmpfs', 'ecryptfs', 'nfsd', 'rpc_pipefs',
'usbfs', 'devpts', 'fusectl', 'securityfs', 'fuse.truecrypt');
$settings['hide']['storage_devices'] = array('gvfs-fuse-daemon', 'none');
// Hide mount options for these file systems. (very, very suggested, especially the ecryptfs ones)
$settings['hide']['fs_mount_options'] = array('ecryptfs');
// Hide hard drives that begin with /dev/sg?. These are duplicates of usual ones, like /dev/sd?
$settings['hide']['sg'] = true; # Linux only
// Various softraids. Set to true to enable.
// Only works if it's available on your system; otherwise does nothing
$settings['raid']['gmirror'] = false; # For FreeBSD
$settings['raid']['mdadm'] = false; # For Linux; known to support RAID 1, 5, and 6
// Various ways of getting temps/voltages/etc. Set to true to enable. Currently these are just for Linux
$settings['temps']['hwmon'] = true; // Requires no extra config, is fast, and is in /sys :)
$settings['temps']['hddtemp'] = true;
$settings['temps']['mbmon'] = true;
$settings['temps']['sensord'] = true; // Part of lm-sensors; logs periodically to syslog. slow
// Configuration for getting temps with hddtemp
$settings['hddtemp']['mode'] = 'daemon'; // Either daemon or syslog
$settings['hddtemp']['address'] = array( // Address/Port of hddtemp daemon to connect to
'host' => 'localhost',
'port' => 7634
);
// Configuration for getting temps with mbmon
$settings['mbmon']['address'] = array( // Address/Port of mbmon daemon to connect to
'host' => 'localhost',
'port' => 411
);
/*
* For the things that require executing external programs, such as non-linux OS's
* and the extensions, you may specify other paths to search for them here:
*/
$settings['additional_paths'] = array(
//'/opt/bin' # for example
);
/*
* Services. It works by specifying locations to PID files, which then get checked
* Either that or specifying a path to the executable, which we'll try to find a running
* process PID entry for. It'll stop on the first it finds.
*/
// Format: Label => pid file path
$settings['services']['pidFiles'] = array(
// 'Apache' => '/var/run/apache2.pid', // uncomment to enable
// 'SSHd' => '/var/run/sshd.pid'
);
// Format: Label => path to executable
$settings['services']['executables'] = array(
// 'MySQLd' => '/usr/sbin/mysqld' // uncomment to enable
);
/*
* Debugging settings
*/
// Show errors? Disabled by default to hide vulnerabilities / attributes on the server
$settings['show_errors'] = false;
// Show results from timing ourselves? Similar to above.
// Lets you see how much time getting each bit of info takes.
$settings['timer'] = false;
// Compress content, can be turned off to view error messages in browser
$settings['compress_content'] = true;
/*
* Occasional sudo
* Sometimes you may want to have one of the external commands here be ran as root with
* sudo. This requires the web server user be set to "NOPASS" in your sudoers so the sudo
* command just works without a prompt.
*
* Add names of commands to the array if this is what you want. Just the name of the command;
* not the complete path. This also applies to commands called by extensions.
*
* Note: this is extremely dangerous if done wrong
*/
$settings['sudo_apps'] = array(
//'ps' // For example
);

View File

@@ -0,0 +1,192 @@
<?php
define('_ISVALID', true);
//define('_ISADMIN', true);
/*
* This file is part of Linfo (c) 2010-2011 Joseph Gillotti.
*
* Linfo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Linfo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Linfo. If not, see <http://www.gnu.org/licenses/>.
*
*/
//echo "asd"._ISVALID;
//if(!defined('_ISADMIN')) die("no");
//include_once 'f_core/config.core.php';
//$lp = $cfg["main_dir"].'/f_modules/m_backend/m_linfo';
$lp = dirname(__FILE__).'/';
//exit;
// Timer
define('TIME_START', microtime(true));
// Are we running from the CLI?
if (isset($argc) && is_array($argv))
define('LINFO_CLI', true);
// Version
define('AppName', 'Linfo');
define('VERSION', '1.8.1');
// Anti hack, as in allow included files to ensure they were included
define('IN_INFO', true);
// Configure absolute path to local directory
//define('LOCAL_PATH', dirname(__FILE__) . '/');
define('LOCAL_PATH', $lp);
// Configure absolute path to stored info cache, for things that take a while
// to find and don't change, like hardware devcies
//define('CACHE_PATH', dirname(__FILE__) . '/cache/');
define('CACHE_PATH', $lp.'cache/');
// Configure absolute path to web directory
$web_path = dirname($_SERVER['SCRIPT_NAME']);
define('WEB_PATH', (substr($web_path, -1) == '/' ? $web_path : $web_path.'/').'f_modules/m_backend/m_tools/m_linfo/');
//define('WEB_PATH', $lp);
// If configuration file does not exist but the sample does, say so
if (!is_file(LOCAL_PATH . 'config.inc.php') && is_file(LOCAL_PATH . 'sample.config.inc.php'))
exit('Make changes to sample.config.inc.php then rename as config.inc.php');
// If the config file is just gone, also say so
elseif(!is_file(LOCAL_PATH . 'config.inc.php'))
exit('Config file not found.');
// It exists; just include it
require_once LOCAL_PATH . 'config.inc.php';
// This is essentially the only extension we need, so make sure we have it
if (!extension_loaded('pcre') && !function_exists('preg_match') && !function_exists('preg_match_all')) {
echo AppName.' needs the `pcre\' extension to be loaded. http://us2.php.net/manual/en/book.pcre.php';
exit(1);
}
// Make sure these are arrays
$settings['hide']['filesystems'] = is_array($settings['hide']['filesystems']) ? $settings['hide']['filesystems'] : array();
$settings['hide']['storage_devices'] = is_array($settings['hide']['storage_devices']) ? $settings['hide']['storage_devices'] : array();
// Make sure these are always hidden
$settings['hide']['filesystems'][] = 'rootfs';
$settings['hide']['filesystems'][] = 'binfmt_misc';
// Load libs
require_once LOCAL_PATH . 'lib/functions.init.php';
require_once LOCAL_PATH . 'lib/functions.misc.php';
require_once LOCAL_PATH . 'lib/functions.display.php';
require_once LOCAL_PATH . 'lib/class.LinfoTimer.php';
require_once LOCAL_PATH . 'lib/interface.LinfoExtension.php';
// Default to english translation if garbage is passed
if (empty($settings['language']) || !preg_match('/^[a-z]{2}$/', $settings['language']))
$settings['language'] = 'en';
// If it can't be found default to english
if (!is_file(LOCAL_PATH . 'lang/'.$settings['language'].'.php'))
$settings['language'] = 'en';
// Load translation
require_once LOCAL_PATH . 'lang/'.$settings['language'].'.php';
// Determine our OS
$os = determineOS();
// Cannot?
if ($os == false)
exit("Unknown/unsupported operating system\n");
// Get info
$getter = parseSystem($os, $settings);
$info = $getter->getAll();
// Store current timestamp for alternative output formats
$info['timestamp'] = date("c");
// Extensions
runExtensions($info, $settings);
// Make sure we have an array of what not to show
$info['contains'] = array_key_exists('contains', $info) ? (array) $info['contains'] : array();
// From the command prompt? Ncurses motha fucka!
if (defined('LINFO_CLI')) {
$out = new out_ncurses();
$out->work($info, $settings, $getter);
}
// Coming from a web server
else {
// Decide what web format to output in
switch (array_key_exists('out', $_GET) ? $_GET['out'] : 'html') {
// Just regular html
case 'html':
default:
showInfoHTML($info, $settings);
break;
// JSON
case 'json':
showInfoJSON($info, $settings);
break;
// Serialized php array
case 'php_array':
echo serialize($info);
break;
// XML
case 'xml':
// Try using SimpleXML
if (extension_loaded('SimpleXML'))
showInfoSimpleXML($info, $settings);
// If not that, then try XMLWriter
elseif (extension_loaded('XMLWriter'))
showInfoXMLWriter($info, $settings);
// Can't generate XML anywhere :-/
else
exit('Cannot generate XML. Install either php\'s SimpleXML or XMLWriter extension');
break;
}
}
// "This is where it ends, Commander"
/*
Roses are red; violets are blue; vaginas are nice and
sometimes you are too!
Once upton a time, there was a sex machine named Billie. Her
counterpart was named Linus. Her cunt was lined with sweet
oil to ease his passing, Linus so loved her cunt. At one
point, their liquid metal condom broke and they conceived a
child. They named it "pinpho" after the broken condom.
Out it came, not much more than a sandisk flash drive. They
inserted it where the sun shouldn't shine; it had a lone
ext2 partition consisting of a single file:
linfo_0.1.tar.gz.
Thus Linfo was born.
--
The book of Metal
cocks, 93:69
*/

View File

@@ -0,0 +1,97 @@
<?php
/*
* This file is part of Linfo (c) 2010 Joseph Gillotti.
*
* Linfo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Linfo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Linfo. If not, see <http://www.gnu.org/licenses/>.
*
*/
defined('IN_INFO') or exit;
/*
* German translation
*/
$lang = array(
'header' => 'System Health: %s',
'core' => 'Kern',
'os' => 'OS',
'kernel' => 'Kernel',
'accessed_ip' => 'Adapter-IP',
'uptime' => 'Uptime',
'hostname' => 'Hostname',
'cpus' => 'CPUs',
'load' => 'Auslastung/Load',
'processes' => 'Prozesse',
'threads' => 'Threads',
'total' => 'Summe',
'memory' => 'Speicher',
'type' => 'Typ',
'free' => 'Frei',
'used' => 'Belegt',
'size' => 'Größe',
'physical' => 'Physikalisch',
'swap' => 'Auslagerungspartition',
'network_devices' => 'Netzwerkgeräte',
'device_name' => 'Gerätename',
'amount_sent' => 'Gesendet',
'amount_received' => 'Empfangen',
'state' => 'Zustand',
'temps_voltages' => 'Temperaturen / Spannungen',
'path' => 'Pfad',
'device' => 'Gerät',
'value' => 'Wert',
'hardware' => 'Hardware',
'vendor' => 'Hersteller',
'drives' => 'Festplatten',
'name' => 'Name',
'reads' => 'Lesezugriffe',
'writes' => 'Schreibzugriffe',
'filesystem_mounts' => 'Eingehängte Datenträger',
'mount_point' => 'Einhängepunkte',
'filesystem' => 'Dateisystem',
'percent_used' => 'Prozent Belegt',
'raid_arrays' => 'RAID Arrays',
'level' => 'Level',
'status' => 'Status',
'devices' => 'Geräte',
'label' => 'Label',
'active' => 'Activ',
'batteries' => 'Batterien',
'charge' => 'Laden',
'unknown' => 'Unbekannt',
'footer_app' => 'Von %s in %s Sekunden generiert.',
'none_found' => 'Keine gefunden',
'sound_cards' => 'Soundkarten',
'number' => 'Nummer',
'card' => 'Karte',
'message' => 'Nachricht',
'mount_options' => 'Einhängeoptionen',
'error_head' => 'Fehler beim Sammeln der Daten',
'timer' => 'Timer',
'area' => 'Bereich',
'time_taken' => 'Zum Holen benötigte Zeit',
'seconds' => 'Sekunden',
'days' => 'Tage',
'minutes' => 'Minuten',
'hours' => 'Stunden',
'pid' => 'PID',
'service' => 'Dienst',
'services' => 'Dienste',
'memory_usage' => 'Speichernutzung',
'distro' => 'Distribution',
'cpu_arch' => 'Architecture'
);

View File

@@ -0,0 +1,103 @@
<?php
/*
* This file is part of Linfo (c) 2010 Joseph Gillotti.
*
* Linfo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Linfo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Linfo. If not, see <http://www.gnu.org/licenses/>.
*
*/
defined('IN_INFO') or exit;
/*
* English translation
*/
$lang = array(
'header' => 'System Health and Information',
'core' => 'Core',
'os' => 'OS',
'kernel' => 'Kernel',
'accessed_ip' => 'Accessed IP',
'uptime' => 'Uptime',
'hostname' => 'Hostname',
'cpus' => 'CPUs',
'load' => 'Load',
'processes' => 'Processes',
'threads' => 'Threads',
'total' => 'Total',
'memory' => 'Memory',
'type' => 'Type',
'free' => 'Free',
'used' => 'Used',
'size' => 'Size',
'physical' => 'Physical',
'swap' => 'Swap',
'network_devices' => 'Network Devices',
'device_name' => 'Device Name',
'amount_sent' => 'Amount Sent',
'amount_received' => 'Amount Received',
'state' => 'State',
'temps_voltages' => 'Temperatures / Voltages',
'path' => 'Path',
'device' => 'Device',
'value' => 'Value',
'hardware' => 'Hardware',
'vendor' => 'Vendor',
'type' => 'Type',
'drives' => 'Drives',
'name' => 'Name',
'reads' => 'Reads',
'writes' => 'Writes',
'size' => 'Size',
'filesystem_mounts' => 'Filesystem Mounts',
'mount_point' => 'Mount Point',
'filesystem' => 'Filesystem',
'used' => 'Used',
'free' => 'Free',
'percent_used' => 'Percent Used',
'raid_arrays' => 'RAID Arrays',
'level' => 'Level',
'status' => 'Status',
'devices' => 'Devices',
'label' => 'Label',
'active' => 'Active',
'batteries' => 'Batteries',
'charge' => 'Charge',
'unknown' => 'Unknown',
'footer_app' => 'Generated by %s in %s seconds.',
'none_found' => 'None Found',
'sound_cards' => 'Sound Cards',
'number' => 'Number',
'card' => 'Card',
'message' => 'Message',
'from_where' => 'Source',
'mount_options' => 'Mount Options',
'error_head' => 'Data Gathering Errors',
'timer' => 'Timer',
'area' => 'Area',
'time_taken' => 'Time taken to fetch',
'days' => 'days',
'minutes' => 'minutes',
'seconds' => 'seconds',
'hours' => 'hours',
'pid' => 'PID',
'service' => 'Service',
'services' => 'Services',
'memory_usage' => 'Memory Usage',
'distro' => 'Distribution',
'cpu_arch' => 'Architecture',
'model' => 'Model',
);

View File

@@ -0,0 +1,102 @@
<?php
/*
* This file is part of Linfo (c) 2010 Joseph Gillotti.
*
* Linfo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Linfo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Linfo. If not, see <http://www.gnu.org/licenses/>.
*
*/
defined('IN_INFO') or exit;
/*
* Polish translation
*/
$lang = array(
'header' => 'Aktualny stan systemu i informacja',
'core' => 'Rdzeń',
'os' => 'OS',
'kernel' => 'Kernel',
'accessed_ip' => 'Przydzielone IP',
'uptime' => 'Działa',
'hostname' => 'Nazwa komputera',
'cpus' => 'CPUs',
'load' => 'Obciążenie',
'processes' => 'Procesy',
'threads' => 'Wątki',
'total' => 'Razem',
'memory' => 'Pamięci',
'type' => 'Typ',
'used' => 'Używanego',
'size' => 'Rozmiar',
'physical' => 'Fizyczna',
'swap' => 'Swap',
'network_devices' => 'Urządzenia sieciowe',
'device_name' => 'Nazwa urządzenia',
'amount_sent' => 'Wysłane',
'amount_received' => 'Otrzymane',
'state' => 'Stan',
'temps_voltages' => 'Temperatura / Napięcie',
'path' => 'Ścieżka',
'device' => 'Urządzenie',
'value' => 'Wartość',
'hardware' => 'Sprzęt',
'vendor' => 'Dostawca',
'type' => 'Typ', // TODO: translate
'drives' => 'Dyski',
'name' => 'Nazwa',
'reads' => 'Odczytanych',
'writes' => 'Zapisanych',
'size' => 'Łącznie',
'filesystem_mounts' => 'Zamonotwany system plików',
'mount_point' => 'Punkt montowania',
'filesystem' => 'System plików',
'used' => 'Użytych',
'free' => 'Wolnych',
'percent_used' => 'Procent zużycia',
'raid_arrays' => 'RAID Arrays',
'level' => 'Poziom',
'status' => 'Stan',
'devices' => 'Urządzenia',
'label' => 'Etykieta', // TODO: translate
'active' => 'Aktywne',
'batteries' => 'Baterie',
'charge' => 'Naładowanie',
'unknown' => 'Nieznany',
'footer_app' => '%s Wygenerowane przez w sekund %s.',
'none_found' => 'Nieznalezione',
'sound_cards' => 'Karty dźwiękowe',
'number' => 'Numer',
'card' => 'Karta',
'from_where' => 'Źródło', // TODO: translate
'message' => 'Wiadomość',
'mount_options' => 'Opcje montowania',
'error_head' => 'Błędy gromadzenia danych',
'timer' => 'Zegar',
'area' => 'Strefa',
'time_taken' => 'Czas potrzebny do pobierania',
'days' => 'dni',
'minutes' => 'minuta',
'seconds' => 'sekund',
'hours' => 'godzina',
'pid' => 'PID', // todo: translate
'service' => 'Usługa',
'services' => 'Usługi',
'memory_usage' => 'Zużycie pamięci', //TODO: translate
'distro' => 'Dystrybucja', //TODO: translate
'cpu_arch' => 'Architektura' //TODO: translate
);

View File

@@ -0,0 +1,28 @@
/* All icons conform to this */
.icon {
height: 16px;
display: block;
float: left;
margin-right: 4px;
background-repeat: no-repeat;
min-width: 16px;
}
/* Set individual icons here. Notice not all have the same width. */
.icon_os_linux { background-image: url('icons/os_linux.gif'); width: 14px; }
.icon_os_windows { background-image: url('icons/os_windows.gif'); width: 14px; }
.icon_os_freebsd { background-image: url('icons/os_freebsd.png'); width: 14px; }
.icon_os_netbsd { background-image: url('icons/os_netbsd.png'); width: 16px; }
.icon_os_openbsd { background-image: url('icons/os_openbsd.png'); width: 16px; }
.icon_os_minix { background-image: url('icons/os_minix.png'); width: 18px; }
.icon_os_solaris { background-image: url('icons/os_solaris.png'); width: 31px; }
.icon_os_darwin { background-image: url('icons/os_darwin.png'); width: 14px; }
.icon_os_dragonflybsd { background-image: url('icons/os_dragonflybsd.png'); width: 16px; }
.icon_os_cygwin { background-image: url('icons/os_cygwin.png'); width: 16px; height: 16px;}
.icon_distro_ubuntu { background-image: url('icons/distro_ubuntu.png'); width: 16px; }
.icon_distro_debian { background-image: url('icons/distro_debian.png'); width: 16px; }
.icon_distro_centos { background-image: url('icons/distro_centos.png'); width: 16px; }
.icon_distro_fedora { background-image: url('icons/distro_fedora.png'); width: 16px; }
.icon_distro_arch { background-image: url('icons/distro_arch.png'); width: 16px; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,6 @@
/* Versions of IE under 8 suck even more than usual */
/* This make the columns actually appear side by side since it's too feeble to undersand widths correctly. */
.col4 .col {width: 49%;}
.col2_side_right {float: left; width: 19%;}

Some files were not shown because too many files have changed in this diff Show More