Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use warnings;
- use strict;
- use utf8;
- use Xchat ':all';
- Xchat::hook_command('sysinfo', 'sysinfo');
- sub sysinfo {
- if(defined $_[0][1]) {
- sysinfo_l();
- return undef;
- }
- #my $format = "\x0F\x02\x0302os~\x03[\x02 %os% \x02] \x0302distro~\x03[\x02 %distro% \x02] \x0302machine~\x03[\x02 %machine% \x02] \x0302cpu~\x03[\x02 %cpu% \x02] \x0302battery~\x03[\x02 \x02%battery%\x02 \x02] ";
- my $format = "\x0F\x02\x0302os~\x03[\x02 %os% \x02] \x0302distro~\x03[\x02 %distro% \x02] \x0302machine~\x03[\x02 %machine% \x02] \x0302cpu~\x03[\x02 %cpu% \x02] ";
- $format .= "\x0302mem~\x03[\x02 %mem% \x02] \x0302disk~\x03[\x02 %disk% \x02] \x0302video~\x03[\x02 %video% \x02] \x0302sound~\x03[\x02 %sound% \x02] ";
- $format .= "\x0302network~\x03[\x02 %network% \x02] \x0302temp~\x03[\x02 %temp% \x02] \x0302uptime~\x03[\x02 %uptime% \x02]\x02";
- my $os = get_os(); $format =~ s/\%os\%/$os/;
- my $distro = get_distro(); $format =~ s/\%distro\%/$distro/;
- my $cpu = get_cpu(); $format =~ s/\%cpu\%/$cpu/;
- my $name = machine_name(); $format =~ s/\%machine\%/$name/;
- #my $battery = batteryinfo(); $format =~ s/\%battery\%/$battery/;
- my $mem = mem_info(); $format =~ s/\%mem\%/$mem/;
- my $disk = disk_info(); $format =~ s/\%disk\%/$disk/;
- my $video = video_info(); $format =~ s/\%video\%/$video/;
- Xchat::command('MSG ' . Xchat::get_info('channel') . ' ' . $format);
- }
- sub get_os {
- my $temp = `uname -srm`;
- chomp($temp);
- return $temp;
- }
- sub get_distro {
- my $temp = `cat /etc/issue`;
- $temp = (split(/\\/, $temp))[0];
- $temp =~ s/\s+$//;
- return $temp;
- }
- sub machine_name() {
- my $temp = `uname -n`;
- chomp($temp);
- return $temp;
- }
- sub get_cpu() {
- my @temp = split(/\n/, `cat /proc/cpuinfo`);
- my $ret = '';
- my $model; my $mhz; my $cores;
- foreach my $i (@temp) {
- my @tmp = split(/:/, $i);
- my $label = $tmp[0];
- next unless defined $label;
- $label =~ s/\s//g;
- $label =~ s/.[^A-z]//g;
- if ($label eq 'modelname') {
- $model = (split(/:\s/, $i))[1];
- }
- elsif($label eq 'cpuMHz') {
- $mhz = (split(/:\s/, $i))[1];
- }
- elsif($label eq 'cpucores') {
- $cores = (split(/:\s/, $i))[1];
- }
- }
- $ret .= $model . ' ';
- $ret .= sprintf("%.0f", $mhz) . 'MHz ';
- $ret .= $cores . ' cores';
- return $ret;
- }
- sub strmult {
- my $ret = '';
- for(my $i = 0; $i ne $_[1]; $i++) { $ret .= $_[0]; }
- return $ret;
- }
- sub batteryinfo {
- my @battery = split(/\,/, (split(/\s/, `acpi`, 3))[2], 3);
- $battery[1] =~ s/\s//g;
- my @temp = split(//, $battery[1]);
- chomp($battery[-1]);
- my $temp = @temp;
- if($temp eq 2) {
- return "\00307,01[\003\00303,01|\003\00305,01---------\003\00307,01]: \003\00305,01" . $battery[1] . " \003";
- }
- elsif($temp eq 4) {
- if(defined $battery[2]) {
- return "\00300,01[\003\00303,01||||||||||\003\00300,01]: \003\00309,01" . $battery[1] . " \003";
- }
- else {
- return "\00300,01[\003\00303,01||||||||||\003\00300,01]: \003\00309,01" . $battery[1] . " \003";
- }
- }
- else {
- my $prec = int($temp[0]);
- my $red = 10 - $prec;
- my $ret = '';
- $ret .= "\00300,01[\003\00303,01" . strmult('|', $prec) . "\003\00305,01" . strmult('-', $red) . "\003\00300,01]: \003";
- if($prec < 6) {
- if($prec < 3) {
- $ret .= "\00305,01";
- }
- else {
- $ret .= "\00308,01";
- }
- }
- else {
- if($prec < 9) {
- $ret .= "\00303,01";
- }
- else {
- $ret .= "\00309,01";
- }
- }
- $ret .= $battery[1];
- $ret .= " \003\x0F";
- return $ret;
- }
- }
- sub mem_info() {
- my $ret = '';
- my @tmp = split(/\n/, `cat /proc/meminfo`);
- my $total = $tmp[0];
- my $free = $tmp[1];
- $total =~ m/.+?\s+(\d+)\s/;
- $total = int($1);
- $total /= 1000;
- $free =~ m/.+?\s+(\d+)\s/;
- $free = int($1);
- $free /= 1000;
- $ret .= "TotalMem: " . sprintf("%.0f MB", $total) . " FreeMem: " . sprintf("%.0f MB", $free);
- return $ret;
- }
- sub disk_info() {
- my $ret = '';
- my $df = `df -lm --total`;
- my @split_up = split(/\n/, $df);
- foreach my $i (@split_up) {
- chomp($i);
- $i =~ s/(\s+|\t+)/ /g;
- my @sub_split = split(/\s/, $i);
- if($sub_split[0] eq "total")
- {
- $ret .= "Disk Size: " . $sub_split[3] . "MB(" . sprintf("%.1f", int($sub_split[3]) / 1000) . "GB) Disk Used: " . $sub_split[2] . "MB(" . sprintf("%.1f", int($sub_split[2]) / 1000) . "GB) " . $sub_split[4] . " Usage";
- }
- }
- return $ret;
- }
- sub video_info() {
- my $vga = `lspci | grep -i vga`;
- $vga = (split(/:/, $vga))[-1];
- $vga =~ s/^\s+//;
- $vga =~ s/\s+$//;
- $vga =~ s/\[/(/;
- $vga =~ s/\]/)/;
- if($vga =~ m/^ATI\s/i) {
- $vga =~ s/^ATI/\x0300,05\x02 ATI \x02\x03/i;
- }
- elsif($vga =~ m/^NVIDIA\s/i) {
- $vga =~ s/^NVIDIA/\x0301,09\x02@\x02\x03\x0300,01\x02NVIDIA \x02\x03/i;
- }
- return $vga;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement