';
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 = rawurldecode($_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
$ini = get_ini();
$dir = $ini['PLAYLIST']['path'];
$json_path = $dir . "/" . $date_str[0] . "/" . $date_str[1];
$json_output = $json_path . "/" . $date . ".json";
// prepare header
$list = array(
"channel" => "Test 1",
"date" => $date,
"length" => "24:00:00.000",
"program" => []
);
$length = 0;
// create json video element
foreach($raw_arr as $rawline) {
$clipItem = array(
"in" => floatval($rawline->in),
"out" => floatval($rawline->out),
"duration" => floatval($rawline->dur),
"source" => "/" . $rawline->src
);
$list["program"][] = $clipItem;
// TODO: add real length?
//$length += round($rawline->out - $rawline->in);
}
//$list["length"] = sprintf('%02d:%02d:%02d', ($length/3600),($length/60%60), $length%60);
if (!is_dir($json_path)) {
mkdir($json_path, 0777, true);
}
file_put_contents($json_output, json_encode(
$list, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT));
printf('Save playlist "%s.json" done...', $date);
}
?>