piątek, 23 stycznia 2009

rTorrent w Conky


Do napisania tego poradnika skłonił mnie artykuł o podobnej treści znajdujący się na szwedzkim forum Ubuntu.
http://ubuntu-se.org/phpBB3/viewtopic.php?f=19&t=30454
Jako, że osobiście byłem zainteresowany tematem postanowiłem zbadać sprawę i oto wyniki.
Aby conky mógł wyświetlać na pulpicie poczynania rTorrenta ten ostatni musi być zainstalowany ze źródeł i to chyba najtrudnieszy moment tej operacji, ale do dzieła.
Jeżeli w systemie mamy zainstalowanego rTorrenta to należy go usunąć, a zatem w konsoli:

apt-get remove rtorrent

Następnie należy zainstalować narzędzia niezbędne do dalszej pracy:


sudo apt-get install build-essential libsigc++-2.0-dev pkg-config libcurl3-openssl-dev libidn11-dev libkadm55 libkrb5-dev libssl-dev zlib1g-dev libncurses5 libncurses5-dev libxmlrpc-c3-dev

Następnie udajemy się na stronkę twórcy rTorrenta
i ściągamy najnowsze paczki.
Mój wybór padł na:libtorrent-0.12.4.tar.gz i rtorrent-0.8.4.tar.gz
Paczki należy rozpakować np. na Pulpit i w konsoli:

cd libtorrent-0.12.4
./configure
make
sudo make install

i dalej:

cd rtorrent-0.8.4
./configure --with-xmlrpc-c
make
sudo make install

Następny krokiem jest utworzenie w katalogu domowym folderu o nazwie rtorrent_rpc zatem

mkdir ~/rtorrent_rpc

następnie do pliku konfiguracyjnego rtorrenta czyli najczęściej ~/.rtorrent.rc w ostatniej linijce należy dopisać:

scgi_local =~/rtorrent_rpc/rpc.socket

Kolejnym krokiem będzie wizyta na stronie autora skryptu:
i pobranie dokładnie tego:
xmlrpc2scgi.py autorstwa glenn on 05/23/08 06:02:00.
Skrypt należy umieścić w utworzonym folderze, czyli ~/rtorrent_rpc i nadać mu prawo do wykonania bądź to graficznie bądź w konsoli.
Następny krok to instalacja paczki:

sudo apt-get install xmlstarlet

Teraz kopiujemy ten skrypt:

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
d.get_name= \
d.get_up_rate= \
d.get_down_rate= \
d.get_completed_chunks= \
d.get_size_chunks= \
d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
if (++i%6 == 1) name=$0
else if (i%6 == 2) up[name]=$0
else if (i%6 == 3) down[name]=$0
else if (i%6 == 4) done[name]=$0
else if (i%6 == 5) size[name]=$0
else if (i%6 == 0) active[name]=$0
} END {
for(name in up) {
if(active[name]) {
up_sum += up[name]
down_sum += down[name]
#if(++j<=4)
{
printf("Namn: %s\n", name)
printf("Klart: %d%%\n", 100 * done[name] / size[name])
printf("Upp: %.1f kB/s\n", up[name] / 1024)
printf("Ner: %.1f kB/s\n", down[name] / 1024)
printf("\n\b")
}
}
}
printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z |
xargs -0 -n1 printf '%s'

zapisujemy w folderze domowym pod nazwą skriptet.sh, nadajemy prawo do wykonania jako programu.
W dowolnym miejscu pliku configuracyjnego ~/.conkyrc dopisujemy (pamiętając o ewentualnym dopasowaniu ścieżek)linię:

${exec ~/skriptet.sh ~/rtorrent_rpc/xmlrpc2scgi.py ~/rtorrent_rpc/rpc.socket}

I to w zasadzie tyle, po uruchomieniu rTorrenta i dodaniu zadania otrzymamy widok pracującego rTorrenta.
W komentarzach do oryginalnego artykułu znajdują się jeszcze dwa przykładowe skrypty, których analiza pozwoli zorientować się jak najlepiej przystosować skrypt do własnych potrzeb.

Pozdrawiam i powodzenia.:-)