Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Perl
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2012, 20:08   #1
ev0lution
Новичок
Джуниор
 
Регистрация: 26.02.2012
Сообщений: 1
По умолчанию Cron + Perl + IceCast2

Вообщем ретранслирую Радио. Надо чтобы каждые секунд 15-30 (с помощью Cron) бралось название трека отсюда: (http://radiorecord.ru/script/record.txt) И обновлялось на IceCast2 (т.е Update Metadata).

Нашел скрипт в интернете:

Цитата:
#!/usr/bin/perl
# Version 0.05

use strict;
use LWP;
use Time::HiRes qw(gettimeofday);

my $mount = 'Radio_Record';
my $icecast_addr = '192.168.0.1';
my $icecast_port = 8000;
my $icecast_password = 'ваш_пароль_от_admin';

my $browser = LWP::UserAgent->new;
$browser->timeout ( 5 );
$browser->credentials ( "$icecast_addr:$icecast_port", 'Icecast2 Server', 'admin' => $icecast_password );

for ( my $i = 0; $i <= 3; $i++ ) {
my $time = gettimeofday ();
my $title = 'Radio Record';
my $response = $browser->get ( 'http://radiorecord.ru/script/record.txt' );
if ( $response->is_success ) {
$response->content =~ /:\s(.*)/;
if ( my ( $artist, $song ) = $1 =~ /(.*?)\s\xE2\x80\x94\s(.*)/ ) {
$artist =~ s/<[\/]?strong>//g;
$artist =~ s/([^,\.\/]*), ([^,\.\/]*)/$2 $1/g;
$title = "$artist - $song";
} elsif ( my ( $artist, $song ) = $1 =~ /(.*?)\s-\s?(.*)/ ) {
$artist =~ s/([^,\.\/]*), ([^,\.\/]*)/$2 $1/g;
$title = "$artist - $song";
} else {
$title .= ' - ' . $1;
}
$title =~ s/<[\/]?a[^>]*>//g;
$title =~ s/\xD0\x94\xD0\xB8\x2D\xD0\x94\xD0\xB 6\xD0\xB5\xD0\xB9/DJ/g;
$title =~ s/\[ampersand\]amp;/&/g;
}
$title =~ s/(.)/ sprintf ( "%%%02X", ord ( $1 ) ) /ge;
$response = $browser->get ( "http://$icecast_addr:$icecast_port/admin/metadata.xsl?song=/admin/metadata.xsl?song=$title&mount=/$mount&mode=updinfo" );
my $delta = gettimeofday () - $time;
sleep ( 15 - int( $delta + .5 * ( $delta <=> 0 ) ) );
}
Но почему то мне не запустить этот скрипт на своём сервере...
Сервер VDS. ОС: Debian.

Помогите плз, как правильно настроить Cron ?
ev0lution вне форума Ответить с цитированием
Старый 02.03.2012, 15:11   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Но почему то мне не запустить этот скрипт на своём сервере...
Какие ошибки выдает ?
ssdm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возникла проблема cron + множество id webber9989 PHP 3 01.11.2010 16:44
Скрипт мониторинга web сайтов php+cron и т.д. webber9989 Фриланс 1 29.06.2010 08:05
php (cron), скрипт записи файла. oleg17 Помощь студентам 0 17.11.2009 18:17