chiark / gitweb /
Normalise commodity name case (from uploads)
[ypp-sc-tools.db-test.git] / yarrg / dictionary-update-receiver
index eee7d1464caaadba6834b3ca185f7f047afce60f..feef04b641e23a2ccbfa04a309f8a9dafd42ccce 100755 (executable)
@@ -3,37 +3,40 @@
 # This script is invoked when the yarrg wants to send an update to the
 # dictionary server.  See README.privacy.
 
-# This is part of ypp-sc-tools, a set of third-party tools for assisting
-# players of Yohoho Puzzle Pirates.
+# 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 <ijackson@chiark.greenend.org.uk>
 #
 # This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# 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 General Public License for more details.
+# GNU Affero General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License
+# You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # 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.
 
-
 # upload testing runes:
 #
 # YPPSC_YARRG_DICT_UPDATE=./ YPPSC_YARRG_DICT_SUBMIT=./ ./yarrg --ocean midnight --pirate aristarchus --find-island --same --raw-tsv >raw.tsv  
 # ./dictionary-manager --debug --approve-updates '' . .
 
+BEGIN { unshift @INC, qw(.) }
+
 use strict (qw(vars));
 use POSIX;
 
+no warnings qw(exec);
+
 $CGI::POST_MAX= 1024*1024;
 $CGI::DISABLE_UPLOADS= 1;
 
@@ -41,6 +44,15 @@ use CGI qw/:standard -private_tempfiles/;
 use IO::Pipe;
 use IO::Handle;
 
+use Commods;
+
+if (param('get_source')) {
+    # There's another copy of this in commod-update-receiver.  Sorry.
+    print header('application/octet-stream') or die $!;
+    source_tarball('..', sub { print $_[0] or die $!; });
+    exit 0;
+}
+
 my $aadepth=2;
 
 #---------- pixmaps ----------
@@ -205,15 +217,7 @@ if (defined $ocean && defined $pirate) {
     $pirate= '';
 }
 
-my $caller= $ENV{'REMOTE_ADDR'};
-$caller= 'LOCAL' unless defined $caller;
-
-my $fwdf= $ENV{'HTTP_X_FORWARDED_FOR'};
-if (defined $fwdf) {
-    $fwdf =~ s/\s//g;
-    $fwdf =~ s/[^0-9.,]/?/g;
-    $caller= "$fwdf,$pirate";
-}
+my $caller= cgi_get_caller();
 
 my $kind;
 my @xa;