Технический форум

Технический форум (http://www.tehnari.ru/)
-   Форум программистов (http://www.tehnari.ru/f22/)
-   -   Скрипт на Perl (http://www.tehnari.ru/f22/t97630/)

GlaZZZ 27.07.2014 23:18

Скрипт на Perl
 
Всем привет!

Признавайтесь, кто знает язык Perl?

У меня проблемка небольшая со скриптом выборки треков для радио.

Вещалка использует скрипт Перл для выборки треков и вывода метаданных.

Поможете?

Debianer 28.07.2014 11:24

Ну, я немного знаю. :)
Скрипт сюдыма, и конкретнее, что именно глючит

GlaZZZ 28.07.2014 14:12

В общем есть такой код:
Код:

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

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

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

sub ices_get_metadata {
        $tag = get_mp3tag($file) or die "No TAG info";
        return "$tag->{TITLE} ";
}

return 1;

Получается через каждые 5 треков включается случайный джингл с папки джинглов. Но из-за того, что сами треки берутся рандомно с папки "test", то после джингла включается почему-то трек, который играл до джингла. И так сколько я проверял, было всегда.

Как избавиться от этой фигни?

Я уже думал, может треки брать с плейлиста? Допустим подключить файл playlist.txt, где на каждой строчке писалась бы ссылка к файлу "/mnt/test/Metallica - Nothing else matter.mp3"

В любом случае мне не важно каким образом будут браться треки с папки. Лучше конечно, если будет рандомно, но без таких глюков с повторами.

Может при выборе нового трека сделать какое-то условие с проверкой был ли этот трек уже или нет?!


Часовой пояс GMT +4, время: 15:09.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.