summaryrefslogtreecommitdiff
path: root/web/share.html
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-17 15:25:52 +0300
committerPaul Buetow <paul@buetow.org>2026-05-17 15:25:52 +0300
commit914bd7cd6aa14e839332a98d91c30b19865b0cf2 (patch)
tree02b11537237a204048589e14ed24938b805e42f7 /web/share.html
parent3b24f0e1be832584d6550e8cc3e5d24329f66f90 (diff)
Restructure repo: move Go server into player-server/
Diffstat (limited to 'web/share.html')
-rw-r--r--web/share.html116
1 files changed, 0 insertions, 116 deletions
diff --git a/web/share.html b/web/share.html
deleted file mode 100644
index a4f93de..0000000
--- a/web/share.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta charset="UTF-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>Shared Media</title>
-<link rel="stylesheet" href="/css/theme.css">
-<link rel="stylesheet" href="/css/player.css">
-<style>
- body {
- margin: 0;
- min-height: 100vh;
- background: var(--bg-body);
- color: var(--text-primary);
- font-family: var(--font-sans);
- display: flex;
- flex-direction: column;
- }
- .page-wrap {
- flex: 1 1 auto;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- padding: 1rem;
- box-sizing: border-box;
- }
- .container {
- width: 100%;
- max-width: 720px;
- text-align: center;
- }
- h1 {
- margin: 0 0 1rem;
- font-size: 1.25rem;
- color: var(--text-primary);
- }
-
- /* Player overrides for standalone share page */
- .player {
- display: block;
- position: static;
- border-top: none;
- border-radius: var(--radius-md);
- overflow: hidden;
- box-shadow: var(--shadow-md);
- }
- .player .stage {
- height: clamp(14rem, 35vh, 28rem);
- background: var(--player-stage-bg);
- }
- .player.is-fullscreen {
- position: fixed;
- inset: 0;
- z-index: 100;
- border-radius: 0;
- }
-</style>
-</head>
-<body>
-<div class="page-wrap">
- <div class="container">
- <h1>Shared Media</h1>
- <aside id="player" class="player open" aria-label="Player">
- <div class="stage">
- <video id="media-video" playsinline controlslist="nodownload"></video>
- <audio id="media-audio" class="hidden"></audio>
- <img id="cover-art" class="cover-art hidden" alt="Cover" loading="lazy">
- <div id="big-play" class="big-play" role="button" aria-label="Play" tabindex="0">
- <div class="play-icon">&#9654;</div>
- </div>
- </div>
- <div class="controls">
- <button id="btn-toggle-stage" class="icon-btn" aria-label="Toggle stage">&#9978;</button>
- <button id="btn-play" class="icon-btn" aria-label="Play/Pause">&#9654;</button>
- <div class="time" id="time-elapsed">0:00</div>
- <div id="progress-track" class="progress-track" tabindex="0" aria-label="Seek">
- <div id="progress-buffered" class="progress-buffered"></div>
- <div id="progress-fill" class="progress-fill"></div>
- <div id="progress-thumb" class="progress-thumb" aria-hidden="true"></div>
- </div>
- <div class="time" id="time-total">0:00</div>
- <div class="volume-control">
- <button id="btn-mute" class="icon-btn" aria-label="Mute">&#128266;</button>
- <input id="volume-slider" type="range" min="0" max="1" step="0.05" value="1" class="volume-slider" aria-label="Volume">
- </div>
- <button id="btn-download" class="icon-btn" aria-label="Download">&#11123;</button>
- <button id="btn-fullscreen" class="icon-btn" aria-label="Fullscreen">&#9978;</button>
- </div>
- </aside>
- </div>
-</div>
-
-<script type="module">
- import { initPlayer, loadMediaDirect } from '/js/player.js';
-
- initPlayer();
-
- const metaEl = document.getElementById('share-meta');
- let data = null;
- try {
- data = JSON.parse(metaEl.textContent);
- } catch {}
-
- if (data && data.media) {
- loadMediaDirect(data.media, data.stream_url, data.thumb_url, 0);
- const dlBtn = document.getElementById('btn-download');
- if (dlBtn && data.download_url) {
- dlBtn.addEventListener('click', () => { location.href = data.download_url; });
- }
- }
-</script>
-
-<script id="share-meta" type="application/json"><!--SHARE_MEDIA--></script>
-</body>
-</html>