X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=yarrg%2Fweb%2Froutetextstring;h=a9a0de83d4bea26c2054b3256c9f5a3632a208c8;hp=bf4a4a9988fe9b237736cac3ca06b67353fab4cf;hb=31e88e03ff6e24e5c744b7f3f02346221ae5bab0;hpb=7548896aab16af6ec42c6be252b7f5f876e2fea0 diff --git a/yarrg/web/routetextstring b/yarrg/web/routetextstring index bf4a4a9..a9a0de8 100644 --- a/yarrg/web/routetextstring +++ b/yarrg/web/routetextstring @@ -1,3 +1,35 @@ +%# This is part of the YARRG website. YARRG is a tool and website +%# for assisting players of Yohoho Puzzle Pirates. +%# +%# Copyright (C) 2009 Ian Jackson +%# Copyright (C) 2009 Clare Boothby +%# +%# YARRG's client code etc. is covered by the ordinary GNU GPL (v3 or later). +%# The YARRG website is covered by the GNU Affero GPL v3 or later, which +%# basically means that every installation of the website will let you +%# download the source. +%# +%# This program is free software: you can redistribute it and/or modify +%# it under the terms of the GNU Affero General Public License as +%# published by the Free Software Foundation, either version 3 of the +%# License, or (at your option) any later version. +%# +%# This program is distributed in the hope that it will be useful, +%# but WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%# GNU Affero General Public License for more details. +%# +%# You should have received a copy of the GNU Affero General Public License +%# along with this program. If not, see . +%# +%# Yohoho and Puzzle Pirates are probably trademarks of Three Rings and +%# are used without permission. This program is not endorsed or +%# sponsored by Three Rings. +%# +%# +%# This Mason component parses textual strings giving lists of islands +%# and archipelagoes, ie textual route strings. +%# <%args> $ocean $format @@ -13,9 +45,9 @@ $string use CommodsWeb; use HTML::Entities; use JSON; +use Data::Dumper; -db_setocean($ocean); -db_connect(); +my $dbh= dbw_connect($ocean); my $sth= $dbh->prepare("SELECT archipelago,islandid,islandname FROM islands WHERE islandname LIKE ? @@ -25,7 +57,7 @@ my $sth= $dbh->prepare("SELECT archipelago,islandid,islandname my (@results, $canontext); my ($output, $output_wrong); -if ($format =~ 'json') { +if ($format =~ /json/) { $r->content_type($ctype or $format); $output= sub { print to_json({ success => 1, @@ -37,10 +69,15 @@ if ($format =~ 'json') { show => $_[0], })}; } -if ($format =~ 'return') { +if ($format =~ /return/) { $output= sub { return { Error => '', Results => \@results }; }; $output_wrong= sub { return { Error => $_[0] }; }; } +if ($format =~ /dump/) { + $r->content_type('text/plain'); + $output_wrong= sub { print Dumper(\@_); }; + $output= sub { print Dumper(\@results, $canontext); }; +} foreach my $each (split m#[/|,]#, $string) { $each =~ s/^\s*//; $each =~ s/\s*$//; $each =~ s/\s+/ /g; @@ -72,7 +109,6 @@ foreach my $each (split m#[/|,]#, $string) { } $canontext= join ' | ', map { $_->[2] } @results; - return $output->();