2026-05-12 23:50:49 +00:00
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
2026-10-06 02:36:54 +00:00
|
|
|
<title>Transient.chat - Private Encrypted Chat</title>
|
2026-05-12 23:50:49 +00:00
|
|
|
<link rel="stylesheet" href="/assets/css/styles.css" />
|
|
|
|
|
<link rel="stylesheet" href="/assets/css/chat.css" />
|
2026-10-06 02:36:54 +00:00
|
|
|
<link rel="stylesheet" href="/assets/css/watchparty.css" />
|
2026-05-12 23:50:49 +00:00
|
|
|
<link rel="icon" href="/assets/images/favicon.ico" type="image/x-icon" />
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1 id="room-title">Chat Room</h1>
|
2026-10-06 02:36:54 +00:00
|
|
|
|
2026-05-12 23:50:49 +00:00
|
|
|
<div id="page-container">
|
2026-10-06 02:36:54 +00:00
|
|
|
<!-- Collapsible Watch Party Video Section -->
|
|
|
|
|
<div id="video-section" class="hidden">
|
|
|
|
|
<div id="video-controls">
|
|
|
|
|
<input
|
|
|
|
|
type="text"
|
|
|
|
|
id="video-url-input"
|
|
|
|
|
placeholder="Paste YouTube video URL..."
|
|
|
|
|
/>
|
|
|
|
|
<button id="start-video-button">▶️ Play</button>
|
|
|
|
|
<button id="pause-video-button" class="hidden">⏸ Pause</button>
|
|
|
|
|
<button id="resume-video-button" class="hidden">▶ Resume</button>
|
|
|
|
|
<button id="clear-video-button" class="hidden">🛑 Clear Video</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="video-wrapper">
|
|
|
|
|
<iframe
|
|
|
|
|
id="video-iframe"
|
|
|
|
|
frameborder="0"
|
|
|
|
|
allowfullscreen
|
|
|
|
|
allow="autoplay; encrypted-media"
|
|
|
|
|
class="hidden"
|
|
|
|
|
></iframe>
|
|
|
|
|
<img
|
|
|
|
|
id="paused-overlay"
|
|
|
|
|
src="/assets/images/paused.png"
|
|
|
|
|
class="hidden"
|
|
|
|
|
alt="Video Paused"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Main Chat Center -->
|
2026-05-12 23:50:49 +00:00
|
|
|
<div id="chat-center">
|
|
|
|
|
<div id="messages"></div>
|
|
|
|
|
<form id="chat-form">
|
|
|
|
|
<input
|
|
|
|
|
type="text"
|
|
|
|
|
class="inputfield"
|
|
|
|
|
id="message-input"
|
2026-10-06 02:36:54 +00:00
|
|
|
placeholder="Type a message, paste a link, or send an image/video URL."
|
2026-05-12 23:50:49 +00:00
|
|
|
autocomplete="off"
|
|
|
|
|
required
|
|
|
|
|
/>
|
|
|
|
|
<button type="submit">Send</button>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
2026-10-06 02:36:54 +00:00
|
|
|
|
|
|
|
|
<!-- Sidebar Controls & Users -->
|
2026-05-12 23:50:49 +00:00
|
|
|
<div id="user-list-container">
|
|
|
|
|
<a
|
|
|
|
|
href="server_list.html"
|
|
|
|
|
style="
|
|
|
|
|
display: inline-block;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<button>Server List</button>
|
|
|
|
|
</a>
|
|
|
|
|
<br />
|
|
|
|
|
<button
|
|
|
|
|
id="sound-toggle"
|
|
|
|
|
style="
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
text-align: left;
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
🔊 Sound: On
|
|
|
|
|
</button>
|
|
|
|
|
<br />
|
|
|
|
|
<button
|
|
|
|
|
id="external-toggle"
|
|
|
|
|
style="
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
text-align: left;
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
🔒 External Content: Off
|
|
|
|
|
</button>
|
|
|
|
|
<br />
|
2026-10-06 02:36:54 +00:00
|
|
|
<button
|
|
|
|
|
id="watchparty-toggle"
|
|
|
|
|
style="
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
text-align: left;
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
🎬 Watch Party: Off
|
|
|
|
|
</button>
|
|
|
|
|
|
2026-05-12 23:50:49 +00:00
|
|
|
<h3>Users in room</h3>
|
|
|
|
|
<div id="user-list"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-10-06 02:36:54 +00:00
|
|
|
|
|
|
|
|
<!-- Password Modal for Room Access & Key Derivation -->
|
|
|
|
|
<div id="password-modal" class="modal-overlay hidden">
|
|
|
|
|
<div class="modal-box">
|
|
|
|
|
<h3>🔒 Room Password Required</h3>
|
|
|
|
|
<p>This room is private and encrypted. Enter the room password to join and decrypt messages:</p>
|
|
|
|
|
<form id="password-form">
|
|
|
|
|
<input
|
|
|
|
|
type="password"
|
|
|
|
|
id="modal-password-input"
|
|
|
|
|
placeholder="Room Password"
|
|
|
|
|
autocomplete="current-password"
|
|
|
|
|
required
|
|
|
|
|
/>
|
|
|
|
|
<div class="modal-buttons">
|
|
|
|
|
<button type="submit" id="modal-submit-btn">Enter Room</button>
|
|
|
|
|
<a href="/server_list.html"><button type="button" class="cancel-btn">Back to Server List</button></a>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-06-23 16:43:52 +00:00
|
|
|
<script src="/assets/js/crypto.js"></script>
|
2026-05-12 23:50:49 +00:00
|
|
|
<script src="/assets/js/chat.js"></script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|