From 81113f37b78937ad229b0c3db44b29435cf3afca Mon Sep 17 00:00:00 2001 From: Kai Krueger Date: Sun, 14 Mar 2010 10:47:16 +0000 Subject: [PATCH] Fixup some of the rss output and geocode bugs using nominatim --- app/controllers/map_bugs_controller.rb | 12 ++++++++++++ app/views/map_bugs/get_bugs.rss.builder | 13 +++++++------ config/locales/en.yml | 6 ++++++ 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/controllers/map_bugs_controller.rb b/app/controllers/map_bugs_controller.rb index 41b07eb96..76f99123e 100644 --- a/app/controllers/map_bugs_controller.rb +++ b/app/controllers/map_bugs_controller.rb @@ -69,6 +69,18 @@ class MapBugsController < ApplicationController name = params['name'] if params['name']; @bug = MapBug.create_bug(lat, lon) + + + #TODO: move this into a helper function + url = "http://nominatim.openstreetmap.org/reverse?lat=" + lat.to_s + "&lon=" + lon.to_s + "&zoom=16" + response = REXML::Document.new(Net::HTTP.get(URI.parse(url))) + + if result = response.get_text("reversegeocode/result") + @bug.nearby_place = result.to_s + else + @bug.nearby_place = "unknown" + end + @bug.save; add_comment(@bug, comment, name); diff --git a/app/views/map_bugs/get_bugs.rss.builder b/app/views/map_bugs/get_bugs.rss.builder index 49008ce95..580cf93fe 100644 --- a/app/views/map_bugs/get_bugs.rss.builder +++ b/app/views/map_bugs/get_bugs.rss.builder @@ -5,21 +5,22 @@ xml.rss("version" => "2.0", "xmlns:georss" => "http://www.georss.org/georss") do xml.channel do xml.title "OpenStreetBugs" - xml.description "A list of bugs, reported, commented on or closed in your area" + xml.description t('bugs.rss.description') xml.link url_for(:controller => "site", :action => "index", :only_path => false) for bug in @bugs xml.item do if bug.status == "closed" - xml.title "Closed bug" + xml.title t('bugs.rss.closed', :place => bug.nearby_place) else if bug.map_bug_comment.length > 1 - xml.title "Commented on bug" + xml.title t('bugs.rss.comment', :place => bug.nearby_place) else - xml.title "Created bug" + xml.title t('bugs.rss.new', :place => bug.nearby_place) end end - xml.link url_for(:controller => "site", :action => "index", :only_path => false) - xml.description bug.flatten_comment("|") + xml.link url_for(:controller => "browse", :action => "bug", :id => bug.id, :only_path => false) + xml.guid url_for(:controller => "browse", :action => "bug", :id => bug.id, :only_path => false) + xml.description htmlize(bug.flatten_comment("

")) if (!bug.map_bug_comment.empty?) xml.author bug.map_bug_comment[-1].commenter_name end diff --git a/config/locales/en.yml b/config/locales/en.yml index 7df9bd373..d0e8f8e44 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1619,6 +1619,12 @@ en: back: "View all blocks" revoker: "Revoker:" needs_view: "The user needs to log in before this block will be cleared." + bugs: + rss: + description: "A list of bugs, reported, commented on or closed in your area" + closed: "closed bug (near {{place}})" + new: "new bug (near {{place}})" + comment: "new comment (near {{place}})" javascripts: map: base: -- 2.43.2