ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

ices + perl

 

6
Eclipse @Eclipse
Стоит perl следующего вида:

sub ices_init {
print "Perl subsystem Initializing:\n";
$jingle = 0;
return 1;
}

sub ices_shutdown {
print "Perl subsystem shutting down:\n";
}

sub ices_get_next {
print "Perl subsystem quering for new track:\n";
if($jingle < 12){
$jingle ++;
@music=`/bin/ls -1 /home/r4l/music/*.mp3`;
}else{
$jingle = 0;
@music=`/bin/ls -1 /home/r4l/jingles/*.mp3`;

}
$num = scalar (@music);
$play=int(rand($num));
chomp $music[$play];
$a=`wget **********
return $music[$play];
}

sub ices_get_metadata {
use MP3::Info;
$tag = get_mp3tag($music[$play]) or die "No TAG info";
return "$tag->{ARTIST} - $tag->{TITLE}";
}

return 1;


Проблемы две:
- названия треков выводятся 20/80 крокозябры/нормальные (теги все массово перекодировал)
- строчка "$a=`wget ..." запускает скрипт, который парсит инфу о треке со страницы статуса радио. Проблема в том, что парсинг выполняется чуть-чуть раньше запуска трека, соответственно информация об играющей композиции запаздывает.

Кто что может посоветовать?

Отредактировано Eclipse - 05.01.2013
6245
Тарас @tarasian666
а если $a=`wget ********** вставить в sub ices_get_metadata?
и почему так по идиотски запускать этот скрипт через wget ? Неужели сайт и ices на разных машинах?

6
Eclipse @Eclipse
Не помогло, также запаздывает. Да, на разных.

6245
Тарас @tarasian666
так запаздывает или раньше?

6
Eclipse @Eclipse
скрипт выполняется сразу перед сменой, инфа запаздывает на 1 трек.

6245
Тарас @tarasian666
можно тогда через $a=`wget ********** передать и название текущего трека, или запускать другой скрипт в бекграунд с задержкой на выполнение wget **********