aboutsummaryrefslogtreecommitdiff
path: root/tv
diff options
context:
space:
mode:
Diffstat (limited to 'tv')
-rw-r--r--tv/index.php161
-rw-r--r--tv/watch.php2
2 files changed, 99 insertions, 64 deletions
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("\"", "&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");
+ 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'])) {