From: Ian Jackson Date: Fri, 3 Jul 2009 17:40:20 +0000 (+0100) Subject: factor out get_arches_islands X-Git-Tag: 1.9.2~63 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=commitdiff_plain;h=a433b27839ebdaa936803341a285e4ecc6a09105 factor out get_arches_islands --- diff --git a/pctb/database-info-fetch b/pctb/database-info-fetch index e83f685..b7ebe41 100755 --- a/pctb/database-info-fetch +++ b/pctb/database-info-fetch @@ -27,7 +27,7 @@ use strict (qw(vars)); use LWP::UserAgent; use JSON; -#use Data::Dumper; +use Data::Dumper; @ARGV==1 or die "You probably don't want to run this program directly.\n"; our ($which) = shift @ARGV; @@ -67,24 +67,29 @@ sub ptcl ($) { die "$_ $& ?" if m/[^-+'"# 0-9a-z]/i; p("{$_[0]}"); } - -sub main__island () { + +sub get_arches_islands () { my $ocean= $ENV{'YPPSC_OCEAN'}; die unless $ocean; my $url= "$pctb/islands.php?oceanName=".uc $ocean; my $resp= $ua->get($url); die $resp->status_line unless $resp->is_success; $jsonresp= $resp->content; my $jobj= jsonToObj($resp->content); - my @arches= jparsetable($jobj, 'arches'); - my @islands= jparsetable($jobj, 'islands'); + my $arches= [ jparsetable($jobj, 'arches') ]; + my $islands= [ jparsetable($jobj, 'islands') ]; + return ($arches,$islands); +} + +sub main__island () { + my ($arches, $islands) = get_arches_islands(); # print Dumper(\@arches, \@islands); my $islands_done=0; - foreach my $arch (sort_by_name(@arches)) { + foreach my $arch (sort_by_name(@$arches)) { # print Dumper($arch); my $aname= $arch->{'name'}; die "$jsonresp ?" unless defined $aname; ptcl($aname); p(' '); ptcl($aname); p(" {\n"); - foreach my $island (sort_by_name(@islands)) { + foreach my $island (sort_by_name(@$islands)) { my $iname= $island->{'name'}; die "$jsonresp $aname ?" unless defined $iname; next unless $arch->{'id'} == $island->{'arch'}; @@ -93,7 +98,7 @@ sub main__island () { } p("}\n"); } - die "$jsonresp $islands_done ?" unless $islands_done == @islands; + die "$jsonresp $islands_done ?" unless $islands_done == @$islands; } sub main__sunshinewidget () {