Отправка статистики на last.fm для MOC
Для работы требует настроенный lastfmsubmitd. В конфигурационном файле необходимо изменить параметр OnSongChange на
OnSongChange = "/home/rain/.moc/mocsubmit.sh "%a" "%r" "%t" "%d" &"
заменить имя пользователя и путь к скрипту на свое
Если в течение 15 секунд все еще продолжает играть та же песня - статистика отправляется на last.fm. Баги: если быстро переключиться на другую песню, а потом снова на первую либо просто несколько раз запустить воспроизведение одной и той же песни - будут засчитаны лишние сабмиты.
В дополнение, скрипт позволяет организовать остановку воспроизведения после проигрывания текущей композиции. Для этого добавьте в конфигурационный файл строки:
ExecCommand1 = "touch /home/rain/.moc/sacs.lock" ExecCommand2 = "rm -f /home/rain/.moc/sacs.lock"
Пути заменить на свои. По F1 включается режим остановки, по F2 - отключается. Баги: если по какой-то причине файлик при запуске плеера уже был (как вариант - была включена остановка на последнем треке в плейлисте) - воспроизведение остановится после первой же композиции
#!/bin/bash
# By Rain ;)
if [ -e "${HOME}/.moc/sacs.lock" ]; then
mocp -s
rm -f "${HOME}/.moc/sacs.lock"
exit 0
fi
if [ ! -x /usr/lib/lastfmsubmitd/lastfmsubmit ]
then
echo 'Error: /usr/lib/lastfmsubmitd/lastfmsubmit not found'
exit 1
fi
sleep 15
if [ "${1}${3}${2}" == "$(mocp -i | awk -F': ' '/^Artist|^Album|^SongTitle/{print $2}' | tr -d '\n')" ]
then
/usr/lib/lastfmsubmitd/lastfmsubmit --encoding "UTF8" --artist "${1}" --title "${3}" --length "${4}" --album "${2}"
fi