From b452d0744abffe0f5bc7e7bebfa6595a80468971 Mon Sep 17 00:00:00 2001 From: Massimo Di Pierro Date: Thu, 3 May 2012 17:56:06 -0500 Subject: [PATCH] better autolinks --- VERSION | 2 +- gluon/contrib/autolinks.py | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index 2d24571a..0055c191 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 1.99.7 (2012-05-03 11:54:24) dev +Version 1.99.7 (2012-05-03 17:55:38) dev diff --git a/gluon/contrib/autolinks.py b/gluon/contrib/autolinks.py index 2c5bbc1f..33867596 100644 --- a/gluon/contrib/autolinks.py +++ b/gluon/contrib/autolinks.py @@ -124,22 +124,19 @@ EXTENSION_MAPS = { def oembed(url): for k,v in EMBED_MAPS: - if k.match(url): - oembed = v+'?format=json&url='+cgi.escape(url) + if k.match(url): + oembed = v+'?format=json&url='+cgi.escape(url) try: return loads(urllib.urlopen(oembed).read()) - except: pass + except: + pass return {} def extension(url): return url.split('?')[0].split('.')[-1].lower() def expand_one(url,cdict): - # embed images, video, audio files - ext = extension(url) - if ext in EXTENSION_MAPS: - return EXTENSION_MAPS[ext](url) - # then try ombed but first check in cache + # try ombed but first check in cache if cdict and url in cdict: r = cdict[url] elif cdict: @@ -149,6 +146,12 @@ def expand_one(url,cdict): # if oembed service if 'html' in r: return '%s' % r['html'] + elif 'url' in r: + url = r['url'] + # embed images, video, audio files + ext = extension(url) + if ext in EXTENSION_MAPS: + return EXTENSION_MAPS[ext](url) # else regular link return '%(u)s' % dict(u=url)