The play-probe now lands (iPhone: iOS 18.7 Safari, hls.js path, MSE ok), but the /stream XHR never reaches the server on the failing attempts — impossible under the known code path. Instrument each step (new-hls-ok / loadsource-called / attach-ok) and log EVERY hls.js error (fatal+non-fatal, with retry counter) so the client timeline is visible server-side. Also fixed JSV constant drift (was stuck at 10). events endpoint: accept hls-err, forward step/fatal/details/buffer/retry/http.
36 lines
1.6 KiB
HTML
36 lines
1.6 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>ani-web</title>
|
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='14' fill='%23f97316'/%3E%3Ctext x='32' y='45' font-family='sans-serif' font-size='42' font-weight='700' text-anchor='middle' fill='%230e0f13'%3Ea%3C/text%3E%3C/svg%3E">
|
|
|
|
<link rel="stylesheet" href="style.css?v=12">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<a class="logo" href="/">ani-web</a>
|
|
<form onsubmit="const q=document.getElementById('q').value.trim(); if(q) location='?q='+encodeURIComponent(q); return false">
|
|
<input id="q" placeholder="search anime…" autocomplete="off" autocapitalize="off" spellcheck="false">
|
|
</form>
|
|
<span id="me" class="muted"></span>
|
|
<div id="menubox" style="display:none">
|
|
<button id="menu" class="tiny" aria-label="menu" aria-haspopup="true">☰</button>
|
|
<div id="menu-items">
|
|
<a id="stats" class="tiny" href="?stats">stats</a>
|
|
<button id="logout" class="tiny">logout</button>
|
|
<button id="delacct" class="tiny danger">delete account</button>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<main id="main"><p class="muted">Search for an anime to get started.</p></main>
|
|
<div id="toasts" aria-live="polite"></div>
|
|
<!-- ponytail: bump ?v= whenever app.js/style.css change — they are cached
|
|
max-age=300 in browser AND possibly in your HTTPS proxy, and a stale
|
|
copy is exactly how users keep seeing an old UI after a deploy -->
|
|
<script src="hls.min.js"></script>
|
|
<script src="app.js?v=12"></script>
|
|
</body>
|
|
</html>
|