diff options
author | Minteck <contact@minteck.org> | 2022-02-05 15:55:51 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-02-05 15:55:51 +0100 |
commit | cee23ce48ea81612eefe30552da1cc286138af0b (patch) | |
tree | e0eca8d2a62139f47d63d00076b84e033ce1d68f | |
parent | ed531165841a1de9200782b00b99b174bf2289cd (diff) | |
download | movies-cee23ce48ea81612eefe30552da1cc286138af0b.tar.gz movies-cee23ce48ea81612eefe30552da1cc286138af0b.tar.bz2 movies-cee23ce48ea81612eefe30552da1cc286138af0b.zip |
Update
-rw-r--r-- | .idea/deployment.xml | 3 | ||||
-rw-r--r-- | includes/construct.php | 51 | ||||
-rw-r--r-- | includes/header.php | 24 | ||||
-rw-r--r-- | includes/plus.php | 2 | ||||
-rw-r--r-- | includes/session.php | 11 | ||||
-rw-r--r-- | index.php | 448 | ||||
-rw-r--r-- | plus/index.php | 12 | ||||
-rw-r--r-- | tv/index.php | 161 | ||||
-rw-r--r-- | tv/watch.php | 2 | ||||
-rw-r--r-- | watch/index.php | 12 |
10 files changed, 189 insertions, 537 deletions
diff --git a/.idea/deployment.xml b/.idea/deployment.xml index 076c030..9a580f8 100644 --- a/.idea/deployment.xml +++ b/.idea/deployment.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="PublishConfigData" autoUpload="Always" serverName="Familine" preserveTimestamps="false" remoteFilesAllowedToDisappearOnAutoupload="false">
+ <component name="PublishConfigData" serverName="Familine" preserveTimestamps="false" remoteFilesAllowedToDisappearOnAutoupload="false">
<serverData>
<paths name="Familine">
<serverdata>
@@ -10,6 +10,5 @@ </serverdata>
</paths>
</serverData>
- <option name="myAutoUpload" value="ALWAYS" />
</component>
</project>
\ No newline at end of file diff --git a/includes/construct.php b/includes/construct.php new file mode 100644 index 0000000..6d32c7d --- /dev/null +++ b/includes/construct.php @@ -0,0 +1,51 @@ +<?php + +$_SERVER = [ + 'DOCUMENT_ROOT' => "/mnt/faminema" +]; + +echo("Loading database...\n"); +$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)) { + echo("$file => metadata too recent\n"); + 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 + ]; + $times["@items"][] = $afile; + file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/data/durations.json", json_encode($times, JSON_PRETTY_PRINT)); + + echo("$file => metadata updated\n"); + return $str; + } +} + +foreach (scandir($_SERVER['DOCUMENT_ROOT'] . "/data/films/video") as $file) { + if ($file !== "." && $file !== "..") { + echo("Constructing metadata for $file\n"); + id3time($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . $file); + } +}
\ No newline at end of file diff --git a/includes/header.php b/includes/header.php index fffd3ea..21e4892 100644 --- a/includes/header.php +++ b/includes/header.php @@ -1,8 +1,8 @@ -<?php $_SYSVERSION="10.0"; +<?php $_SYSVERSION="10.1"; if (isset($_GET['_t'])) { $exp = (new DateTime('tomorrow'))->format("U"); - setcookie("FL_SESSION_TOKEN", $_GET['_t'], $exp, "/", "Familine Movies.ddns.net", true, true); + setcookie("FL_SESSION_TOKEN", $_GET['_t'], $exp, "/", "Familine Films.ddns.net", true, true); header("Location: /"); die(); } @@ -23,15 +23,16 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/plus.php"; <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> - <title><?php if (isset($_TITLE)) { echo($_TITLE . " | Familine Movies" . (isset($_FamilineMoviesPlus) && $_FamilineMoviesPlus ? "+" : "")); } else { echo("Familine Movies" . (isset($_FamilineMoviesPlus) && $_FamilineMoviesPlus ? "+" : "")); } ?></title> + <title><?php if (isset($_TITLE)) { echo($_TITLE . " | Familine Films"); } ?></title> <style>* { scroll-behavior: smooth; }</style> </head> -<body id="body"> +<body id="body" style="overflow:hidden;"> <div id="loader" style="position:fixed;top:32px;left:0;right:0;bottom:0;background:whitesmoke;z-index:9999;display:flex;align-items:center;justify-content:center;"> <img src="/loader.png" style="filter: hue-rotate(0deg);width:128px;animation-name: loadingimg;animation-duration: 2s;animation-iteration-count: infinite;animation-direction: alternate-reverse;"> <style> + * { outline: none; } @@ -84,13 +85,13 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/plus.php"; </div> <div class="modal-body"> - <p>Le contenu présent sur Familine Movies est protégé par les lois sur les droits d'auteurs en France, au Canada et dans d'autres pays.</p> - <p>De ce fait, toute copie/modification/réplication/publication du présent contenu peut faire l'objet de poursuites judiciaires. L'utilisation du contenu hébergé sur Familine Movies ne doit s'effectuer que dans le cadre des services proposés par Familine.</p> - <p>Lors de votre accès à Familine Movies par le biais d'un compte Familine ou d'un compte sur l'instance JetBrains Space de Familine, vous êtes légalement décerné le droit d'accéder au contenu présent sur Familine Movies. Vous ne possédez pas le contenu, seulement le droit d'y accéder.</p> + <p>Le contenu présent sur Familine Films est protégé par les lois sur les droits d'auteurs en France, au Canada et dans d'autres pays.</p> + <p>De ce fait, toute copie/modification/réplication/publication du présent contenu peut faire l'objet de poursuites judiciaires. L'utilisation du contenu hébergé sur Familine Films ne doit s'effectuer que dans le cadre des services proposés par Familine.</p> + <p>Lors de votre accès à Familine Films par le biais d'un compte Familine, vous êtes légalement décerné le droit d'accéder au contenu présent sur Familine Films. Vous ne possédez pas le contenu, seulement le droit d'y accéder.</p> </div> <div class="modal-footer"> - <button type="button" class="btn btn-success" onclick="localStorage.setItem('copyright', '1');" data-dismiss="modal">J'accepte</button> + <button type="button" class="btn btn-success" onclick="localStorage.setItem('copyright', '1');location.reload();" data-dismiss="modal">J'accepte</button> </div> </div> @@ -99,11 +100,18 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/plus.php"; <script> if (localStorage.getItem("copyright") !== "1") { + window.history.replaceState({}, document.title, "/app/copyright"); $("#copyright").modal(); } + document.getElementById('body').style.overflow = "auto"; + window.scrollTo(0, 0); + document.getElementById('body').style.overflow = "hidden"; + window.addEventListener('load', () => { setTimeout(() => { + document.getElementById('body').style.overflow = "auto"; + window.scrollTo(0, 0); $("#loader").fadeOut(200); }, 3000) }) diff --git a/includes/plus.php b/includes/plus.php index b9402f2..f8c0fb9 100644 --- a/includes/plus.php +++ b/includes/plus.php @@ -1,3 +1,3 @@ <?php -$_FamilineMoviesPlus = false;
\ No newline at end of file +$_FamilineMoviesPlus = true;
\ No newline at end of file diff --git a/includes/session.php b/includes/session.php index 9f38ca4..bf642ed 100644 --- a/includes/session.php +++ b/includes/session.php @@ -5,11 +5,16 @@ $_CONFIG = json_decode(file_get_contents("/mnt/familine/private/FamilineConfig.j if ($_SERVER['REMOTE_ADDR'] !== "127.0.0.1" && $_SERVER['REMOTE_ADDR'] !== "::0") { if (isset($_COOKIE['FL_SESSION_TOKEN'])) { + if (strpos($_COOKIE['FL_SESSION_TOKEN'], ".") !== false || strpos($_COOKIE['FL_SESSION_TOKEN'], "/") !== false) { + header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]")); + die(); + } + if (file_exists("/mnt/familine/private/tokens/" . str_replace(".", "", str_replace("/", "", $_COOKIE['FL_SESSION_TOKEN'])))) { $_PROFILE = json_decode(file_get_contents("/mnt/familine/private/tokens/" . str_replace(".", "", str_replace("/", "", $_COOKIE['FL_SESSION_TOKEN']))), true); if (isset($_PROFILE['familine'])) { - header("Location: https://" . $_CONFIG["Global"]["domain"] . "/welcome"); + header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]")); die(); } @@ -17,11 +22,11 @@ if ($_SERVER['REMOTE_ADDR'] !== "127.0.0.1" && $_SERVER['REMOTE_ADDR'] !== "::0" $_SUID = $_PROFILE['login']; $_FULLNAME = $_PROFILE['name']; } else { - header("Location: https://" . $_CONFIG["Global"]["domain"] . "/welcome"); + header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]")); die(); } } else { - header("Location: https://" . $_CONFIG["Global"]["domain"] . "/welcome"); + header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]")); die(); } @@ -1,447 +1 @@ -<?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"; ?> +<?php header("Location: /app"); die(); diff --git a/plus/index.php b/plus/index.php index 9d23df4..c58762c 100644 --- a/plus/index.php +++ b/plus/index.php @@ -1,10 +1,10 @@ -<?php $_TITLE = "Familine Movies+"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; ?> +<?php $_TITLE = "Familine Films+"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; ?> <a href="/plus" 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="/favicon.plus.png" 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>Améliorez votre expérience avec Familine Movies</span><br><small>Vous êtes connecté en tant que « <?= $_PROFILE["username"] ?> » (<?= isset($_PROFILE["familine"]) ? "profil Familine" : "compte JetBrains Space" ?>)</small></span> + <span style="font-size:48px;">Familine Films+</span><br> + <span>Améliorez votre expérience avec Familine Films</span><br><small>Vous êtes connecté en tant que « <?= $_PROFILE["username"] ?> » (<?= isset($_PROFILE["familine"]) ? "profil Familine" : "compte JetBrains Space" ?>)</small></span> </span> </div></a> @@ -12,11 +12,11 @@ <div style="display:grid; grid-template-columns: 1fr 1fr;text-align:center;" class="container"> <div> - <h2>Avec Familine Movies+ ...</h2> + <h2>Avec Familine Films+ ...</h2> <ul> <li>... vous n'avez plus de publicité</li> - <li>... vous soutenez le développement, la maintenance et l'exécution de Familine Movies</li> - <li>... vous pouvez télécharger les films et les lire hors ligne grâce au lecteur vidéo Familine Movies (pas encore disponible)</li> + <li>... vous soutenez le développement, la maintenance et l'exécution de Familine Films</li> + <li>... vous pouvez télécharger les films et les lire hors ligne grâce au lecteur vidéo Familine Films (pas encore disponible)</li> </ul> </div> <div> diff --git a/tv/index.php b/tv/index.php index 0a0c2e4..9a11ee3 100644 --- a/tv/index.php +++ b/tv/index.php @@ -1,4 +1,4 @@ -<?php $_TITLE = "Accueil"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; ?>
+<?php if (substr($_SERVER['REQUEST_URI'], 0, 4) !== "/app") { header("Location: /app/home"); die(); }; $_TITLE = "Accueil"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; ?>
<script>
const FilmsData = {
@@ -11,6 +11,8 @@ 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);
+ $films[substr($item, 0, -5)]["uhd"] = file_exists($_SERVER['DOCUMENT_ROOT'] . "/data/films/video/" . substr($item, 0, -5) . "@4K." . $films[substr($item, 0, -5)]["file"]);
+ $films[substr($item, 0, -5)]["uuid"] = md5(substr($item, 0, -5));
}
}
@@ -22,7 +24,7 @@ ?>
<?php foreach ($films as $film): ?>
- "<?= $film["id"] ?>": JSON.parse(atob(`<?= base64_encode(utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/data/films/metadata/" . $film["id"] . ".json"))) ?>`)),
+ "<?= $film["id"] ?>": JSON.parse(atob(`<?= base64_encode(utf8_decode(json_encode($film))) ?>`)),
<?php endforeach; ?>
}
@@ -102,7 +104,7 @@ <div id="navigation-bar">
<a href="/" id="logo" style="color: black;text-decoration:none !important;">
<img src="https://familine.minteck.org/icns/familine-movies.svg" width="36px" style="vertical-align: middle;">
- <span style="vertical-align: middle;"><span><span style="font-size:20px;">Familine Movies<?= isset($_FamilineMoviesPlus) && $_FamilineMoviesPlus ? "+" : "" ?></span></span></span></a>
+ <span style="vertical-align: middle;"><span><span style="font-size:20px;">Familine Films</span></span></span></a>
<span id="page-title">Accueil</span>
<span id="debug" style="display:none;">
@@ -122,7 +124,7 @@ </div>
<div class="modal-body">
- <p>Ce contenu a été marqué comme dangeureux pour certaines personnes par les administrateurs de Familine Movies. En le regardant, vous acceptez être en mesure de consulter ce contenu ; Familine Movies n'est <b>EN AUCUN CAS</b> responsable de toute bléssure physique ou morale à la suite de la consultation de ce contenu.</p>
+ <p>Ce contenu a été marqué comme dangeureux pour certaines personnes par les administrateurs de Familine Films. En le regardant, vous acceptez être en mesure de consulter ce contenu ; Familine Films n'est <b>EN AUCUN CAS</b> responsable de toute bléssure physique ou morale à la suite de la consultation de ce contenu.</p>
<div id="tw_flashing">
<h2>TW: F — Épilepsie photosensible</h2>
@@ -134,7 +136,7 @@ <div id="tw_suicide">
<h2>TW: S — Scènes de suicide</h2>
<p>Ce contenu contient des scènes affichant des pratiques de suicide.</p>
- <p>Familine Movies ne partage pas le mal des gens, <b>ce contenu <u>N'EST PAS</u> un appel à l'aide</b> ; nous sommes en communication constante avec l'auteur ou les auteurs du contenu et nous vous assurons qu'il(s) est/sont en bonne santé.</p>
+ <p>Familine Films ne partage pas le mal des gens, <b>ce contenu <u>N'EST PAS</u> un appel à l'aide</b> ; nous sommes en communication constante avec l'auteur ou les auteurs du contenu et nous vous assurons qu'il(s) est/sont en bonne santé.</p>
<p>Si vous êtes victime ou témoin de toute action ou parole relative au suicide, vous <b>devez</b> prendre contact avec un professionnel <a href="https://www.infosuicide.org/urgences-aide-ressources/lignes-decoute/" target="_blank">par le biais d'une des nombreuses lignes d'écoute disponibles</a>.</p>
</div>
@@ -146,15 +148,22 @@ </div>
<div id="tw_sex">
- <h2>TW: S — Contenu sexuellement explicité</h2>
+ <h2>TW: X — Contenu sexuellement explicite</h2>
<p>Ce contenu contient des scènes affichant des pratiques pouvant être considérées comme sexuellement explicites.</p>
<p>Vous ne devez regarder ce contenu que si vous en êtes totalement conscient et que vous souhaitez voir du contenu pouvant être sexuellement explicite..</p>
<p>Les mineurs (personnes de moins de 18 ans) ne <b>sont pas</b> autorisés à consulter ce contenu, <u>même avec l'autorisation de leur responsable légal</u>.</p>
</div>
+
+ <div id="tw_sex2">
+ <h2>TW: P — Contenu potentiellement à caractère sexuel</h2>
+ <p>Ce contenu contient des scènes affichant des personnes partiellement ou totalement dénuées, qui pourrait être considérées comme du contenu à caractère sexuel.</p>
+ <p>Vous ne devez regarder ce contenu que si vous en êtes totalement conscient et que vous souhaitez voir du contenu pouvant être sexuellement explicite..</p>
+ <p>Les mineurs (personnes de moins de 18 ans) doivent obtenir l'autorisation de la part de leur(s) parent(s) avant de regarder ce contenu.</p>
+ </div>
</div>
<div class="modal-footer">
- <button onclick="home();" class="btn btn-danger" data-modal-close>Quitter</button>
+ <button onclick="home();$('#triggerWarning').modal('hide');" class="btn btn-danger" data-dismiss="triggerWarning" data-modal-close>Quitter</button>
<button onclick="watch(document.getElementById('trigger-dismiss-btn').getAttribute('data-fid'), true);" data-fid="" id="trigger-dismiss-btn" type="button" class="btn btn-success" data-dismiss="modal">Regarder quand même</button>
</div>
@@ -205,7 +214,7 @@ </div>
<div id="intermission-note" style="opacity:0;" class="alert alert-info container">
- <strong>Achetez Familine Movies+</strong> pour regarder vos films sans publicité et soutenir le développement de Familine Movies. <a href="/plus" target="_blank">En savoir plus...</a>
+ <strong>Achetez Familine Films+</strong> pour regarder vos films sans publicité et soutenir le développement de Familine Films. <a href="/plus" target="_blank">En savoir plus...</a>
</div>
<video id="video-item" style="display:none;" controls preload="auto" controlslist="nodownload">
@@ -220,6 +229,7 @@ <h1 id="details-title">Les effets spéciaux, pour les nuls <span class="badge badge-danger" id="4k_badge">4K</span></h1>
<p><i><span id="details-date">2001</span> · <span id="details-producer">Michel Baie</span></i></p>
<p id="details-description">Comme d'habitude, Michel Baie met le paquet sur les effets spéciaux.</p>
+ <br><br>
</div>
<div id="selector" style="display:none;">
@@ -242,7 +252,31 @@ global $times;
$date = (int)date('U');
- return $times[$afile]["duration"];
+ 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
+ ];
+ $times["@items"][] = $afile;
+ file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/data/durations.json", json_encode($times, JSON_PRETTY_PRINT));
+
+ return $str;
+ }
}
function cmp_by_date($a, $b) {
@@ -316,6 +350,9 @@ if (isset($film["tw_sex"]) && $film["tw_sex"]) {
echo("X");
}
+ if (isset($film["tw_sex2"]) && $film["tw_sex2"]) {
+ echo("P");
+ }
echo("</span>");
}
@@ -362,51 +399,8 @@ 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="watch(`<?= $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");
+ if (isset($film["tw_sex2"]) && $film["tw_sex2"]) {
+ echo("P");
}
echo("</span>");
}
@@ -454,6 +448,9 @@ if (isset($film["tw_sex"]) && $film["tw_sex"]) {
echo("X");
}
+ if (isset($film["tw_sex2"]) && $film["tw_sex2"]) {
+ echo("P");
+ }
echo("</span>");
}
@@ -500,6 +497,9 @@ if (isset($film["tw_sex"]) && $film["tw_sex"]) {
echo("X");
}
+ if (isset($film["tw_sex2"]) && $film["tw_sex2"]) {
+ echo("P");
+ }
echo("</span>");
}
@@ -531,7 +531,7 @@ document.getElementById('intermission-bar').style.display = "none";
document.getElementById('intermission-skipper').style.display = "none";
document.getElementById('intermission-note').style.display = "none";
- document.getElementById('video-item').src = "/tv/watch.php?i=" + selectedFilm;
+ document.getElementById('video-item').src = "https://cinema-video-media01.familine.minteck.org/" + selectedFilm + (FilmsData[selectedFilm].uhd ? "@4K" : "") + "." + FilmsData[selectedFilm].file;
document.getElementById('video-item').play();
}
}
@@ -542,39 +542,50 @@ function selector(status) {
if (status) {
document.getElementById("selector").style.display = "";
- document.body.style.overflow = "";
} else {
document.getElementById("selector").style.display = "none";
- document.body.style.overflow = "";
}
}
selectedFilm = "";
function watch(fid, ignoreTrigger) {
- document.getElementById('details').style.display = "";
selectedFilm = fid;
if (FilmsData[fid].trigger && !ignoreTrigger) {
+ window.history.replaceState({}, document.title, "/app/" + FilmsData[fid].uuid + "/consent");
+
document.getElementById("tw_flashing").style.display = "none";
document.getElementById("tw_suicide").style.display = "none";
document.getElementById("tw_violence").style.display = "none";
document.getElementById("tw_sex").style.display = "none";
+ document.getElementById("tw_sex2").style.display = "none";
if (FilmsData[fid]["tw_flashing"]) document.getElementById("tw_flashing").style.display = "";
if (FilmsData[fid]["tw_suicide"]) document.getElementById("tw_suicide").style.display = "";
if (FilmsData[fid]["tw_violence"]) document.getElementById("tw_violence").style.display = "";
if (FilmsData[fid]["tw_sex"]) document.getElementById("tw_sex").style.display = "";
+ if (FilmsData[fid]["tw_sex2"]) document.getElementById("tw_sex2").style.display = "";
+ document.getElementById('body').style.overflow = "hidden";
document.getElementById("trigger-dismiss-btn").setAttribute("data-fid", fid);
$("#triggerWarning").modal();
} else {
+ if (FilmsData[fid].soon) {
+ window.history.replaceState({}, document.title, "/app/" + FilmsData[fid].uuid + "/trailer");
+ } else {
+ window.history.replaceState({}, document.title, "/app/" + FilmsData[fid].uuid + "/player");
+ }
+
+ document.getElementById('body').style.overflow = "auto";
+
+ document.getElementById('details').style.display = "";
document.getElementById("intermission-skipper").classList.remove("valid")
document.getElementById("intermission-bar-inner").style.width = "0";
document.getElementById('intermission-note').style.display = "";
document.getElementById("page-title").innerHTML = FilmsData[fid].title + ` <span class="badge badge-secondary">fin à <span id="enddate">--:--</span></span> <img onclick="home();" alt="Quitter" title="Arrêter la vidéo" id="close-btn" src="/close.svg">`;
selector(false);
window.scrollTo(0, 0);
- document.title = FilmsData[fid].title + " | Familine Movies<?= isset($_FamilineMoviesPlus) && $_FamilineMoviesPlus ? "+" : "" ?>";
+ document.title = FilmsData[fid].title + " | Familine Films";
document.getElementById('intermission-item').src = "/tv/intermission.php";
document.getElementById('intermission-item').play();
document.getElementById("debug").style.display = "";
@@ -597,13 +608,16 @@ document.getElementById('intermission-bar').style.display = "none";
document.getElementById('intermission-skipper').style.display = "none";
document.getElementById('intermission-note').style.display = "none";
- document.getElementById('video-item').src = "/tv/watch.php?i=" + selectedFilm;
+ document.getElementById('video-item').src = "https://cinema-video-media01.familine.minteck.org/" + selectedFilm + (FilmsData[selectedFilm].uhd ? "@4K" : "") + "." + FilmsData[selectedFilm].file;
document.getElementById('video-item').play();
<?php endif; ?>
}
}
function home() {
+ window.history.replaceState({}, document.title, "/app/home");
+ document.getElementById('body').style.overflow = "auto";
+
document.getElementById('video-item').pause();
document.getElementById('video-item').style.display = "none";
document.getElementById('intermission-item').pause();
@@ -611,17 +625,15 @@ document.getElementById('intermission-skipper').style.display = "none";
document.getElementById('intermission-bar').style.display = "none";
document.getElementById('details').style.display = "none";
- document.getElementById('body').style.overflow = "auto";
selector(true);
window.scrollTo(0, 0);
- document.title = "Accueil | Familine Movies";
+ document.title = "Accueil | Familine Films";
document.getElementById("debug").style.display = "none";
document.getElementById("page-title").innerHTML = "Accueil";
document.getElementById('video-item').src = "about:blank";
document.getElementById('intermission-item').src = "about:blank";
}
- home();
selector(true);
document.getElementById('video-item').addEventListener('progress', () => {
@@ -718,4 +730,27 @@ }, 50)
</script>
+<script>
+ window.addEventListener('load', () => {
+ setTimeout(() => {
+ if (location.pathname.substring(0, 4) === "/app") { // Enabled enhanced navigation
+ base = location.pathname.substring(5).split("/")[0];
+
+ if (base === "home") {
+ home();
+ } else if (Object.keys(FilmsData).map((i) => {
+ return FilmsData[i]['uuid']
+ }).includes(base)) {
+ watch(Object.keys(FilmsData).filter(i => FilmsData[i]['uuid'] === base)[0]);
+ } else {
+ window.history.replaceState({}, document.title, "/app/home");
+ home();
+ }
+
+ window.scrollTo(0, 0);
+ }
+ }, 3000)
+ })
+</script>
+
<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/footer.php"; ?>
diff --git a/tv/watch.php b/tv/watch.php index de831af..b8a1a5e 100644 --- a/tv/watch.php +++ b/tv/watch.php @@ -1,5 +1,5 @@ <?php
-
+die();
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php";
if (!isset($_GET['i'])) {
diff --git a/watch/index.php b/watch/index.php index f175d1c..d1be64b 100644 --- a/watch/index.php +++ b/watch/index.php @@ -62,7 +62,7 @@ $_TITLE = $data["title"]; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/he <a href="/" id="logo" style="color: black;text-decoration:none !important;"><div class="container" style="margin-top: 10px;width:max-content;text-align:center;display:grid;grid-template-columns:48px 1fr;"> <img src="https://familine.minteck.org/icns/familine-movies.svg" style="vertical-align: middle;" width="48px"> <span style="vertical-align: middle;margin-left:10px;display: flex;align-items: center;justify-content: center;"> - <span style="font-size:24px;">Familine Movies</span> + <span style="font-size:24px;">Familine Films</span> </span> </div></a> @@ -79,7 +79,7 @@ $_TITLE = $data["title"]; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/he <h1 style="text-align:center;"> <span class="badge badge-danger">4K</span> </h1> - <p>Depuis Familine Movies 8.0, vous pouvez désormais visionner certains des films les plus récents en 4K. Mais avant toute chose, notez que la qualité d'image reste la même et seule la finesse et le niveau de détail est amélioré.</p> + <p>Depuis Familine Films 8.0, vous pouvez désormais visionner certains des films les plus récents en 4K. Mais avant toute chose, notez que la qualité d'image reste la même et seule la finesse et le niveau de détail est amélioré.</p> <p>Si votre connexion Internet et la puissance de votre machine le permettent, nous essayerons de lire ce contenu en 4K tant que possible.</p> </div> @@ -101,7 +101,7 @@ $_TITLE = $data["title"]; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/he </div> <div class="modal-body"> - <p>Ce contenu a été marqué comme dangeureux pour certaines personnes par les administrateurs de Familine Movies. En le regardant, vous acceptez être en mesure de consulter ce contenu ; Familine Movies n'est <b>EN AUCUN CAS</b> responsable de toute bléssure physique ou morale à la suite de la consultation de ce contenu.</p> + <p>Ce contenu a été marqué comme dangeureux pour certaines personnes par les administrateurs de Familine Films. En le regardant, vous acceptez être en mesure de consulter ce contenu ; Familine Films n'est <b>EN AUCUN CAS</b> responsable de toute bléssure physique ou morale à la suite de la consultation de ce contenu.</p> <?php if (isset($data['tw_flashing']) && $data['tw_flashing']): ?> <h2>TW: F — Épilepsie photosensible</h2> @@ -113,7 +113,7 @@ $_TITLE = $data["title"]; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/he <?php if (isset($data['tw_suicide']) && $data['tw_suicide']): ?> <h2>TW: S — Scènes de suicide</h2> <p>Ce contenu contient des scènes affichant des pratiques de suicide.</p> - <p>Familine Movies ne partage pas le mal des gens, <b>ce contenu <u>N'EST PAS</u> un appel à l'aide</b> ; nous sommes en communication constante avec l'auteur ou les auteurs du contenu et nous vous assurons qu'il(s) est/sont en bonne santé.</p> + <p>Familine Films ne partage pas le mal des gens, <b>ce contenu <u>N'EST PAS</u> un appel à l'aide</b> ; nous sommes en communication constante avec l'auteur ou les auteurs du contenu et nous vous assurons qu'il(s) est/sont en bonne santé.</p> <p>Si vous êtes victime ou témoin de toute action ou parole relative au suicide, vous <b>devez</b> prendre contact avec un professionnel <a href="https://www.infosuicide.org/urgences-aide-ressources/lignes-decoute/" target="_blank">par le biais d'une des nombreuses lignes d'écoute disponibles</a>.</p> <?php endif; ?> @@ -125,7 +125,7 @@ $_TITLE = $data["title"]; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/he <?php endif; ?> <?php if (isset($data['tw_sex']) && $data['tw_sex']): ?> - <h2>TW: S — Contenu sexuellement explicité</h2> + <h2>TW: S — Contenu sexuellement explicite</h2> <p>Ce contenu contient des scènes affichant des pratiques pouvant être considérées comme sexuellement explicites.</p> <p>Vous ne devez regarder ce contenu que si vous en êtes totalement conscient et que vous souhaitez voir du contenu pouvant être sexuellement explicite..</p> <p>Les mineurs (personnes de moins de 18 ans) ne <b>sont pas</b> autorisés à consulter ce contenu, <u>même avec l'autorisation de leur responsable légal</u>.</p> @@ -450,7 +450,7 @@ width: 32px;right: -16px;border-radius: 999px;background: transparent;cursor:poi </div> </div> <?php if (!$watchnext): ?> - <p style="text-align:center;"><i>Il s'agit du film le plus récent ajouté sur Familine Movies, vous pourriez peut-être trouver votre bonheur dans les films plus anciens.</i></p> + <p style="text-align:center;"><i>Il s'agit du film le plus récent ajouté sur Familine Films, vous pourriez peut-être trouver votre bonheur dans les films plus anciens.</i></p> <?php endif; ?> </div> |