Полезная всё-таки штука этот блог! Стоило мне написать об 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 не идёт никаких программ для её создания и заполнения, так что я написал простенькие скрипты для установки и проверки рейтинга (при чём у этих скриптов никаких проблем с русским языком почему-то не возникло)