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');
- Idag Google skjuter på utfasning av tredjepartskakor till 2025 14
- Idag Skadlig kod sprids via lömska Github-länkar 10
- 22 / 4 Europol ställer sig emot end-to-end-kryptering 138
- 22 / 4 Svenska speljätten Embracer splittras – blir tre separata bolag 16
- 22 / 4 Snabbkoll: Brukar du handla begagnad teknik? 90
- Europol ställer sig emot end-to-end-kryptering138
- Testpilot: MSI MPG 271QRX - Färgsprakande OLED i 360 Hz7
- Verifiera konto Mejl3
- Dagens fynd — Diskussionstråden49478
- Hur och varför använder du Discord?17
- Tele 2 TV Flexibel - En review av tjänsten efter 6 månaders användning8
- Tråden för hörlursgalningar! Lurar, förstärkare, dacs, pads osv osv It´s all here!19824
- Valve täpper till kryphål i Steam-återbetalningar0
- Nyhetstips!422
- Debian 12 KDE panel problem2
- Säljes Purism Librem 5
- Köpes Elitebook 830-840 G6-G9
- Köpes GTX 1070 - RTX 3060 eller liknande
- Säljes Unifi U6 Mesh Accesspunkt - Oanvänd/ny
- Säljes Xbox one S / PS VITA / Möss/tangentbord / Datorspel
- Köpes <200mm grafikkort
- Köpes Enkelt micro AM4 alt. 3770 + div.
- Säljes Galaxy Z Fold 3 8/256GB
- Köpes Laptop köpes!
- Säljes i8-8400 16gb z370-a PRO + CM 212 Evo
- Valve täpper till kryphål i Steam-återbetalningar0
- Testpilot: MSI MPG 271QRX - Färgsprakande OLED i 360 Hz7
- Google skjuter på utfasning av tredjepartskakor till 202514
- Skadlig kod sprids via lömska Github-länkar10
- Microsoft blockerar äldre processorer i Windows 11 24H232
- Meta öppnar upp Quests OS – vill bli VR-världens Android11
- Googles nästa Chromecast får dubblerad lagring68
- EK Water Blocks lovar bot och bättring16
- Tiny11 gör Windows 11-installationen lätt25
- SFW! Känn doften av nyklippt gräs med Dreame Roboticmower A126
Externa nyheter
Spelnyheter från FZ
- Fallout 76 lockar över 1 miljon spelare på en enda dag idag
- Snabbkollen – Vilka speltjänster prenumererar du på? idag
- Meta släpper operativsystem för VR-headsets idag
- Starship Troopers: Extermination har uppdaterats med nya klasser idag
- Ubisoft-läckare: Watch Dogs är död och begraven som spelserie idag