Scrobblowanie w Linuksie

Scrobblowanie w Linuksie

Scrobblowanie w Linuksie
autorem artykułu jest Kamil Michalak

Last.fm jest portalem chyba dosyć dobrze znanym w sieci. Wielu jego użytkowników korzysta udostępnionej przez portal aplikacji Last.fm. Jest ona dostępna zarówno dla systemu Windows jak i dla Linuksa, jednak na tym drugim nie posiada pełnej funkcjonalności znanej z wersji 'okienkowej'. Największą bolączką tego programu jest problem z integracją z odtwarzaczami multimedialnymi.
Dobrym wyjściem jest więc użycie specjalnie do tego celu stworzonego scrobblera, jakim jest SCMPC.
Instalacja programu nie jest strasznie skomplikowana. Jeżeli chodzi o wymagania samego programu, to konieczna jest obecność paczek:

* libcurl (>=7.10)
* argtable
* confuse
* libdaemon

Jeżeli są one zainstalowane w systemie możemy zabrać się za instalację samego SCMPC.
Na początku pobierzmy i rozpakujmy archiwum z programem.

$ wget -dc http://download.berlios.de/scmpc/scmpc-0.2.2.tar.bz2
$ tar -jxvf ./scmpc-0.2.2.tar.bz2
$ cd scmpc-0.2.2
$ ./configure
$ make
$ su -c "make install"

I mamy już nasz scrobbler. ZOstaje jeszcze odpowiednio go skonfigurować, co robimy przez edycję pliku konfiguracyjnego .scmpcrc. Na początek, póki jeszcze jesteśmy w katalogu ze źródłami SCMPC wpisujemy w terminalu

$ cp ./examples/scmpc.conf ~/.scmpcrc
$ cd ~
$ vim ./.scmpcrc


Przykład pliku konfiguracyjnego znajduje się poniżej.


##############################
# Zasadniczo, łańcuchy znakowe powinny być zawarte w 'pojedyńczych lub "podwójnych" nawiasach.
# Nie ma potrzemy umieszczania w cudzysłowach wartości znakowej, jeżeli jest specjalnie
# zarezerwowanym ciągiem znaków.
#
# Jedynymi opcjami jakie powinny być ustawione dla scmpc dla poprawnego działania są
# nazwa użytkownika i hasło audioscrobblera w sekcji audioscrobbler.
#
# Nie ma potrzeby odkomentowywania jakiejkolwiek wartości dopóki nie chcemy modyfikować
# orginalnej opcji.
##############################

# log_level
#
# Wybierz wartość logowania wydarzeń. Poprawne opcje to:
# none, error, info, and debug
log_level = error
# log_file
#
# Plik, do którego scmpc będzie zapisywać log.
log_file = "/home/kamil/.mpd/scmpc/scmpc.log"
# pid_file
#
# Plik, w którym scmpc będzie przechowywać numer id procesu (pid), dla możliwości sprawdzenia
# czy proces został uruchomiony raz. (Plik jest używany, tylko w przypadku, gdy scmpc jest
# uruchomiony jako demon)
pid_file = "/home/kamil/.mpd/scmpc/scmpc.pid"
# cache_file
#
# Plik, w którym scmpc przechowuje nieprzesłane piosenki
cache_file = "/home/kamil/.mpd/scmpc/scmpc.cache"
# queue_length
#
# Maksymalna ilość nieprzesłanych piosenek. Można zmniejszyć tę ilość w przypadku
# zbyt dużego zużycia pamięci przez proces.
queue_length = 50
# cache_interval
#
# Interwał ustalany w minutach pomiędzy kolejnymi zapisami niewysłanych piosenek.
# Wartość 0 wyłącza funkcję.
cache_interval = 10
# mpd section
#
# host: Nazwa hosta serwera mpd. Może to być również adres IP.
# port: Port nasłuchy mpd.
# timeout: Czas próby nawiązania połączenie z serwerem.
# password: Ustawiamy jeżeli używamy hasła dla serwera mpd.
mpd {
#host = "localhost"
#port = 6600
#timeout = 5
#password =
#}
# audioscrobbler section
#
# username: Twoja nazwa użytkowanika dla Last.fm
# password: Hasło Last.fm
# password_hash: Hash hasła Last.fm, możemy obliczyć poleceniem echo -n 'nasze_hasło' | md5sum
audioscrobbler {
username = "nazwa_użytkowanika"
password_hash = "5d003e1eabf4be0bcd2d7d99c8cc81ca"
}
##############################


Czasem przy instalacji naszego scrobblera zdarza się, że otrzymujemy komunikatu o braku pliku libargtable2.so.0, pomimo iż znajduje się on w katalogu /usr/local/lib/. Rozwiązaniem powyższego problemu jest utworzenie dowiązania symbolicznego

$ su -c "ln -s /usr/local/lib/libargtable2.so.0 /usr/lib/"

Program jest już zainstalowany. Dobrym pomysłem byłoby uruchamianie go przy starcie systemu, podobnie zresztą jak demona mpd. Nasz cel możemy osiągnąć przez napisanie prostego skryptu startowego. Jako root tworzymy plik /etc/init.d/scmpc

# touch /etc/init.d/scmpc
# vim /etc/init.d/scmpc

Do pliku wrzucamy linie:

#!/bin/sh
# chkconfig: - 20 80
# description: scmpc - a client for MPD which submits your tracks to Audioscrobbler
# processname: scmpc
# config: /etc/scmpc.conf
# config: /usr/local/etc/scmpc.conf


# Source function library.
. /etc/rc.d/init.d/functions

# This path can change in different distributions and configurations
exec="/usr/local/bin/scmpc"
prog=$(basename $exec)

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/$prog

##-START FUNCTION----------------------------------
start() {
echo -n $"Starting $prog: "
daemon $exec
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
## end of start function --------------------------

##-STOP FUNCITON-----------------------------------
stop() {
echo -n $"Stopping $prog: "
# stop it here, often "killproc $prog"
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
## end of stop function----------------------------

## RESTART FUNCTION--------------------------------
restart() {
stop
start
}
## end of restart function-------------------------

case "$1" in
start|stop|restart)
$1
;;
force-reload)
restart
;;
status)
status $prog
;;
try-restart|condrestart)
if status $prog >/dev/null ; then
restart
fi
;;
reload)
status $prog >/dev/null || exit 7
action $"Service $prog does not support the reload action: " /bin/false
exit 3
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
exit 2
esac

Niektóre linijki mogą wymagać naszej interwencji (wszystkie znajdziemy prawie na samym początku pliku), np. ścieżka dostępu do scmpc, czy do plików konfiguracyjnych.
Następnie zapisujemy plik, nadajemy mu uprawnienia do wykonania i pomagamy sobie poleceniem chkconfig.

# chmod +x /etc/init.d/scmpc
# chkconfig --add scmpc

Jeżeli wszystko zostało poprawnie wpisane, program zakończy swoje działanie, w przeciwnym wypadku wyrzuci jakiś komunikat.
Tak oto dotarliśmy niemal do celu. Można jeszcze sprawdzić czy nasz nowy demonek uruchomi się przy starcie systemu.

# ntsysv

Powinno pojawić się małe okienko. Upewnijmy się tylko, że przy opcji scmpc mamy znak "*". Jeżeli tam jest, to wszystko w porządku. Jeżeli nie, to zaznaczamy tę opcję kursorem (taki czerowny prostokącik) i wciskamy spację. Jeszcze OK i jesteśmy w domu.

--
K. Michalak

Artykuł pochodzi z serwisu www.Artelis.pl

Zobacz takze:
Jak zdobywać linki
Przyjęcia okolicznościowe - kilka praktycznych rad
Szkolenia z zakresu uprawnień do wystawiania certyfikat
Z implebot o połowę mniej pracy...
Poszukiwania pracy za granicą