aboutsummaryrefslogtreecommitdiff
path: root/index.php
diff options
context:
space:
mode:
authorMinteck <minteck@phoenixnet.tech>2021-10-31 12:30:56 +0100
committerMinteck <minteck@phoenixnet.tech>2021-10-31 12:30:56 +0100
commit9eabae58420ecb3cc289d6d7ff4c2414f9c63370 (patch)
tree055f950af077d2be7f65ae1f3b2a11362f0d3556 /index.php
downloadmovies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.tar.gz
movies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.tar.bz2
movies-9eabae58420ecb3cc289d6d7ff4c2414f9c63370.zip
Initial commit
Diffstat (limited to 'index.php')
-rw-r--r--index.php447
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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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("\"", "&quot;", $film["title"]) . " " . str_replace("\"", "&quot;", $film["team"]) . " " . str_replace("\"", "&quot;", $film["desc"]) . " " . str_replace("\"", "&quot;", $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"; ?>