diff options
-rw-r--r-- | conf/httpd.conf | 3 | ||||
-rwxr-xr-x | web/rss.cgi | 20 |
2 files changed, 17 insertions, 6 deletions
diff --git a/conf/httpd.conf b/conf/httpd.conf index 46f0f0ffb..ee1734ab1 100644 --- a/conf/httpd.conf +++ b/conf/httpd.conf @@ -20,7 +20,7 @@ # Copyright (c) 2006 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org # -# $Id: httpd.conf,v 1.15 2007-05-18 19:09:35 matthew Exp $ +# $Id: httpd.conf,v 1.16 2007-06-16 14:20:06 francis Exp $ DirectoryIndex index.cgi @@ -35,6 +35,7 @@ RewriteRule ^/[Qq]/([0-9A-Za-z]{16}).*$ /questionnaire.cgi?token=$1 RewriteRule ^/rss/([0-9]+)$ /rss.cgi?type=new_updates;id=$1 [QSA] RewriteRule ^/rss/([0-9]+),([0-9]+)$ /rss.cgi?type=local_problems;x=$1;y=$2 [QSA] +RewriteRule ^/rss/l/([0-9.]+),([0-9.]+)$ /rss.cgi?type=local_problems;lat=$1;lon=$2 [QSA] RewriteRule ^/rss/([0-9]+),([0-9]+)/([0-9]+)$ /rss.cgi?type=local_problems;x=$1;y=$2;d=$3 [QSA] RewriteRule ^/rss/([0-9]+)/([0-9]+)/([0-9]+)$ /rss.cgi?type=local_problems;x=$1;y=$2;d=$3 [QSA] RewriteRule ^/rss/council/([0-9]+)$ /rss.cgi?type=council_problems;id=$1 [QSA] diff --git a/web/rss.cgi b/web/rss.cgi index 46f669dff..c0f057e21 100755 --- a/web/rss.cgi +++ b/web/rss.cgi @@ -6,7 +6,7 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: matthew@mysociety.org. WWW: http://www.mysociety.org # -# $Id: rss.cgi,v 1.8 2007-06-15 14:57:52 matthew Exp $ +# $Id: rss.cgi,v 1.9 2007-06-16 14:20:07 francis Exp $ use strict; require 5.8.0; @@ -40,11 +40,21 @@ sub main { if ($type eq 'local_problems') { my $x = $q->param('x'); my $y = $q->param('y'); + if (!$x && !$y) { + my $lat = $q->param('lat'); + my $lon = $q->param('lon'); + warn $lat, $lon; + if ($lat && $lon) { + ($x, $y) = mySociety::GeoUtil::wgs84_to_national_grid($lat, $lon, 'G'); + } + } + die "Missing x/y or lat/lon parameter in RSS feed" if (!$x && !$y); my $qs = 'x='.$x.';y='.$y; - my $d = $q->param('d'); - $qs .= ";d=$d" if $d; - $d = 10 unless $d; - $d = 100 if $d > 100; + + my $d = $q->param('d'); + $qs .= ";d=$d" if $d; + $d = 10 unless $d; + $d = 100 if $d > 100; $x = ($x * 5000 / 31); $y = ($y * 5000 / 31); mySociety::Alert::generate_rss($type, $qs, $x, $y, $d); |