diff --git a/event_feed.py b/event_feed.py index 7659187..5905e80 100644 --- a/event_feed.py +++ b/event_feed.py @@ -11,7 +11,9 @@ import shutil from slugify import slugify from natural import date from event_feed_config import calendar_url, output_dir +from urllib.parse import urlparse import arrow +import re cal = Calendar(requests.get(calendar_url).text) @@ -26,8 +28,23 @@ template = env.get_template('event_template.md') existing_posts = os.listdir(output_dir) +def findURLs(string): + + regex = r"(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))" + url = re.findall(regex,string) + return [x[0] for x in url] + def create_metadata(event): #construct a formatted dict of event metadata for in a post + + if event.location: + location_urls = findURLs(event.location) + + if location_urls: + location_url = location_urls[0] + event.location = '[{}]({})'.format(urlparse(location_url).netloc, location_url) + + event_metadata = { 'name':event.name, 'created':event.created.format(),