X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Flookup;h=a2ccc8de0a80df6b3659fafc95bdc41976888deb;hb=f7c3c04f684b0e9cac4518beeece11853ef75109;hp=6abba56f6489114332b113ff18a588a6c4e09683;hpb=8b834ab5c59e8ae47eedd971c5332e793966231d;p=ypp-sc-tools.db-live.git diff --git a/yarrg/web/lookup b/yarrg/web/lookup index 6abba56..a2ccc8d 100755 --- a/yarrg/web/lookup +++ b/yarrg/web/lookup @@ -35,14 +35,9 @@ %doc> <%perl> -my %a; my %ahtml; my @vars; - -# for output: -my @archipelagoes; -my @islandids; -my %islandid2; +my %styles; #---------- "mode" argument parsing and mode menu at top of page ---------- @@ -61,7 +56,36 @@ my %islandid2; }, { Name => 'Query', Before => 'Query: ', Values => [ [ 'route', 'Trades for route' ], + [ 'commod', 'Prices for commodity' ], + [ 'offers', 'Offers at location' ], + [ 'routesearch', 'Find profitable route' ], [ 'age', 'Data age' ] ] + }, { Name => 'BuySell', + Before => '', + Values => [ [ 'buy_sell', 'Buy and sell' ], + [ 'sell_buy', 'Sell and buy' ], + [ 'buy', 'Buy offers only' ], + [ 'sell', 'Sell offers only' ], + ], + QuerySpecific => 1, + }, { Name => 'ShowBlank', + Before => '', + Values => [ [ 0, 'Omit islands with no offers' ], + [ 'show', 'Show all islands' ], + ], + QuerySpecific => 1, + }, { Name => 'ShowStalls', + Before => '', + Values => [ [ 0, 'Show total quantity at each price' ], + [ 1, 'Show individual stalls' ], + ], + QuerySpecific => 1, + }, { Name => 'RouteSearchType', + Before => 'Type of routes to search for: ', + Values => [ [ 0, 'Open-ended' ], + [ 1, 'Circular' ], + ], + QuerySpecific => 1, }); foreach my $var (@vars) { @@ -74,37 +98,83 @@ foreach my $var (@vars) { $val= [ $val, encode_entities($val) ]; } if (exists $ARGS{$lname}) { - $a{$name}= $ARGS{$lname}; - my @html= grep { $_->[0] eq $a{$name} } @{ $var->{Values} }; + $styles{$name}= $ARGS{$lname}; + my @html= grep { $_->[0] eq $styles{$name} } + @{ $var->{Values} }; $ahtml{$name}= @html==1 ? $html[0][1] : '???'; } else { - $a{$name}= $var->{Values}[0][0]; + $styles{$name}= $var->{Values}[0][0]; $ahtml{$name}= $var->{Values}[0][1]; } } %perl> -
+% } <%perl> -my %baseqf; foreach my $var (@vars) { my $lname= lc $var->{Name}; next unless exists $ARGS{$lname}; $baseqf{$lname}= $ARGS{$lname}; } -my %queryqf; foreach my $var (keys %ARGS) { next unless $var =~ - m/^(?:routestring|islandid\d|archipelago\d|debug)$/; + m/^(?: (?:route|commod|capacity|capital|island)string | + lossperleague | distance | + commodid | + islandid \d | + archipelago \d | + debug | + [RT]\w+ + )$/x; my $val= $ARGS{$var}; next if $val eq 'none'; $queryqf{$var}= $val; @@ -116,11 +186,13 @@ my $quri= sub { $uri->path_query(); }; -foreach my $var (@vars) { +my $prselector_core= sub { + my ($var)= @_; + return if printable($m); my $name= $var->{Name}; my $lname= lc $var->{Name}; my $delim= $var->{Before}; - my $canon= &{$var->{CmpCanon}}($a{$name}); + my $canon= &{$var->{CmpCanon}}($styles{$name}); my $cvalix= 0; foreach my $valr (@{ $var->{Values} }) { print $delim; $delim= "\n|\n"; @@ -143,253 +215,63 @@ foreach my $var (@vars) { $cvalix++; } print "
\n\n"; -} - -#---------- initial checks, startup, main entry form ---------- - -dbw_connect($a{Ocean}); - -%perl> -<%args> -$debug => 0 -$routestring => '' -%args> - -
%#---------- debugging and epilogue ---------- @@ -417,3 +299,8 @@ use HTML::Entities; use URI::Escape; %init> +<%cleanup> + +$mydbh->rollback() if $mydbh; + +%cleanup>