From cee23ce48ea81612eefe30552da1cc286138af0b Mon Sep 17 00:00:00 2001 From: Minteck Date: Sat, 5 Feb 2022 15:55:51 +0100 Subject: Update --- includes/construct.php | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 includes/construct.php (limited to 'includes/construct.php') 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 @@ + "/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 -- cgit