irssi bandbredds script(som skrivs ut i kanalen/nicket)
Det som skriver till statusbaren lär vara ett vanligt perl-script, lägg upp det här så kanske någon kan hjälpa dig att modifiera det.
ifstat?
varget@lupus:~$ ifstat
eth1 eth0
KB/s in KB/s out KB/s in KB/s out
14.74 135.26 144.93 403.43
16.74 67.03 77.47 392.17
6.72 129.74 141.10 465.57
21.72 83.73 92.99 418.93
3.34 142.08 153.19 441.80
1.41 66.56 75.38 396.41
ifstat verkar trevligt:) Kan man ju använda för att skriva ett eget litet program.
Här kommer annars koden, så om någon perlkunnig vill/kan/orkar får ni gärna ändra så scriptet skriver ut i en kanal/nick (det aktiva fönstret.)
# Mrtg-compatible any statistic loader
# /SET status_min_in - The minimum load to show
# /SET status_min_in - The minimum load to show
# /SET status_refresh - How often the loadavg is refreshed
#
# takes output from mrtg compatible scripts,
# see the mrtg-contrib and mrtgutils package for scripts to load
#
# this one requires /usr/bin/mrtg-ip-acct from mrtgutils package
#
# TODO ; add support for more than one stat at the same time
# TODO : negative amounts?
use Irssi 20011113;
use Irssi::TextUI;
use strict;
use 5.6.0;
use vars qw($VERSION %IRSSI);
# header begins here
$VERSION = "1.0";
%IRSSI = (
authors => "Riku Voipio",
contact => "riku.voipio\@iki.fi",
name => "bandwidth",
description => "shows bandwidth usage in statusbar",
license => "GPLv2",
url => "http://nchip.ukkosenjyly.mine.nu/irssiscripts/",
);
my ($refresh, $last_refresh, $refresh_tag) = (10);
my ($last_in, $last_out) = (0.0,0.0);
my ($min_in, $min_out) = (1.0,1.0);
my ($cur_in, $cur_out, $first_run) = (0.0,0.0,1);
my $command = '/usr/bin/mrtg-ip-acct';
sub get_stats
{
my ($old_in, $old_out) = ($last_in, $last_out);
my @localstats;
if (open my $fh, "$command|")
{
@localstats = <$fh>;
close $fh;
} else {
Irssi::print("Failed to execute $command: $!", MSGLEVEL_CLIENTERROR);
}
for(@localstats[0..1]) {
return unless defined;
return unless /^\d+$/;
}
$last_in=$localstats[0];
$last_out=$localstats[1];
if ($old_out==0){return;}
$cur_out=($last_out-$old_out) / ($refresh*1024);
$cur_in=($last_in-$old_in) / ($refresh*1024);
}
sub stats {
my ($item, $get_size_only) = @_;
#get_stats();
$min_out = Irssi::settings_get_int('stats_min_out');
$min_in = Irssi::settings_get_int('stats_min_in');
$min_in = 0 if $min_in < 0;
$min_out = 0 if $min_out < 0;
if ($cur_in < $min_in and $cur_out <$min_out){
#dont print
if ($get_size_only) {
$item->{min_size} = $item->{max_size} = 0;
}
} else {
$item->default_handler($get_size_only, undef, sprintf("i:%.2f o:%.2f",$cur_in, $cur_out ), 1 );
}
}
sub refresh_stats {
get_stats();
Irssi::statusbar_items_redraw('stats');
}
sub read_settings {
$refresh = Irssi::settings_get_int('stats_refresh');
$command = Irssi::settings_get_str('stats_commandline');
$refresh = 1 if $refresh < 1;
return if $refresh == $last_refresh;
$last_refresh = $refresh;
Irssi::timeout_remove($refresh_tag) if $refresh_tag;
$refresh_tag = Irssi::timeout_add($refresh*1000, 'refresh_stats', undef);
}
Irssi::settings_add_int('misc', 'stats_min_in', $min_in);
Irssi::settings_add_int('misc', 'stats_min_out', $min_out);
Irssi::settings_add_int('misc', 'stats_refresh', $refresh);
Irssi::settings_add_str('misc', 'stats_commandline', $command);
Irssi::statusbar_item_register('stats', '{sb S: $0-}', 'stats');
Irssi::statusbars_recreate_items();
read_settings();
Irssi::signal_add('setup changed', 'read_settings');
- Här är priserna på LG:s nya OLED-arsenal54
- Datorhallar åker på miljardstor skattesmäll – ljög om att utvinna krypto68
- Vad lyssnar du på just nu?13826
- Vilken film såg du senast?13368
- Asus lanserar 8K-skärm med Mini LED44
- [LEK] Gissa spelet15472
- Bästa spelmusik/soundtracks136
- Hifi – bilder på era anläggningar här1521
- Rabbel.se - Ett dagligt ordspel693
- Amazons Fallout-serie regisseras av Jonathan Nolan (Inte den Nolan, men hans brorsa)310
- Säljes Custom speldator
- Säljes Beyerdynamic 770 dt pro 80ohm
- Säljes Gamingdator med Ryzen 7700X och Gigabyte Radeon RX 7900 Gre
- Säljes ASUS TUF GeForce RTX 4070 TI Super 16GB Gaming OC
- Säljes 4090 RTX TUF ASUS OG OC 24GB
- Säljes Lian li Strimer Plus V2
- Säljes Ny/Oöppnad WD BLACK SN850X 1TB NVMe SSD Heatsink
- Säljes LianLi O11 XL, bequiet! 1200W PSU, 32GB G.Skill 6000Mhz CL30, EK Coolstream 360mm radiatorer
- Säljes Vårstäd/Garderobsrens. Datorer, Datordelar, Streaming tillbehör, Vattenkylningsprylar, tillbehör, etc.
- Säljes G.Skill Flare X 16GB (2x8GB) Ryzen / 3200MHz / DDR4 / CL14 / F4-3200C14D-16GFX
- Ikea släpper nytt skärmstativ för 399 kronor35
- Snabbtest: Bli mer Pro med mindre tangentbord17
- Stockholm får en coworking-hubb för spelutvecklare6
- Max spikar priser inför lanseringen104
- Bedragare låtsades vara Lastpass VD med AI27
- SFW! Läckra ROG Zephyrus G14 med ROG Nebula OLED Display8
- Quest 2 får prissänkning för andra gången i år25
- Elgato lanserar tillbehörsserie för ”vanligt folk”12
- Enhance! Edge kan få klassisk sci-fi-funktion16
- Efter konkursryktena – Louqe är tillbaka20