X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=index.pl;h=061cbfa089e6e417b4f3c7a1e35e563380034da1;hb=2aaf771774ce6e5ea4c063c767d8bd3a0ecdd901;hp=68276389f5ecd7b3f3bf9a43d54da2bf2e26d2fe;hpb=ebefd2fb237e23a0f0a189928d3059a54ebabbd5;p=ndwebbie.git diff --git a/index.pl b/index.pl index 6827638..061cbfa 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'}; @@ -37,7 +38,7 @@ our $TICK = undef; $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; @@ -50,37 +51,58 @@ for my $file ("db.pl"){ ($TICK) = $DBH->selectrow_array('SELECT tick()',undef); + my $query = $DBH->prepare('SELECT groupname,attack,gid from groupmembers NATURAL JOIN groups WHERE uid = ?'); $query->execute($UID); our $ATTACKER = 0; -our @GROUPS = (); +undef our %GROUPS; while (my ($name,$attack,$gid) = $query->fetchrow()){ - push @GROUPS,{name => $name, gid => $gid}; + $GROUPS{$name} = $gid; $ATTACKER = 1 if $attack; } -$TEMPLATE->param(Tick => $TICK); -$TEMPLATE->param(isMember => 1); -$TEMPLATE->param(isAttacker => $ATTACKER); - - +our $LOG = $DBH->prepare('INSERT INTO log (uid,text) VALUES(?,?)'); my $page = 'main'; -if (param('page') =~ /^(main)$/){ +if (param('page') =~ /^(main|check|motd|points|covop|top100|launchConfirmation|addintel|defrequest|raids)$/){ $page = $1; } -$ND::BODY = HTML::Template->new(filename => "templates/${page}.tmpl"); +our $XML = 0; +$XML = 1 if param('xml') and $page =~ /^(raids)$/; + +if ($XML){ + print header(-type=>'text/xml'); + $ND::TEMPLATE = HTML::Template->new(filename => "templates/xml.tmpl"); + $ND::BODY = HTML::Template->new(filename => "templates/${page}.xml.tmpl"); +}else{ + 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; + print "

couldn't parse $page: $@

" if $@; + print "

couldn't do $page: $!

" unless defined $return; + print "

couldn't run $page

" unless $return; } -print header; +unless ($XML){ + 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))); + if ($ATTACKER && (!isMember() || ((($TICK - $fleetupdate < 24) || isScanner()) && $PLANET))){ + $ND::TEMPLATE->param(Targets => listTargets()); + } + +} $ND::TEMPLATE->param(BODY => $ND::BODY->output); print $TEMPLATE->output; @@ -91,7 +113,7 @@ $UID = undef; $PLANET = undef; $TEMPLATE = undef; $TICK = undef; -@GROUPS = undef; +%GROUPS = undef; $ND::BODY = undef; exit;