238 lines
12 KiB
PHP
238 lines
12 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<!-- SEO & Meta -->
|
|
<title>gomoviz.asia - Your Ultimate IPTV Experience</title>
|
|
<meta name="description" content="<?php echo htmlspecialchars($_SERVER['PROJECT_DESCRIPTION'] ?? 'A modern, fully functional Android IPTV live TV application for legal streaming with user-provided playlists.'); ?>">
|
|
<meta name="keywords" content="IPTV, live tv, streaming, m3u, movies, series">
|
|
<meta name="author" content="gomoviz.asia">
|
|
|
|
<!-- Open Graph / Twitter Meta (Platform-managed) -->
|
|
<meta property="og:image" content="<?php echo htmlspecialchars($_SERVER['PROJECT_IMAGE_URL'] ?? ''); ?>">
|
|
<meta name="twitter:image" content="<?php echo htmlspecialchars($_SERVER['PROJECT_IMAGE_URL'] ?? ''); ?>">
|
|
|
|
<!-- Bootstrap 5 CSS -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
|
<!-- Bootstrap Icons -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
|
<!-- Google Fonts -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap" rel="stylesheet">
|
|
<!-- Custom CSS -->
|
|
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
|
|
|
<style>
|
|
/* Additional styles for bottom nav and spacing */
|
|
body {
|
|
padding-bottom: 80px; /* Height of the bottom nav */
|
|
}
|
|
.bottom-nav {
|
|
height: 70px;
|
|
}
|
|
</style>
|
|
<link rel="manifest" href="manifest.json">
|
|
</head>
|
|
<body>
|
|
|
|
<!-- Scrolling Link -->
|
|
<div style="position: fixed; top: 10px; right: 10px; z-index: 1050; background: #007bff; padding: 5px; border-radius: 5px; max-width: 250px;">
|
|
<marquee behavior="scroll" direction="left" scrollamount="5">
|
|
<a href="http://www.gomoviez.asia" target="_blank" style="color: white; text-decoration: none; font-size: 16px;">
|
|
watch latest movies
|
|
</a>
|
|
</marquee>
|
|
</div>
|
|
|
|
<!-- Top Navigation Bar -->
|
|
<nav class="navbar navbar-expand-lg sticky-top">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand fw-bold" href="#">gomoviz.asia</a>
|
|
<div class="ms-auto d-flex align-items-center">
|
|
<form class="d-flex me-2" role="search" onsubmit="return false;">
|
|
<input class="form-control me-2 search-bar" type="search" id="mainSearch" placeholder="Type 'deep1' to discover..." aria-label="Search">
|
|
</form>
|
|
<div id="auth-buttons">
|
|
<button class="btn btn-outline-primary me-2" data-bs-toggle="modal" data-bs-target="#loginModal">Login</button>
|
|
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#signupModal">Sign Up</button>
|
|
</div>
|
|
<div id="user-greeting" class="d-none"></div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Main Content -->
|
|
<main class="container my-5">
|
|
|
|
<div id="home-section">
|
|
<!-- Hero Section -->
|
|
<section class="text-center mb-5">
|
|
<h1 class="display-5 fw-bold">Your Ultimate IPTV Experience</h1>
|
|
<p class="lead text-white-50">Add your playlists and enjoy seamless streaming. Simple, fast, and modern.</p>
|
|
</section>
|
|
|
|
<!-- Categories Section -->
|
|
<section class="mb-5">
|
|
<h2 class="mb-4">Categories</h2>
|
|
<div class="row row-cols-2 row-cols-md-3 row-cols-lg-6 g-4">
|
|
<?php
|
|
$categories = ['Live TV', 'Movies', 'Series', 'Sports', 'Kids', 'Documentaries'];
|
|
$icons = ['tv', 'film', 'collection-play', 'trophy', 'joystick', 'book'];
|
|
foreach ($categories as $index => $category):
|
|
?>
|
|
<div class="col">
|
|
<div class="category-card h-100">
|
|
<div class="card-body p-4 d-flex flex-column justify-content-center">
|
|
<i class="bi bi-<?php echo $icons[$index]; ?> fs-1 mb-2 accent-text"></i>
|
|
<h5 class="card-title mb-0"><?php echo $category; ?></h5>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- How-to Section -->
|
|
<section>
|
|
<h2 class="mb-4">How to Get Started</h2>
|
|
<div class="row g-4">
|
|
<div class="col-md-6">
|
|
<div class="category-card h-100 p-4">
|
|
<h4 class="card-title accent-text">1. Add Your Playlist</h4>
|
|
<p class="text-white-50">Go to "My Playlists" and add your M3U URL or log in with your credentials. Your channels will be loaded automatically.</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="category-card h-100 p-4">
|
|
<h4 class="card-title accent-text">2. Start Streaming</h4>
|
|
<p class="text-white-50">Browse your channels, search for your favorite content, and start watching instantly with our advanced built-in player.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
|
|
<div id="playlists-section" style="display: none;">
|
|
<h1 class="display-5 fw-bold mb-4">My Playlists</h1>
|
|
|
|
<div class="card form-card mb-4">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Add New Playlist</h5>
|
|
<form id="add-playlist-form">
|
|
<div class="mb-3">
|
|
<label for="playlist-name" class="form-label">Playlist Name</label>
|
|
<input type="text" class="form-control" id="playlist-name" placeholder="e.g., My Awesome TV" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="playlist-url" class="form-label">M3U URL</label>
|
|
<input type="url" class="form-control" id="playlist-url" placeholder="https://example.com/playlist.m3u" required>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary w-100">Add Playlist</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<h2 class="mb-4">Your Playlists</h2>
|
|
<div id="playlists-list">
|
|
<p class="text-white-50">Your added playlists will appear here.</p>
|
|
<!-- Playlists will be dynamically inserted here -->
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</main>
|
|
|
|
<!-- Login Modal -->
|
|
<div class="modal fade" id="loginModal" tabindex="-1" aria-labelledby="loginModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content form-card">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="loginModalLabel">Login</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<form id="login-form">
|
|
<div class="mb-3">
|
|
<label for="login-email" class="form-label">Email address</label>
|
|
<input type="email" class="form-control" id="login-email" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="login-password" class="form-label">Password</label>
|
|
<input type="password" class="form-control" id="login-password" required>
|
|
</div>
|
|
<div id="login-error" class="text-danger mb-3"></div>
|
|
<button type="submit" class="btn btn-primary w-100">Login</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sign Up Modal -->
|
|
<div class="modal fade" id="signupModal" tabindex="-1" aria-labelledby="signupModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content form-card">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="signupModalLabel">Create an Account</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<form id="signup-form">
|
|
<div class="mb-3">
|
|
<label for="signup-email" class="form-label">Email address</label>
|
|
<input type="email" class="form-control" id="signup-email" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="signup-password" class="form-label">Password</label>
|
|
<input type="password" class="form-control" id="signup-password" required>
|
|
</div>
|
|
<div id="signup-error" class="text-danger mb-3"></div>
|
|
<button type="submit" class="btn btn-primary w-100">Sign Up</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Bottom Navigation Bar -->
|
|
<footer class="bottom-nav fixed-bottom d-flex justify-content-around align-items-center">
|
|
<a href="#" id="nav-home" class="nav-link active">
|
|
<i class="bi bi-house-door-fill fs-4"></i>
|
|
<div>Home</div>
|
|
</a>
|
|
<a href="#" id="nav-playlists" class="nav-link">
|
|
<i class="bi bi-list-stars fs-4"></i>
|
|
<div>My Playlists</div>
|
|
</a>
|
|
<a href="#" id="nav-settings" class="nav-link">
|
|
<i class="bi bi-gear-fill fs-4"></i>
|
|
<div>Settings</div>
|
|
</a>
|
|
<a href="help.php" class="nav-link">
|
|
<i class="bi bi-question-circle-fill fs-4"></i>
|
|
<div>Help</div>
|
|
</a>
|
|
<a href="admin_login.php" style="position: absolute; bottom: 0; right: 0; font-size: 2px; color: #1E1E1E; text-decoration: none;">.</a>
|
|
</footer>
|
|
|
|
<!-- Bootstrap 5 JS -->
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
|
|
<!-- Custom JS -->
|
|
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
|
<script>
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/sw.js').then(registration => {
|
|
console.log('ServiceWorker registration successful with scope: ', registration.scope);
|
|
}, err => {
|
|
console.log('ServiceWorker registration failed: ', err);
|
|
});
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|