From a11679d3eb495a2d347fe558d5839e62b79b01cf Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 8 Aug 2023 18:27:53 +0100 Subject: [PATCH] Take exclude_place_ids from Nominatim results directly Fixes #4137 --- app/controllers/geocoder_controller.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index fc8b3a60b..912247c9c 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -88,10 +88,7 @@ class GeocoderController < ApplicationController response = fetch_xml("#{Settings.nominatim_url}search?format=xml&extratags=1&q=#{escape_query(query)}#{viewbox}#{exclude}&accept-language=#{http_accept_language.user_preferred_languages.join(',')}") # extract the results from the response - results = response.elements["searchresults"] - - # extract parameters from more_url - more_url_params = CGI.parse(URI.parse(results.attributes["more_url"]).query) + results = response.elements["searchresults"] # create result array @results = [] @@ -99,7 +96,7 @@ class GeocoderController < ApplicationController # create parameter hash for "more results" link @more_params = params .permit(:query, :minlon, :minlat, :maxlon, :maxlat, :exclude) - .merge(:exclude => more_url_params["exclude_place_ids"].first) + .merge(:exclude => results.attributes["exclude_place_ids"]) # parse the response results.elements.each("place") do |place| -- 2.39.5