aboutsummaryrefslogtreecommitdiff
path: root/includes/construct.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/construct.php')
-rw-r--r--includes/construct.php51
1 files changed, 51 insertions, 0 deletions
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