X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Fweb%2Fqtextstringcheck;fp=yarrg%2Fweb%2Fqtextstringcheck;h=41960188fa6b896b32d9d286e569131e8cfb1c99;hb=3766fb8d851fe463a5b8b469cf148c28efb1c578;hp=0000000000000000000000000000000000000000;hpb=38e2919be138f8a77eef7a2fc93d34eff8897f5e;p=ypp-sc-tools.web-live.git diff --git a/yarrg/web/qtextstringcheck b/yarrg/web/qtextstringcheck new file mode 100644 index 0000000..4196018 --- /dev/null +++ b/yarrg/web/qtextstringcheck @@ -0,0 +1,73 @@ +<%doc> + + 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 handles the generic output format options for + text string parsers/checkers like check_routestring. + + +<%flags> +inherit => undef + +<%perl> + +use JSON; +use Data::Dumper; +use HTML::Entities; + +my ($emsg, $canontext, $results)= $m->call_next(); + +$emsg='' if !defined $emsg; + +my $format= $ARGS{'format'}; +my $ctype= $ARGS{'ctype'}; + +if ($format =~ /json/) { + $r->content_type($ctype or $format); + my $jobj= { + success => 1*!length $emsg, + show => (length $emsg ? encode_entities($emsg) : + length $canontext ? encode_entities($canontext) : + ' '), + }; + print to_json_shim($jobj); +} +if ($format =~ /return/) { + return { + Error => $emsg, + Results => length $emsg ? $results : undef + }; +} +if ($format =~ /dump/) { + $r->content_type('text/plain'); + print Dumper($emsg, $canontext, $results); +} + +