67 lines
2.4 KiB
PHP
67 lines
2.4 KiB
PHP
|
<?php
|
||
|
|
||
|
function getDirectorySize($dir) {
|
||
|
$size = 0;
|
||
|
|
||
|
if (is_dir($dir)) {
|
||
|
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)) as $file) {
|
||
|
$size += $file->getSize();
|
||
|
}
|
||
|
}
|
||
|
return $size;
|
||
|
}
|
||
|
|
||
|
// Функция для подсчета количества файлов в директории
|
||
|
function getFileCount($dir) {
|
||
|
$count = 0;
|
||
|
|
||
|
if (is_dir($dir)) {
|
||
|
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)) as $file) {
|
||
|
if ($file->isFile()) {
|
||
|
$count++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return $count;
|
||
|
}
|
||
|
|
||
|
// Определяем абсолютные пути к директориям кэша для расчета статистики
|
||
|
$cache_images_dir = __DIR__ . '/cache/images/';
|
||
|
$cache_meta_dir = __DIR__ . '/cache/meta/';
|
||
|
|
||
|
// Расчет размера кэша (только изображения)
|
||
|
$cache_size_bytes = getDirectorySize($cache_images_dir);
|
||
|
$cache_size_mb = round($cache_size_bytes / (1024 * 1024), 2);
|
||
|
|
||
|
// Подсчет количества изображений в кэше
|
||
|
$image_count = getFileCount($cache_images_dir);
|
||
|
|
||
|
// Fetch statistics
|
||
|
$stats = [];
|
||
|
|
||
|
// Total number of entries
|
||
|
$query = "SELECT COUNT(*) AS total_entries FROM anime_list";
|
||
|
$stats['total_entries'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['total_entries'];
|
||
|
|
||
|
// Total number of completed anime
|
||
|
$query = "SELECT COUNT(*) AS completed_anime FROM anime_list WHERE is_completed = 1";
|
||
|
$stats['completed_anime'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['completed_anime'];
|
||
|
|
||
|
// Count by type
|
||
|
$query = "SELECT type, COUNT(*) AS count FROM anime_list GROUP BY type";
|
||
|
$stats['by_type'] = $conn->query($query)->fetchAll(PDO::FETCH_ASSOC);
|
||
|
|
||
|
// Most recent completion date
|
||
|
$query = "SELECT MAX(date_completed) AS most_recent_completion FROM anime_list WHERE date_completed IS NOT NULL";
|
||
|
$stats['most_recent_completion'] = $conn->query($query)->fetch(PDO::FETCH_ASSOC)['most_recent_completion'];
|
||
|
|
||
|
// DB size
|
||
|
$query = "SELECT SUM(data_length + index_length) AS size FROM information_schema.TABLES WHERE table_schema = :dbname";
|
||
|
$stmt = $conn->prepare($query);
|
||
|
$stmt->execute(['dbname' => $dbname]);
|
||
|
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||
|
$size_in_bytes = $row['size'];
|
||
|
$size_in_kilobytes = $size_in_bytes / 1024;
|
||
|
|
||
|
?>
|