archive-ccc8458/video/index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
declare(strict_types=1);
require_once __DIR__ . '/lib/hash.php';
const PER_PAGE = 16;
$page = max(1, (int)($_GET['page'] ?? 1));
$result = paginate_videos(false, ($page - 1) * PER_PAGE, PER_PAGE);
$videos = $result['videos'];
$totalPages = max(1, (int) ceil($result['total'] / PER_PAGE));
// Clamp out-of-range page requests back to the last real page.
if ($page > $totalPages) {
header('Location: /video/?page=' . $totalPages, true, 302);
exit;
}
function rel_time(int $epoch): string {
if ($epoch <= 0) return '';
$d = time() - $epoch;
if ($d < 60) return 'just now';
if ($d < 3600) return floor($d / 60) . 'm ago';
if ($d < 86400) return floor($d / 3600) . 'h ago';
if ($d < 2592000) return floor($d / 86400) . 'd ago';
return date('j M Y', $epoch);
}
?><!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sianel</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="/video/sianel.css">
</head>
<body class="page-index">
<header>
<a href="/video/"><img class="logo" src="/video/sianel_logo.png" alt="Sianel"></a>
<a href="/video/admin">Admin</a>
</header>
<main>
<?php if (empty($videos)): ?>
<p class="empty">No videos yet.</p>
<?php else: ?>
<div class="grid">
<?php foreach ($videos as $v): ?>
<a class="tile" href="<?= htmlspecialchars($v['url']) ?>">
<?php if ($v['thumbnail']): ?>
<img class="thumb" src="<?= htmlspecialchars($v['thumbnail']) ?>" alt="" loading="lazy">
<?php else: ?>
<div class="ph" aria-label="No thumbnail">▶</div>
<?php endif; ?>
<div class="cap"><?= htmlspecialchars(rel_time((int) $v['uploaded'])) ?></div>
</a>
<?php endforeach; ?>
</div>
<?php if ($totalPages > 1): ?>
<nav class="pager">
<?php if ($page > 1): ?>
<a href="/video/?page=<?= $page - 1 ?>" rel="prev">← Prev</a>
<?php else: ?>
<span class="btn disabled">← Prev</span>
<?php endif; ?>
<span class="count">Page <?= $page ?> of <?= $totalPages ?></span>
<?php if ($page < $totalPages): ?>
<a href="/video/?page=<?= $page + 1 ?>" rel="next">Next →</a>
<?php else: ?>
<span class="btn disabled">Next →</span>
<?php endif; ?>
</nav>
<?php endif; ?>
<?php endif; ?>
</main>
</body>
</html>