} Logger::$PATH = Conf::LOGDIR; Logger::getLogger(Conf::AJAXLOGFILE)->log("SOURCE: " . basename(__FILE__) . " REQUEST: " . http_build_query($_REQUEST, "", " ")); if ($state = file_get_contents(Conf::SETTINGS . "/" . $channel . "-playlist.json")) { $error = error_get_last(); } else { // } $playlist = new FflistClass($state); // $playlist->fromJSON(file_get_contents($channel . "-playlist.json")); switch ($command) { case 'get_playlist': echo $playlist->toJSON(); break; case 'dir': echo VideoDirectory::scan($parameter); break; case 'add': echo $playlist->add($parameter); break; case 'remove': echo $playlist->remove($parameter); break; case 'move': echo $playlist->move($parameter); break; case 'rename': echo $playlist->rename($parameter); break; case "renamefile": renamefile($parameter);
public static function scan($dir) { $subdirs = array(); $mp4s = array(); if ($handle = opendir($dir)) { while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { if (is_dir($dir . "/" . $entry)) { $subdirs[] = "/" . $entry; } elseif (in_array(pathinfo($entry, PATHINFO_EXTENSION), array("mp4", "ffconcat"))) { $mp4s[] = $entry; } } } closedir($handle); } usort($subdirs, 'self::mb_strnatcasecmp'); usort($mp4s, 'self::mb_strnatcasecmp'); self::$files = array_merge((array) "/..", $subdirs, $mp4s); return json_encode(self::$files, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); }