From 2d47ea256378010f995e846aea3ecd63b7b4f2ab Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 13 Jun 2016 17:27:08 +0200 Subject: [PATCH] [FIX] link_tracker: page title encoding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When tracking a page with special characters in the title (e.g. `Ä`), the title of the page in the tracked links was badly encoded, because the encoding was not handled correctly when parsing the given website page. opw-679993 --- addons/link_tracker/models/link_tracker.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py index f387a7e6e7f..4de629fc517 100644 --- a/addons/link_tracker/models/link_tracker.py +++ b/addons/link_tracker/models/link_tracker.py @@ -4,13 +4,14 @@ import random import re import string -from lxml.html import parse +from lxml import html from urllib2 import urlopen from urlparse import urljoin from urlparse import urlparse from werkzeug import url_encode from openerp import models, fields, api, _ +from openerp.tools import ustr URL_REGEX = r'(\bhref=[\'"](?!mailto:)([^\'"]+)[\'"])' @@ -108,7 +109,7 @@ class link_tracker(models.Model): def _get_title_from_url(self, url): try: page = urlopen(url, timeout=5) - p = parse(page) + p = html.fromstring(ustr(page.read()).encode('utf-8'), parser=html.HTMLParser(encoding='utf-8')) title = p.find('.//title').text except: title = url