Отправка статистики на last.fm для MOC

Материал из Linux Wiki
Перейти к: навигация, поиск

Для работы требует настроенный 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
ToDo: Сделать более адекватное опознание реального прослушивания песни