#!/usr/bin/perl # yChat - Copyright by Paul C. Bütow use CGI; $q = new CGI; require config; print $q->header(); $alias = $q->param("alias"); $tmpid = $q->param("tmpid"); &secure_checkid($alias); $room = $q->param("room"); my @away = &prove_away($alias,$room,"return_list"); for ($i=0;$i<=$#away;$i+=2) { goto DONOTCOUNT if ($away[$i] eq $alias); } open(DATEI,"; close DATEI; if ($oldstamp > (time - 40)) { open(DATEI,"; close DATEI; my $total = (time-$oldstamp+$online); open DATEI,">data/user/counts/$alias.online"; print DATEI $total; close DATEI; } DONOTCOUNT: unless (-d "data/online/rooms/$room") { mkdir "data/online/rooms/$room", 0777; } unless (-f "data/online/rstat/$room") { open(DATEI,">data/online/rstat/$room"); # Raumbesetzerstatus setzen print DATEI "0\n\n$alias\n"; close DATEI; } open(DATEI,">data/online/users/$alias"); print DATEI time; close DATEI; open(DATEI,">data/online/rooms/$room/$alias"); print DATEI time; close DATEI; open(DATEI,"; close DATEI; &check_online if ($provetime < (time - 30)); print< HEADER opendir(ROOM,"data/online/rooms/".$room); my @room = sort(readdir(ROOM)); closedir(ROOM); my $chatter = $#room-1; my @besetzer = &prove_besetzer(undef,$room,"return_list"); open WA, "; close WA; open OW, "; close OW; print "$room ($chatter):"; foreach $online (@room) { if (-f "data/online/rooms/$room/$online") { for ($i=0;$i<=$#away;$i+=2) { chomp $away[$i+1]; if ($away[$i] eq $online) { my $away = $away[$i+1]; print ""; goto WEITER; } } if ($online eq "red_pepper") { print ""; goto WEITER; } if ($online eq $admin) { print ""; goto WEITER; } foreach(@ow) { chomp; if ($_ eq $online) { print ""; goto WEITER; } } foreach(@wa) { chomp; if ($_ eq $online) { print ""; goto WEITER; } } foreach(@besetzer) { chomp; if ($_ eq $online) { print ""; goto WEITER; } } print ""; WEITER: print ""; } } print "
$away
Die Unschuld vom Land
Administrator
Oberwächter
Wächter
Raumbesetzer
$online
", $q->end_html;