Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2014-03-12 23:54:54

  as-max - Użytkownik

as-max
Użytkownik
Zarejestrowany: 2011-01-23

conky + rtorrent

Zachciało mi się wstawić monitor rtorrenta do conky na podstawie poradnika:
tego
lub tego
Generalnie oba wykorzystują to samo czyli Frontiera i tu zaczynają się schody, ponieważ otrzymuję taki komunikat jak na pierwszym z poradników, czyli:
wanted a data type, got `i8′
Poniżej niby jest rozwiązanie ale nie wiem gdzie mam to dopisać. Czy istnieje jakiś plik konfiguracyjny Frontier RPC2?

Offline

 

#2  2014-03-14 09:33:11

  as-max - Użytkownik

as-max
Użytkownik
Zarejestrowany: 2011-01-23

Re: conky + rtorrent

A może ma ktoś jakieś rozwiązanie aby w conky wyświetlić status rtorrenta ale przy użyciu scgi_port a nie scgi_local

Offline

 

#3  2014-03-19 20:28:45

  as-max - Użytkownik

as-max
Użytkownik
Zarejestrowany: 2011-01-23

Re: conky + rtorrent

Znalazłem w końcu ten plik Frontiera odpowiedzialny za to. Znajdował się w /usr/share/perl5/Frontier i nosił nazwę RPC2.pm
Wstawiłem brakującą linię zgodnie z instrukcją i zaczął pobierać dane z tym, że teraz wyświetla komunikat o błędzie:
Argument "\x{20}\x{37}..." isn't numeric in division (/) at /home/adam/.conky/skrypty/rtorrent-status.pl line 37.
Domyślam się, że chodzi o to, że dane, które skrypt próbuje podzielić nie są liczbą w linii:
my $percent_done = 100 * ($d->[1] / $d->[2]);

Cały skrypt zamieszczam poniżej. Niestety nie znam perla i nie wiem jak to poprawić.

Kod:

#!/usr/bin/perl

use strict;
use warnings;

use Frontier::Client;

#test if rtorrent is running
my($sessdir)='/home/adam/.session';

if (! -e "$sessdir/rtorrent.lock")
{
   printf("\${color FFFFFF}Rtorrent not running\n");
   exit;
}

# Configuration
use constant server => 'http://localhost/RPC2';

# Do not edit below this comment
my $server = Frontier::Client->new(url => server);

my $uprate = $server->call('get_up_rate');
my $downrate = $server->call('get_down_rate');

#use the "to_mb" conversions built into xmlrpc as other conversions are messy
#for large files, it returns an INT that is too large - wraps around and becomes negative.
my $torrents = $server->call('d.multicall', "main",
"d.get_base_filename=",
"to_mb=\$d.get_bytes_done=",
"to_mb=\$d.get_size_bytes=",
"d.get_down_rate=");

my @res;
foreach my $d (@$torrents) {
        my $dl_rate = $d->[3] / 1024;
        my $percent_done = 100 * ($d->[1] / $d->[2]);

if ($percent_done == 100) {
        push @res,
        sprintf("\${color 0033FF}%.28s \${alignr}%6.1f kB/s\n" .
        "" x 2 . "%3.1f%%" . " \${execbar echo %3.0f }\${color 33DD33}",
        $d->[0], $dl_rate, $percent_done, $percent_done);
} else {
        push @res,
        sprintf("\${font Arial:size=8}%.40s \${font}\n\${alignr}%6.1f kB/s\n" .
        "" x 2 . "%3.1f%%" . " \${execbar echo %3.0f }\n",
        $d->[0], $dl_rate, $percent_done, $percent_done);
}
}

printf("\${color FFFFFF}%6.1f kB/s up %6.1f kB/s down\n\n \${color ffffff}", $uprate / 1024, $downrate / 1024);
print join("\n", @res), "\n";

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)