Case insensitive rel values; ensure linked icon exists

This commit is contained in:
Sam Ruby 2011-02-11 12:01:02 -05:00
parent 6481eaf5a8
commit c88afaacb0

View File

@ -32,11 +32,11 @@ for sub in config.subscriptions():
def favicon(page): def favicon(page):
parser=html5parser.HTMLParser(tree=treebuilders.getTreeBuilder('dom')) parser=html5parser.HTMLParser(tree=treebuilders.getTreeBuilder('dom'))
doc=parser.parse(urlopen(page)) doc=parser.parse(urlopen(page))
favicon = urljoin(page, '/favicon.ico')
for link in doc.getElementsByTagName('link'): for link in doc.getElementsByTagName('link'):
if link.hasAttribute('rel') and link.hasAttribute('href'): if link.hasAttribute('rel') and link.hasAttribute('href'):
if 'icon' in link.attributes['rel'].value.split(' '): if 'icon' in link.attributes['rel'].value.lower().split(' '):
return urljoin(page, link.attributes['href'].value) favicon = urljoin(page, link.attributes['href'].value)
favicon = urljoin(page, '/favicon.ico')
if urlopen(favicon).info()['content-length'] != '0': if urlopen(favicon).info()['content-length'] != '0':
return favicon return favicon