Полезная всё-таки штука этот блог! Стоило мне написать об MPD, как kaktyc в комментариях посоветовал мне попробовать mpd-dynamic.
Последний, как оказалось, распространяется с перловым модулем Audio::MPD. Я начал по привычке искать ебилды, но вместо этого нашёл g-cpan — генератор ебилдов для любых модулей из CPAN. Короче говоря, Audio::MPD под Gentoo ставится вот так:
sudo emerge g-cpan
sudo g-cpan -g Getopt::Euclid
sudo g-cpan -g Audio::MPD
sudo emerge version Getopt-Euclid Audio-MPD
Интересно, в других дистрибутивах подобные back-end-ы к CPAN’у есть?
В общем, посмотрел я на mpd-dynamic вблизи, и понял, что некоторые вещи в нём мне не нравится. После чего занялся правкой этих вещей — при том, что весь мой опыт с Perl’ом ограничен тем, что я когда-то пару раз листал книжки о нём — но и скрипт там всего на полторы сотни строк, да и примеры работы с Audo::MPD на CPAN-овском сайте есть, в остальных мелочах гугль помог. И я даже реализовал всё, что хотел, но потом упёрся в проблему с кодировками. Помучив гугль, сдался, и попросил помощи на форуме. Пока что мой новый mpd-dynamic работает только для файлов, в именах которых нет русских букв (к слову, у ориганального mpd-dynamic проблема та же).
Собственно, в самом mpd-dynamic я только изменил работу рейтинга — если в оригинале песня с определённым рейтингом либо добавляется в плейлист, если рейтинг выше порога, либо не добавляется; то я сделал так, что вероятность добавления песни растёт в зависимости от рейтинга: рейтинг по умолчанию — 3, песни с рейтингом 1 добавляются с в два раза меньшей вероятностью; с рейтингом 5 — с в два раза большей. Ну и кроме того, рейтинги должны храниться в базе данных, а с mpd-dynamic не идёт никаких программ для её создания и заполнения, так что я написал простенькие скрипты для установки и проверки рейтинга (при чём у этих скриптов никаких проблем с русским языком почему-то не возникло)
4 комментариев »
RSS feed for comments on this post. TrackBack URL
Оставить комментарий:


Voker57 | 10.01.2008 23:54
какой ужос этот ваш перл.
ЗЫ. Сам себя пингуешь? ;)
LXj | 11.01.2008 0:03
Да уж, сам бы я на нём писать не начал. Хотя исходники того скрипта вроде бы не такие уж и write-only.
ЗЫ. Я не виноват, оно само :) Вообще если пинги мешают, могу выключить. Если найду, как ^^
Voker57 | 11.01.2008 0:47
Пинги рулят ;) Я помню сильно удивился, когда блог, о котором я писал, сам пинганулся. Взаимный автопромоутинг такой…
Пинг от LXj’s blog » Everything is dynamic, nothing is static | 21.01.2008 2:32
[...] общем, забросил я попытки решить перловые проблемы с кодировками, нашёл питоновские биндинги к MPD, и написал свой [...]