[FIX] website: encode param for seo search, else multi words will not work.
authorJeremy Kersten <jke@odoo.com>
Mon, 4 Aug 2014 12:41:55 +0000 (14:41 +0200)
committerJeremy Kersten <jke@odoo.com>
Mon, 4 Aug 2014 12:41:55 +0000 (14:41 +0200)
addons/website/controllers/main.py

index 650fcae..f2b6d7d 100644 (file)
@@ -360,8 +360,14 @@ 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))
+        url = "http://google.com/complete/search"
+        param = {
+            'ie': 'utf8',
+            'oe': 'utf8',
+            'output': 'toolbar',
+            'q': keywords
+        }
+        req = urllib2.Request("%s?%s" % (url, werkzeug.url_encode(param)))
         request = urllib2.urlopen(req)
         xmlroot = ET.fromstring(request.read())
         return json.dumps([sugg[0].attrib['data'] for sugg in xmlroot if len(sugg) and sugg[0].attrib['data']])