def parse_tweets(tweets):
import re
result = []
for tw in tweets:
tweet = tw.text;
#compile regexes as objects
hash_regex = re.compile(r'#[0-9a-zA-Z+_]*',re.IGNORECASE)
user_regex = re.compile(r'@[0-9a-zA-Z+_]*',re.IGNORECASE)
#first deal with links. Any http://... string change to a proper link
tweet = re.sub('http://[^ ,]*', lambda t: "%s" % (t.group(0), t.group(0)), tweet)
#for all elements matching our pattern...
for usr in user_regex.finditer(tweet):
#for each whole match replace '@' with ''
url_tweet = usr.group(0).replace('@','')
#in tweet's text replace text with proper link, now without '@'
tweet = tweet.replace(usr.group(0),
''+usr.group(0)+'')
#do the same for hash tags
for hash in hash_regex.finditer(tweet):
url_hash = hash.group(0).replace('#','%23')
if len ( hash.group(0) ) > 2:
tweet = tweet.replace(hash.group(0),
''+hash.group(0)+'');
#append each tweet to our list. Here I'm creating a dict containing tweet's text and date
posts.append({'tweet': tweet, 'date': s.pub_time})
return posts
And now to show it in template :
- {% for t in tweets %}
{% for k, v in t.items %}
{% ifequal k 'summary' %}
{{ v|safe }}
{% else %}
{% ifequal k 'date' %}
{{v|timesince}} ago
{% endifequal %}
{% endifequal %}
{% endfor %}
{% endfor %}