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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Zachciało mi się wstawić monitor rtorrenta do conky na podstawie poradnika:
[url=http://www.sakana.fr/blog/2009/10/11/conky-integrating-rtorrent-downloads-monitoring/]tego[/url]
lub [url=http://ubuntuforums.org/showthread.php?t=1565835]tego[/url]
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
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
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:
[i]Argument "\x{20}\x{37}..." isn't numeric in division (/) at /home/adam/.conky/skrypty/rtorrent-status.pl line 37.[/i]
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ć.
#!/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
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00155 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.116.15.22' WHERE u.id=1 |
0.00091 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.116.15.22', 1732754700) |
0.00054 | SELECT * FROM punbb_online WHERE logged<1732754400 |
0.00063 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=25424 AND t.moved_to IS NULL |
0.00025 | SELECT search_for, replace_with FROM punbb_censoring |
0.00199 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=25424 ORDER BY p.id LIMIT 0,25 |
0.00085 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25424 |
Total query time: 0.00687 s |