X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=index.pl;h=f19ced961b3656ae6d4742382db50e0ef27a1a1a;hb=6a365a7f7bfedc7b7d45991445bda2eb7d44d39b;hp=e33d5094b19fb635f82237e48a12538d8ea91d2b;hpb=1a2401c5ecba4d15756cadf0229d203ec5d6de54;p=ndwebbie.git diff --git a/index.pl b/index.pl index e33d509..f19ced9 100755 --- a/index.pl +++ b/index.pl @@ -25,6 +25,7 @@ use DBI; use DBD::Pg qw(:pg_types); use strict; + my $cgi = new CGI; chdir $ENV{'DOCUMENT_ROOT'}; @@ -35,9 +36,9 @@ our $PLANET = undef; our $TEMPLATE = undef; our $TICK = undef; -$ND::TEMPLATE = HTML::Template->new(filename => 'skel.tmpl'); +$ND::TEMPLATE = HTML::Template->new(filename => 'templates/skel.tmpl'); -for my $file ("db.pl"){ +for my $file ("db.pl","include.pl"){ unless (my $return = do $file){ warn "couldn't parse $file: $@" if $@; warn "couldn't do $file: $!" unless defined $return; @@ -49,22 +50,45 @@ for my $file ("db.pl"){ ,undef,$ENV{'REMOTE_USER'}); ($TICK) = $DBH->selectrow_array('SELECT tick()',undef); -$TEMPLATE->param(TICK => $TICK); -print header; +my $query = $DBH->prepare('SELECT groupname,attack,gid from groupmembers NATURAL JOIN groups WHERE uid = ?'); +$query->execute($UID); + +our $ATTACKER = 0; +undef our %GROUPS; +while (my ($name,$attack,$gid) = $query->fetchrow()){ + $GROUPS{$name} = $gid; + $ATTACKER = 1 if $attack; +} + -my $page = 'main.pl'; -if (param('page') =~ /^(main)$/){ - $page = "$1.pl"; +our $LOG = $DBH->prepare('INSERT INTO log (uid,text) VALUES(?,?)'); + +my $page = 'main'; +if (param('page') =~ /^(main|check)$/){ + $page = $1; } -unless (my $return = do $page){ - warn "couldn't parse $page: $@" if $@; - warn "couldn't do $page: $!" unless defined $return; - warn "couldn't run $page" unless $return; +print header; +$ND::BODY = HTML::Template->new(filename => "templates/${page}.tmpl"); + +unless (my $return = do "${page}.pl"){ + print "

couldn't parse $page: $@

" if $@; + print "

couldn't do $page: $!

" unless defined $return; + print "

couldn't run $page

" unless $return; } +my $fleetupdate = $DBH->selectrow_array('SELECT landing_tick FROM fleets WHERE uid = ? AND fleet = 0',undef,$UID); + +$TEMPLATE->param(Tick => $TICK); +$TEMPLATE->param(isMember => (($TICK - $fleetupdate < 24) || isScanner()) && $PLANET && isMember()); +$TEMPLATE->param(isHC => isHC()); +$TEMPLATE->param(isDC => isDC()); +$TEMPLATE->param(isBC => isBC()); +$TEMPLATE->param(isAttacker => $ATTACKER && (!isMember() || ((($TICK - $fleetupdate < 24) || isScanner()) && $PLANET))); + +$ND::TEMPLATE->param(BODY => $ND::BODY->output); print $TEMPLATE->output; @@ -74,5 +98,7 @@ $UID = undef; $PLANET = undef; $TEMPLATE = undef; $TICK = undef; +%GROUPS = undef; +$ND::BODY = undef; exit;