-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
100 lines (96 loc) · 5.42 KB
/
index.html
File metadata and controls
100 lines (96 loc) · 5.42 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#007bff"> <!-- Matches button gradient -->
<meta name="description" content="PiXStream IPTV - Stream your favorite channels">
<title>PixStream IPTV</title>
<link rel="stylesheet" href="./css/styles.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool@latest'></script>
<link rel="icon" type="image/x-icon" href="./img/favicon.ico">
<link rel="manifest" href="manifest.json">
<!-- Apple Touch Icon for iOS -->
<link rel="apple-touch-icon" href="./img/icon-192x192.png">
</head>
<body>
<div class="container">
<!-- Sidebar -->
<div class="sidebar" id="sidebar">
<div class="sidebar-header">
<img src="./img/logo.png" alt="xStream Logo" class="logo">
</div>
<div class="sidebar-content">
<!-- Playlist -->
<div class="sidebar-section">
<div class="url-input-group">
<input type="text" id="playlistUrl" placeholder="Enter Playlist URL">
<button onclick="loadPlaylist()" id="loadBtn"><i class="fas fa-download"></i></button>
</div>
<input type="file" id="fileUpload" accept=".m3u,.json,.txt" onchange="loadFile()">
<div class="playlist-controls">
<button onclick="toggleFavourites()" title="Favourites"><i class="fas fa-star"></i></button>
<button onclick="toggleHistory()" title="History"><i class="fas fa-history"></i></button>
<button onclick="clearAllData()" title="Clear All"><i class="fas fa-trash-alt"></i></button>
</div>
</div>
<!-- Channels -->
<div class="sidebar-section channels">
<input type="text" id="filter" placeholder="Search Channels" onkeyup="filterChannels()">
<div class="channel-list" id="channelList"></div>
<div class="history-list" id="historyList" style="display: none;"></div>
</div>
<!-- Status -->
<div class="sidebar-section status">
<div class="playlist-status" id="playlistStatus">
<span class="total">Total: 0</span>
<span class="active">Active: 0</span>
<span class="offline">Offline: 0</span>
</div>
</div>
</div>
</div>
<!-- Player -->
<div class="player-section" id="playerSection">
<div class="top-controls" id="topControls">
<button class="sidebar-toggle" id="sidebarToggle" onclick="toggleSidebar()">
<i class="fas fa-bars"></i>
</button>
<label class="theme-switch">
<input type="checkbox" id="themeToggle" onchange="toggleTheme()">
<span class="slider"><i class="fas fa-moon"></i><i class="fas fa-sun"></i></span>
</label>
</div>
<div class="now-playing" id="nowPlaying"></div>
<div class="notification" id="notification"></div>
<video id="videoPlayer" autoplay>
<track kind="subtitles" id="subtitleTrack" src="" srclang="en" label="English">
Your browser doesn’t support video playback.
</video>
<div class="player-controls" id="playerControls">
<button id="playPauseBtn" onclick="togglePlayPause()" title="Play/Pause"><i class="fas fa-play"></i></button>
<button id="fullscreenBtn" onclick="toggleFullscreen()" title="Fullscreen"><i class="fas fa-expand"></i></button>
<button id="pipBtn" onclick="togglePiP()" title="Picture-in-Picture"><i class="fas fa-window-restore"></i></button>
<button id="castBtn" onclick="castStream()" title="Cast"><i class="fas fa-tv"></i></button>
<input type="file" id="subtitleUpload" accept=".srt" onchange="loadSubtitles()" style="display: none;">
<button id="subtitleBtn" onclick="document.getElementById('subtitleUpload').click()" title="Subtitles"><i class="fas fa-closed-captioning"></i></button>
<button id="randomBtn" onclick="playRandom()" title="Random"><i class="fas fa-random"></i></button>
<span id="qualityIndicator"></span>
</div>
</div>
</div>
<script src="./js/script.js"></script>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js')
.then(reg => console.log('Service Worker registered:', reg))
.catch(err => console.error('Service Worker registration failed:', err));
});
}
</script>
</body>
</html>