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
94
f_modules/api/index.php
Normal 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;
|
||||
}
|
||||
?>
|
||||
129
f_modules/api/srs_webhook.php
Normal 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
|
||||
]);
|
||||
}
|
||||
}
|
||||
?>
|
||||
76
f_modules/api/v1/index.php
Normal 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'
|
||||
]);
|
||||
}
|
||||
?>
|
||||
2960
f_modules/m_backend/advanced_branding_panel.php
Normal file
38
f_modules/m_backend/advertising.php
Normal 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;
|
||||
180
f_modules/m_backend/branding_management.php
Normal 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>
|
||||
47
f_modules/m_backend/dashboard.php
Normal 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;
|
||||
183
f_modules/m_backend/db_tools.php
Normal 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>
|
||||
|
||||
87
f_modules/m_backend/error.php
Normal 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();?>
|
||||
12
f_modules/m_backend/f_data/logs/2025-10-17_critical.log
Normal 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"}]}
|
||||
3
f_modules/m_backend/f_data/logs/2025-10-17_error.log
Normal 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}]}
|
||||
344
f_modules/m_backend/f_data/logs/2025-10-17_warning.log
Normal 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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 "" 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}]}
|
||||
1
f_modules/m_backend/f_data/logs/2025-10-18_critical.log
Normal 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"}]}
|
||||
130
f_modules/m_backend/f_data/logs/2025-10-18_warning.log
Normal 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 "" 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 "" 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 "" 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 "" 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}]}
|
||||
111
f_modules/m_backend/files.php
Normal 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;
|
||||
121
f_modules/m_backend/files_tmb.php
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
405
f_modules/m_backend/fingerprint_management.php
Normal 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>
|
||||
312
f_modules/m_backend/ip_management.php
Normal 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>
|
||||
237
f_modules/m_backend/log_viewer.php
Normal 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>
|
||||
31
f_modules/m_backend/m_tools/m_gasp/app.yaml
Normal 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
|
||||
47
f_modules/m_backend/m_tools/m_gasp/config.py
Normal 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'
|
||||
69
f_modules/m_backend/m_tools/m_gasp/controllers/admin.py
Normal 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)
|
||||
148
f_modules/m_backend/m_tools/m_gasp/controllers/base.py
Normal 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)
|
||||
380
f_modules/m_backend/m_tools/m_gasp/controllers/owner.py
Normal 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)
|
||||
83
f_modules/m_backend/m_tools/m_gasp/controllers/public.py
Normal 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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
132
f_modules/m_backend/m_tools/m_gasp/controllers/util/co.py
Normal 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/'
|
||||
}
|
||||
@@ -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'
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
@@ -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))
|
||||
@@ -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
|
||||
@@ -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()
|
||||
11
f_modules/m_backend/m_tools/m_gasp/dash/Chart.min.js
vendored
Normal file
2
f_modules/m_backend/m_tools/m_gasp/dash/active-users.js
Normal 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
|
||||
@@ -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
|
||||
7
f_modules/m_backend/m_tools/m_gasp/dash/moment.min.js
vendored
Normal file
22
f_modules/m_backend/m_tools/m_gasp/index.yaml
Normal 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
|
||||
0
f_modules/m_backend/m_tools/m_gasp/libs/__init__.py
Normal file
262
f_modules/m_backend/m_tools/m_gasp/libs/csv_writer/csv_writer.py
Normal 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
|
||||
|
||||
202
f_modules/m_backend/m_tools/m_gasp/libs/gviz_api/COPYRIGHT
Normal 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.
|
||||
25
f_modules/m_backend/m_tools/m_gasp/libs/gviz_api/README
Normal 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/
|
||||
@@ -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.
|
||||
1091
f_modules/m_backend/m_tools/m_gasp/libs/gviz_api/gviz_api.py
Normal 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<</th><th>b></th><th>c</th>"
|
||||
"</tr></thead>"
|
||||
"<tbody>"
|
||||
"<tr><td>$1</td><td></td><td></td></tr>"
|
||||
"<tr><td></td><td><z></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()
|
||||
59
f_modules/m_backend/m_tools/m_gasp/libs/gviz_api/setup.py
Normal 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},
|
||||
)
|
||||
127
f_modules/m_backend/m_tools/m_gasp/models/db_models.py
Normal 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)
|
||||
@@ -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
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
})();
|
||||
@@ -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;
|
||||
}
|
||||
20
f_modules/m_backend/m_tools/m_gasp/templates/activate.html
Normal 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 %}
|
||||
136
f_modules/m_backend/m_tools/m_gasp/templates/admin.html
Normal 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">↑</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>
|
||||
</td>
|
||||
</tr>
|
||||
{% if loop.last %}
|
||||
</table>
|
||||
</div>
|
||||
{% endif %} {# Last item in loop #}
|
||||
|
||||
{% else %}
|
||||
{% if ga_connected %}
|
||||
<p class="create_message">
|
||||
<span class="create_arrow">↑</span>
|
||||
To get started click on <strong>Create Query</strong></p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
17
f_modules/m_backend/m_tools/m_gasp/templates/auth.html
Normal 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 %}
|
||||
27
f_modules/m_backend/m_tools/m_gasp/templates/base_page.html
Normal 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'] }}">
|
||||
« Admin Home</a></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<p class="title_tagline">{% block titletagline %}{% endblock %}</p>
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -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 %}
|
||||
74
f_modules/m_backend/m_tools/m_gasp/templates/create.html
Normal 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)"/>
|
||||
<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 }}"/>
|
||||
<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 %}
|
||||
92
f_modules/m_backend/m_tools/m_gasp/templates/edit.html
Normal 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)"/>
|
||||
<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 }}"/>
|
||||
<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 %}
|
||||
17
f_modules/m_backend/m_tools/m_gasp/templates/public.html
Normal 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 %}
|
||||
77
f_modules/m_backend/m_tools/m_gasp/templates/users.html
Normal 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 %}
|
||||
74
f_modules/m_backend/m_tools/m_gasp/templates/view.html
Normal 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>
|
||||
{% 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 %}
|
||||
1
f_modules/m_backend/m_tools/m_linfo/cache/.htaccess
vendored
Normal file
@@ -0,0 +1 @@
|
||||
Deny from all
|
||||
142
f_modules/m_backend/m_tools/m_linfo/config.inc.php
Normal 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
|
||||
);
|
||||
192
f_modules/m_backend/m_tools/m_linfo/index.php
Normal 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
|
||||
*/
|
||||
97
f_modules/m_backend/m_tools/m_linfo/lang/de.php
Normal 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'
|
||||
);
|
||||
103
f_modules/m_backend/m_tools/m_linfo/lang/en.php
Normal 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',
|
||||
);
|
||||
102
f_modules/m_backend/m_tools/m_linfo/lang/pl.php
Normal 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
|
||||
|
||||
);
|
||||
28
f_modules/m_backend/m_tools/m_linfo/layout/icons.css
Normal 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; }
|
||||
|
||||
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/distro_arch.png
Normal file
|
After Width: | Height: | Size: 576 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 638 B |
|
After Width: | Height: | Size: 687 B |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 955 B |
|
After Width: | Height: | Size: 836 B |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_cygwin.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_darwin.png
Normal file
|
After Width: | Height: | Size: 405 B |
|
After Width: | Height: | Size: 1.0 KiB |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_freebsd.png
Normal file
|
After Width: | Height: | Size: 991 B |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_linux.gif
Normal file
|
After Width: | Height: | Size: 586 B |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_minix.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_netbsd.png
Normal file
|
After Width: | Height: | Size: 733 B |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_openbsd.png
Normal file
|
After Width: | Height: | Size: 848 B |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_solaris.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
f_modules/m_backend/m_tools/m_linfo/layout/icons/os_windows.gif
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
6
f_modules/m_backend/m_tools/m_linfo/layout/old_ie.css
Normal 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%;}
|
||||
|
||||