';
my $nr_start = $start;
my $nr_end = $end;
my %online;
my $rank;
my $nr;
foreach $_ (@counts) {
if (-f "data/user/counts/$_") {
if (s/.online//g) {
open TOTAL, "
;
close TOTAL;
$online{sprintf '%.2f', $total / 3600} = $_;
}
}
}
print '', $q->b('Rankings:'), $q->br, '
#: | St.: | Name: |
';
if (not $nr_start) {
$nr_start = 1;
}
if (not $nr_end) {
$nr_end = 20;
}
foreach $wert (reverse (sort { $a <=> $b } keys %online)) {
++$nr;
if ($online{$wert} eq $alias) {
$rank = $nr;
last if $nr > $nr_end;
}
next if ($nr < $nr_start or $nr > $nr_end);
print q[| ] . $nr . q[ | ] . $wert . "h | $online{$wert} |
\n";
}
print '
', $q->hr;
$nr_start -= 20;
$nr_end -= 20;
print "Rankings von
$nr_start bis $nr_end anzeigen ...
" if $nr_start > 0;
$nr_start += 40;
$nr_end += 40;
print "Rankings von
$nr_start bis $nr_end anzeigen ...", $q->br, $q->br, $q->b("$alias, Du befindest Dich auf Rank $rank
");
}
elsif ($var eq 'del') {
# print '', $q->b('Alte Benutzer löschen:'), $q->br, "Benutzer, die sich 1440 Stunden (60 Tage) nicht mehr in das System eingeloggt haben, werden gel\366scht.", $q->br, $q->br;
opendir USER, 'data/user/options';
my(@user) = readdir USER;
closedir USER;
@user = sort(@user);
my $i = 0;
my $j;
my $k = 0;
my $l = 0;
my $full = $tmp;
foreach $_ (@user) {
if (-f "data/user/lastlogin/$_") {
open LOGIN, ";
close LOGIN;
$login = sprintf('%.2f', (time - $login) / 3600);
++$j;
if (999 < $login and $login < 1440) {
++$k;
print $q->font({-'color', 'ff6600'}, $q->b("$j($k) $_ Letztes Login vor: " . $login . 'h')), $q->br, "\n" if $full ne undef;
}
elsif ($login < 48) {
++$l;
print $q->font({-'color', 'ffffef'}, $q->b("$j($l) $_ Letztes Login vor: " . $login . 'h')), $q->br, "\n" if $full ne undef;
}
elsif ($login < 1440) {
print $q->font({-'color', 'ffa500'}, $q->b("$j($l) $_ Letztes Login vor: " . $login . 'h')), $q->br, "\n" if $full ne undef;
}
else {
++$k;
&kill_it($_, $i++, $login);
}
}
elsif (-f "data/user/options/$_") {
&kill_it($_, $i++);
}
}
print $q->hr if $full ne undef;
print '
', $q->div($q->b("$j Benutzer befinden sich in der Datenbank!", $q->br, $q->font({-'color', 'ffffef'}, "$l Benutzer haben sich innerhalb der letzten 48 Stunden eingeloggt!"), $q->br, $q->font({-'color', 'ffa500'}, "$k Benutzer haben sich über 1000 Stunden nicht mehr eingeloggt!"), $q->br, $q->font({-'color', 'ff0000'}, "$i Benutzer wurden gerade eben gel\366scht!")), $q->br, $q->br, 'PS: Jeder registrierte Benutzername wird nur einmal gezählt!');
print $q->br, $q->div('(', $q->a({-'href', "chat?request=statistic&var=del&tmp=true&alias=$alias&tmpid=$tmpid"}, 'Vollständige Ansicht'), ')') if $full eq undef;
}
elsif ($var eq 'var') {
print '', $q->b('Server Umgebungsvariablen:'), $q->br, $q->br, 'Die Serverumgebungsvariablen können nur von Oberwächtern oder höher eingesehen werden!', $q->br, $q->br;
if (7 <= &hierachie($alias)) {
while (($key, $value) = each %ENV) {
print "$key = $value\n", $q->br;
}
}
print '
';
}
elsif ($var eq 'statistic') {
print $q->div($q->b('yChat-DB Statistik:')), $q->br;
$files = 0;
$size = 0;
$directorys = 1;
&zaehle('data');
$size = sprintf('%.2f', $size / 1048576);
print $q->div("Dateien insgesamt: $files", $q->br, "MB insgesamt: $size", $q->br, "Verzeichnisse insgesamt: $directorys");
}
print $q->end_html;
}
sub zaehle {
local($dir, $data) = @_;
$dir = "$dir/$data" if $data ne undef;
opendir DATA, $dir;
local(@data) = readdir DATA;
closedir DATA;
$files2 = 0;
foreach $_ (@data) {
if (-f "$dir/$_") {
++$files;
++$files2;
$size += -s "$dir/$_";
}
elsif (-d "$dir/$_" and $_ ne '.' and $_ ne '..') {
++$directorys;
&zaehle($dir, $_);
}
}
}
sub kill_it {
my($rm, $nr, $login) = @_;
$login = 'XXXXXX' if $login eq undef;
print $q->font({-'color', 'ff0000'}, $q->b("$j($nr) $rm Letztes Login vor: " . $login . 'h (wurde gelöscht)')), $q->br, "\n";
print q[];
print 'options ' if unlink "data/user/options/$rm";
print 'profiles ' if unlink "data/user/profiles/$rm";
print 'gbooks ' if unlink "data/user/gbooks/$rm";
print 'counts ' if unlink "data/user/counts/$rm";
print 'counts.online ' if unlink 'data/user/counts/' . $rm . '.online';
print 'lastlogin ' if unlink "data/user/lastlogin/$rm";
print 'memos' if unlink "data/user/memos/$rm";
print '
';
open DEL, '>>data/kill';
print DEL "$rm wurde automatisch gekillt [$alias]\n";
close DEL;
return;
}
1;