Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use warnings;
- use strict;
- use utf8;
- use Xchat ':all';
- use Switch;
- Xchat::hook_command('sysinfo', 'sysinfo');
- sub sysinfo {
- if(defined $_[0][1]) {
- sysinfo_l();
- return undef;
- }
- my $format = 'os~[ %os% ] distro~[ %distro% ] machine~[ %machine% ] cpu~[ %cpu% ] battery~[ %battery% ] mem~[ %mem% ] disk~[ %disk% ] video~[ %video% ] sound~[ %sound% ] network~[ %network% ] temp~[ %temp% ] uptime~[ %uptime% ]';
- 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/;
- 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];
- $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 .= $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;
- my $ret = '';
- 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";
- }
- return $ret;
- }
- sub mem_info() {
- my $ret = '';
- my @tmp = split(/\n/, `cat /proc/meminfo`);
- my $total = $tmp[0];
- my $free = $tmp[1];
- }
Add Comment
Please, Sign In to add comment