Да если бы у Вас не шли метаданные отбивок или чего там поверх, то можно было бы просто проверять $(title) на пустоту и пропускать создание очередного файла, а так пришлось ваять костыль, в общем как то так получается, - в liq :
def check_metadata(m) =
title = get_process_output('php <абсолютный путь к папке проекта>/title.php "'^ m["title"] ^'"')
[("title", "#{title}")]
end
source = mksafe(input.http("http://sc.ultima.fm:8001/stream/1/stream.mp3"))
source = map_metadata(check_metadata, source)
output.file(%mp3(bitrate=128),"<абсолютный путь к папке проекта>/records/%Y-%m-%d/%H/$(title).mp3", append=true, reopen_on_metadata=true, source)
и сам title.php:
<?php
error_reporting(0);
$file = "<абсолютный путь к папке проекта>/title.txt";
$stored_title = explode("::", file_get_contents($file));
if ((isset($argv[1])) and (strlen($argv[1]) !== 0) and ($argv[1] !== $stored_title[1])) {
echo date("H:i:s") . " " . $argv[1];
$title = date("H:i:s") . "::" . $argv[1];
$file_to = fopen($file, "w+");
fwrite($file_to, $title);
fclose($file_to);
} else {
echo $stored_title[0] . " " . $stored_title[1];
}
?>
ну и понятное дело что пользователь под которым запускается liq скрипт должен иметь все права на папку проекта, сообразите я надеюсь.
Отредактировано gyurgin_1 (12-04-2016 21:11:40)