From 1c1d02cdc0bc44f244597b84ebc79fd2f1523db8 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 27 Jun 2021 12:49:30 +0200 Subject: [PATCH] Added alliance member fleets --- dependencies | 1 + lib/NDWeb/Controller/Alliances.pm | 26 ++++++++++++++++++++++++++ root/src/alliances/edit.tt2 | 2 +- root/src/alliances/fleet.tt2 | 25 +++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 root/src/alliances/fleet.tt2 diff --git a/dependencies b/dependencies index 3cabb01..dd82421 100644 --- a/dependencies +++ b/dependencies @@ -17,6 +17,7 @@ - GD::Graph - Email::Simple - Email::StripMIME +- Template::Plugin::JSON Bot deps: diff --git a/lib/NDWeb/Controller/Alliances.pm b/lib/NDWeb/Controller/Alliances.pm index 70c6340..6c9731c 100644 --- a/lib/NDWeb/Controller/Alliances.pm +++ b/lib/NDWeb/Controller/Alliances.pm @@ -124,6 +124,32 @@ sub pscans : Local { } +sub fleet : Local { + my ( $self, $c, $id ) = @_; + my $dbh = $c->model; + + my $query = $dbh->prepare(q{SELECT ship, id FROM ship_stats WHERE id >= 0 ORDER BY id ASC;}); + $query->execute; + $c->stash(ships => $query->fetchall_arrayref({})); + + my $members = $dbh->prepare(q{ +WITH +aus AS (SELECT DISTINCT ON (pid) pid, fid, name,tick + FROM fleets f join fleet_scans fs using (fid) + WHERE mission = 'Full fleet' and name = 'Advanced Unit' + ORDER BY pid,tick DESC) +,ships AS (SELECT pid, tick, ship, amount, id AS ship_id + FROM fleet_ships fs JOIN aus USING(fid) JOIN ship_stats USING(ship)) +SELECT pid, coords(x,y,z), p.race, tick, jsonb_object_agg(ship_id, amount) AS ships + FROM ships JOIN current_planet_stats p USING (pid) + WHERE p.aid = $1 + GROUP BY x,y,z,pid,race,tick; + }); + $members->execute($id); + $c->stash(members => $members->fetchall_arrayref({}) ); + +} + sub postallianceupdate : Local { my ( $self, $c, $id, $order ) = @_; my $dbh = $c->model; diff --git a/root/src/alliances/edit.tt2 b/root/src/alliances/edit.tt2 index cf34eaf..a2689c1 100644 --- a/root/src/alliances/edit.tt2 +++ b/root/src/alliances/edit.tt2 @@ -25,7 +25,7 @@ -

Planet scans.

Export information as text.

+

Planet scans Member fleets

Export information as text.

Alliance size and score vs members Avg alliance size and score vs members diff --git a/root/src/alliances/fleet.tt2 b/root/src/alliances/fleet.tt2 new file mode 100644 index 0000000..1be5518 --- /dev/null +++ b/root/src/alliances/fleet.tt2 @@ -0,0 +1,25 @@ +[% META title = 'Alliance P-Scans' %] + +[% USE JSON %] + + + + + + +[% FOR s IN ships %] + +[% END %] + +[% FOR m IN members %] + + + + +[% fleet = JSON.json_decode(m.ships) %] +[% FOR s IN ships %] + +[% END %] + +[% END %] +
CoordsRaceTick[% s.ship %]
[% m.coords %][% m.race %][% m.tick %][% fleet.${s.id} %]
-- 2.39.2