diff options
Diffstat (limited to 'scripts/mldonkey_bandwidth.pl')
-rw-r--r-- | scripts/mldonkey_bandwidth.pl | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/mldonkey_bandwidth.pl b/scripts/mldonkey_bandwidth.pl new file mode 100644 index 0000000..c382395 --- /dev/null +++ b/scripts/mldonkey_bandwidth.pl @@ -0,0 +1,51 @@ +use strict; +require LWP::UserAgent; +use Irssi; +use HTTP::Request::Common; +use vars qw($VERSION %IRSSI); + +$VERSION = "20180123"; +%IRSSI = ( + authors => "Carsten Otto", + contact => "c-otto\@gmx.de", + name => "mldonkey bandwidth script", + description => "Shows your mldonkey's current down- and upload rate", + license => "GPLv2", + url => "http://www.c-otto.de", + changed => "$VERSION", + commands => "mlbw" +); + +Irssi::settings_add_str('mldonkey_bandwidth', 'mldonkey_bandwidth_host' ,'127.0.0.1:4080'); +my $host = Irssi::settings_get_str('mldonkey_bandwidth_host'); + +sub cmd_mlbw +{ + my ($args, $server, $target) = @_; + my $ua = LWP::UserAgent->new(timeout => 5); + my $req = GET "http://$host/submit?q=bw_stats"; + my $resp = $ua->request($req); + my $output = $resp->content(); + my $down = $output; + my $up = $output; + $down =~ s/.*Down: ([0-9]*\.*[0-9]) KB.*/$1/s; + $up =~ s/.*Up: ([0-9]*\.*[0-9]) KB.*/$1/s; + if ($down eq "") { $down = "(off)"; } + if ($up eq "") { $up = $down; } + $output = "-MLdonkey bandwidth stats- Down: $down - Up: $up"; + if (!$server || !$server->{connected} || !$target) + { + Irssi::print $output; + } else + { + Irssi::active_win() -> command('say ' . $output); + } +} + +sub cmd_changed +{ + $host = Irssi::settings_get_str('mldonkey_bandwidth_host'); +} + +Irssi::command_bind('mlbw', 'cmd_mlbw'); +Irssi::signal_add('setup changed', 'cmd_changed'); |