From 2fa87a88c0d7ff004a99e9729da6c530278020f7 Mon Sep 17 00:00:00 2001 From: Nicolas Joyard <joyard.nicolas@gmail.com> Date: Sun, 12 Jun 2016 11:00:04 +0200 Subject: [PATCH] Fix URLs on mep pages and enhance fb username extraction --- memopol/templatetags/memopol_tags.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/memopol/templatetags/memopol_tags.py b/memopol/templatetags/memopol_tags.py index 20bb316a..d7a853bf 100644 --- a/memopol/templatetags/memopol_tags.py +++ b/memopol/templatetags/memopol_tags.py @@ -16,22 +16,32 @@ def cssify(string): return re.sub('[^a-z_-]', '', string.lower()) +def fix_url(url): + # Ensure we have a usable URL + return re.sub('^(https?://)?', 'https://', url.strip()) + + @register.filter def twitter_link(url): - return mark_safe(link.format(network='twitter', url=url, - label=re.sub(r'.*/@?([^/]+)', '@\\1', re.sub(r'/$', '', url.strip())))) + furl = fix_url(url) + return mark_safe(link.format(network='twitter', url=furl, + label=re.sub(r'.*/@?([^/]+)', '@\\1', re.sub(r'/$', '', furl)))) @register.filter def facebook_link(url): - return mark_safe(link.format(network='facebook', url=url, - label=re.sub(r'.*/([^/]+)', '\\1', re.sub(r'/$', '', url.strip())))) + furl = fix_url(url) + clean_url = re.sub(r'/$', '', re.sub(r'\?.*', '', furl)) + m = re.search(r'/pages/([^/]+)', clean_url, re.I) + return mark_safe(link.format(network='facebook', url=furl, + label=m.group(1) if m else re.sub(r'.*/([^/]+)', '\\1', clean_url))) @register.filter def website_link(url): - short_url = re.sub(r'^https?://([^/]+).*', '\\1', url) - return mark_safe(link.format(network='website', url=url, + furl = fix_url(url) + short_url = re.sub(r'^https?://([^/]+).*', '\\1', furl) + return mark_safe(link.format(network='website', url=furl, label=short_url)) -- GitLab