diff options
author | Minteck <minteck@phoenixnet.tech> | 2021-10-31 12:30:56 +0100 |
---|---|---|
committer | Minteck <minteck@phoenixnet.tech> | 2021-10-31 12:30:56 +0100 |
commit | 9eabae58420ecb3cc289d6d7ff4c2414f9c63370 (patch) | |
tree | 055f950af077d2be7f65ae1f3b2a11362f0d3556 /index.php | |
download | movies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.tar.gz movies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.tar.bz2 movies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.zip |
Initial commit
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 447 |
1 files changed, 447 insertions, 0 deletions
diff --git a/index.php b/index.php new file mode 100644 index 0000000..be4083a --- /dev/null +++ b/index.php @@ -0,0 +1,447 @@ +<?php if (!isset($_GET['_t'])) { header("Location: /tv"); die(); } $_TITLE = "Accueil"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; ?> + + <a href="/" id="logo" style="color: black;text-decoration:none !important;"><div class="container" style="margin-top: 100px;width:max-content;text-align:center;display:grid;grid-template-columns:96px 1fr;"> + <img src="https://familine.minteck.org/icns/familine-movies.svg" width="96px" style="vertical-align: middle;"> + <span style="vertical-align: middle;display:flex;align-items:center;justify-content:center;margin-left:10px;"><span> + <span style="font-size:48px;">Familine Movies</span><br> + <span>Regardez des productions familiales</span></span> + </span> + </div></a> + +<hr id="/search" style="margin-top:30px;margin-bottom:30px;"> + +<div class="container" id="search-box" style="text-align:center;"> + <h1>Qu'est-ce qu'on regarde ?</h1> + <input type="text" onkeyup="search();" id="search" autocomplete="off" spellcheck="off" class="form-control" placeholder="Entrez le nom d'un film, d'un réalisateur ou d'une année"> +</div> + +<hr id="/results" style="margin-top:30px;margin-bottom:30px;"> + +<div class="container"> + + <?php + + $times = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/durations.json"), true); + + function id3time($file) { + $fparts = explode("/", $file); + $afile = $fparts[count($fparts) - 1]; + + global $times; + $date = (int)date('U'); + + if (in_array($afile, $times["@items"]) && ($date - $times[$afile]["date"] < 108000)) { + return $times[$afile]["duration"]; + } else { + include_once($_SERVER['DOCUMENT_ROOT'] . "/includes/getid3/getid3.php"); + $getID3 = new getID3; + $id3 = $getID3->analyze($file); + + if (isset($id3["playtime_string"])) { + $str = $id3["playtime_string"]; + $str2 = (int)round($id3["playtime_seconds"]); + } else { + $str = "-:--"; + $str2 = 0; + } + + $times[$afile] = [ + "duration" => $str, + "seconds" => $str2, + "date" => $date + ]; + array_push($times["@items"], $afile); + + return $str; + } + } + + function cmp_by_date($a, $b) { + return $a["date"] <=> $b["date"]; + } + + $list = scandir($_SERVER['DOCUMENT_ROOT'] . "/data/films/metadata"); + $films = []; + + foreach ($list as $item) { + if ($item !== "." && $item !== "..") { + $films[substr($item, 0, -5)] = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/films/metadata/" . $item), true); + $films[substr($item, 0, -5)]["id"] = substr($item, 0, -5); + } + } + + usort($films, function ($a, $b) { + return $a['date'] <=> $b['date']; + }); + + $films = array_reverse($films); + + $seconds = 0; + foreach ($times as $titem => $tdata) { + if ($titem !== "@items") { + $seconds = $seconds + $tdata["seconds"]; + } + } + + $secstr = $seconds . " secondes"; + if ($seconds > 60) { + $secstr = round($seconds / 60) . " minutes"; + if ($seconds > 3600) { + $secstr = round($seconds / 3600) . " heures"; + } + } + + ?> + + <p><i id="counts" data-initial-value="<?= count($films) ?> vidéos, <?= $secstr ?> de contenu"><?= count($films) ?> vidéos, <?= $secstr ?> de contenu</i></p> + + <div id="non-search"> + + <h2>Contenu disponible en 4K <span class="badge badge-secondary">Nouveau</span></h2> + <div class="row"> + <?php foreach ($films as $index => $film): ?> + <?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) && !$film["partner"]): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endif; ?> + <?php endforeach; ?> + </div> + + <h2>Musiques par YonKaGor</h2> + <div class="row"> + <?php foreach ($films as $index => $film): ?> + <?php if ($film["team"] === "YonKaGor" && $film["partner"]): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endif; ?> + <?php endforeach; ?> + </div> + + <h2>Les aventures de Nathan</h2> + <div class="row"> + <?php foreach ($films as $index => $film): ?> + <?php if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) && (strpos($film["title"], "Les aventures de Nathan") !== false || strpos($film["title"], "Vacances de Nathan") !== false)): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endif; ?> + <?php endforeach; ?> + </div> + + <h2>L'ère NatORGANIS <small>(2011-2017)</small></h2> + <div class="row"> + <?php foreach ($films as $index => $film): ?> + <?php if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) && (int)$film["date"] < 201705 !== false && strpos($film["title"], "Les aventures de Nathan") === false && $film["team"] !== "YonKaGor" && strpos($film["title"], "Vacances de Nathan") === false): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endif; ?> + <?php endforeach; ?> + </div> + + <h2>Tout Famiprods à un seul endroit</h2> + <div class="row"> + <?php foreach ($films as $index => $film): ?> + <?php if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) && (int)$film["date"] > 201705 !== false && strpos($film["title"], "Les aventures de Nathan") === false && $film["team"] !== "YonKaGor" && strpos($film["title"], "Vacances de Nathan") === false): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endif; ?> + <?php endforeach; ?> + </div> + + </div> + + <div class="row" id="search-results" style="display:none;"> + <?php foreach ($films as $index => $film): ?> + <div onclick="location.href=`/watch/?v=<?= $film["id"] ?>`;" class="col-sm-3 query-film-card" style="padding-top:15px;padding-bottom:15px;" data-search-filter="<?= str_replace("\"", """, $film["title"]) . " " . str_replace("\"", """, $film["team"]) . " " . str_replace("\"", """, $film["desc"]) . " " . str_replace("\"", """, $film["date"]) ?>"> + <div class="card"> + <img class="card-img-top" src="/cdn/image/?i=<?= $film["id"] ?>" alt="Card image"> + <div class="card-body"> + <?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film['id'] . '@4K.' . $film["file"]) ? '<span class="badge badge-danger">4K</span>' : '' ?> + <span class="badge badge-secondary"> + <?php + + echo(id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $film["id"] . "." . $film["file"])); + + ?></span> <?= isset($film["soon"]) && $film["soon"] ? '<span class="badge badge-warning badge-pill">Prochainement !</span>' : '' ?> <?= isset($film["partner"]) && $film["partner"] ? '<span class="badge badge-info">Suggestion</span>' : '' ?> <?php + + if (isset($film['trigger']) && $film['trigger']) { + echo('<span class="badge badge-primary">TW: '); + if (isset($film["tw_flashing"]) && $film["tw_flashing"]) { + echo("F"); + } + if (isset($film["tw_suicide"]) && $film["tw_suicide"]) { + echo("S"); + } + if (isset($film["tw_violence"]) && $film["tw_violence"]) { + echo("V"); + } + if (isset($film["tw_sex"]) && $film["tw_sex"]) { + echo("X"); + } + echo("</span>"); + } + + ?><br> + <h4 class="card-title" style="text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["title"] ?></h4> + <p class="card-text"> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= $film["team"] ?></span> + <span style="display: block;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"><?= substr($film["date"], 0, 4) ?></span> + </p> + </div> + </div> + </div> + <?php endforeach; ?> + </div> +</div> + +<script> + + document.getElementById('search').focus(); + + $(document).keydown(function(e) { + if (e.keyCode === 27) { + location.hash = "#/start"; + setTimeout(() => { + document.getElementById('search').focus(); + }, 500) + } + }) + + $("#search").on('keyup', function (event) { + if (event.keyCode === 13) { + location.hash = "#/results"; + document.getElementById('search').blur(); + } + }); + + function search() { + document.getElementById("non-search").style.display = "none"; + document.getElementById("search-results").style.display = ""; + + location.hash = "#/search"; + document.getElementById('search').focus(); + + query = document.getElementById('search').value.toLowerCase().trim().split(">").join("-").split(">").join("-"); + words = query.split(" "); + count = 0; + + if (query !== "") { + Array.from(document.getElementsByClassName("query-film-card")).forEach((item) => { + item.style.display = "none"; + }) + } + + if (query === "") { + count = Array.from(document.getElementsByClassName("query-film-card")).length; + document.getElementById("non-search").style.display = ""; + document.getElementById("search-results").style.display = "none"; + Array.from(document.getElementsByClassName("query-film-card")).forEach((item) => { + item.style.display = ""; + }) + } + + if (query !== "") { + Array.from(document.getElementsByClassName("query-film-card")).forEach((item) => { + data = item.getAttribute("data-search-filter").toLowerCase(); + if (data.includes(query)) { + count++; + item.style.display = ""; + } + }) + } + + if (count === 0) { + document.getElementById('counts').innerText = "Aucun résultat correspondant à « " + query + " »"; + } else if (count === 1) { + document.getElementById('counts').innerText = "1 résultat correspondant à « " + query + " »"; + } else if (count > 1) { + document.getElementById('counts').innerText = count + " résultats correspondant à « " + query + " »"; + } + + if (query === "") { + document.getElementById('counts').innerText = document.getElementById('counts').getAttribute("data-initial-value"); + } + } + +</script> + +<?php file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/data/durations.json", json_encode($times, JSON_PRETTY_PRINT)); require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/footer.php"; ?> |