body[0]->video as $video) { $src = preg_replace('/^\//', '', $video['src']); $src_arr = explode('/', $src); $name = preg_replace($src_re, '', end($src_arr)); $name = str_replace('ยง', '?', $name); $clipBegin = $video['begin']; $begin = gmdate("H:i:s", intval($clipBegin)); $dur = $video['dur']; $duration = gmdate("H:i:s", intval($dur)); $in = $video['in']; $in_p = gmdate("H:i:s", intval($in)); $out = $video['out']; $out_p = gmdate("H:i:s", intval($out)); $play = ''; printf('
  • ', $clipBegin, $src, $dur, $in, $out, $begin, $name, $play, $duration, $in_p, $out_p ); } } else { printf('
  • ', "...", "No Playlist for this Day", "...", "...", "...", "...", "..." ); } } // generate object from dragged item if(!empty($_GET['li_path'])) { $path = urldecode($_GET['li_path']); $src_re = array(); $src_re[0] = '/# [0-9-]+.('.$ext.')$/'; $src_re[1] = '/^[0-9]+ # /'; $src_re[2] = '/.('.$ext.')$/'; $src_re[3] = '/^# /'; $src = preg_replace('/^\//', '', $path); $src_arr = explode('/', $src); $name = preg_replace($src_re, '', end($src_arr)); $play = ''; $duration = preg_replace("/\n\n|\n|\n/",'',shell_exec("ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 '".$path."'")); $dur_time = gmdate("H:i:s", $duration); printf('
  • ', "0", $src, $duration, "0", $duration, "00:00:00", $name, $play, $dur_time, "00:00:00", $dur_time ); } // save modified list if(!empty($_POST['save'])) { // get json string $raw_arr = json_decode(urldecode($_POST['save'])); $date = $_POST['date']; $date_str = explode('-', $date); // get save path $get_ini = get_config(); $get_dir = "/^playlist_path.*\$/m"; preg_match_all($get_dir, $get_ini, $matches); $line = implode("\n", $matches[0]); $path_root = explode("= ", $line)[1]; $xml_path = $path_root . "/" . $date_str[0] . "/" . $date_str[1]; $xml_output = $xml_path . "/" . $date . ".xml"; // create xml head $xml_str = sprintf(' %s', $date_str[0], $date, "\n"); // create xml video element foreach($raw_arr as $rawline) { $formated_src = str_replace('&', '&', $rawline->src); $xml_str .= sprintf(' \n"; if (!is_dir($xml_path)) { mkdir($xml_path, 0777, true); } file_put_contents($xml_output, $xml_str); printf('Save playlist "%s.xml" done...', $date); } // fill playlist to 24 hours if(!empty($_POST['fill_playlist'])) { $list_date = $_POST['fill_playlist']; $diff_len = $_POST['diff_len']; $start_time = $_POST['start_time']; $raw_arr = json_decode(urldecode($_POST['old_list'])); $get_ini = get_config(); $date_str = explode('-', $list_date); $get_dir = "/^playlist_path.*\$/m"; preg_match_all($get_dir, $get_ini, $matches); $line = implode("\n", $matches[0]); $path_root = explode("= ", $line)[1]; $xml_path = $path_root . "/" . $date_str[0] . "/" . $date_str[1]; $xml_output = $xml_path . "/" . $list_date . ".xml"; $fill = shell_exec("./sh/fill.sh '".$list_date."' '".$diff_len."' '".$start_time."'"); // create xml head $xml_str = sprintf(' %s', $date_str[0], $list_date, "\n"); // create xml video element foreach($raw_arr as $rawline) { $formated_src = str_replace('&', '&', $rawline->src); $xml_str .= sprintf(' \n"; if (!is_dir($xml_path)) { mkdir($xml_path, 0777, true); } file_put_contents($xml_output, $xml_str); printf('Filled and save playlist "%s.xml" done...', $list_date); } ?>