import random from datetime import datetime from feedparser import parse def parse_single_rss_feed(url, entries, tag_filter): feed = parse(url) entrylength = len(entries) for entrynumber, entry in enumerate(feed.entries): if tag_filter and not contains_category(entry, tag_filter): continue if entry.has_key("title"): entries[entry.title] = [] entrylist = entries[entry.title] else: title = str(entrynumber + entrylength) entries[title] = [] entrylist = entries[title] entrylist.append(entry.description) if entry.has_key("published_parsed"): entrylist.append(entry.published_parsed) else: entrylist.append(datetime.now().timetuple()) return entries def contains_category(entry, tag_filter): if not entry.has_key("tags"): return False for tag in entry.tags: if tag.term.lower() == tag_filter.lower(): return True return False def parse_rss_feeds(urls, tag_filter): entries = {} for url in urls: entries = parse_single_rss_feed(url, entries, tag_filter) return entries