summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Ledoux <dle@odoo.com>2014-08-11 10:32:08 +0200
committerDenis Ledoux <dle@odoo.com>2014-08-11 10:32:08 +0200
commitc7fb787c70973c009d2902ea0468b32487a00a3c (patch)
treeeb1d7ae2baf58a7093623054020f076a48839d30
parente4c2da59f8f6f848ad1713c5b039bc251ab63fc9 (diff)
[FIX] website: seo, url encode params, + handle connection breaks
-rw-r--r--addons/website/controllers/main.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 2ab001317ba..97962d41bf9 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']])