From c7fb787c70973c009d2902ea0468b32487a00a3c Mon Sep 17 00:00:00 2001 From: Denis Ledoux <dle@odoo.com> Date: Mon, 11 Aug 2014 10:32:08 +0200 Subject: [PATCH] [FIX] website: seo, url encode params, + handle connection breaks --- addons/website/controllers/main.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 2ab001317ba0..97962d41bf98 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -306,9 +306,13 @@ class Website(openerp.addons.web.controllers.main.Home): @http.route(['/website/seo_suggest/<keywords>'], type='http', auth="public", website=True) def seo_suggest(self, keywords): - url = "http://google.com/complete/search?ie=utf8&oe=utf8&output=toolbar&q=" - req = urllib2.Request("%s?%s" % (url, keywords)) - request = urllib2.urlopen(req) + url = "http://google.com/complete/search" + try: + req = urllib2.Request("%s?%s" % (url, werkzeug.url_encode({ + 'ie': 'utf8', 'oe': 'utf8', 'output': 'toolbar', 'q': keywords}))) + request = urllib2.urlopen(req) + except (urllib2.HTTPError, urllib2.URLError): + return [] xmlroot = ET.fromstring(request.read()) return json.dumps([sugg[0].attrib['data'] for sugg in xmlroot if len(sugg) and sugg[0].attrib['data']]) -- GitLab