crunk-columns is a PESOS style website maker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB

12 months ago
import random
from datetime import datetime
12 months ago
from feedparser import parse
10 months ago
def parse_single_rss_feed(url, entries, tag_filter):
12 months ago
feed = parse(url)
entrylength = len(entries)
12 months ago
for entrynumber, entry in enumerate(feed.entries):
10 months ago
if tag_filter and not contains_category(entry, tag_filter):
continue
12 months ago
if entry.has_key("title"):
entries[entry.title] = []
entrylist = entries[entry.title]
else:
title = str(entrynumber + entrylength)
12 months ago
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())
12 months ago
return entries
10 months ago
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
10 months ago
def parse_rss_feeds(urls, tag_filter):
12 months ago
entries = {}
for url in urls:
10 months ago
entries = parse_single_rss_feed(url, entries, tag_filter)
12 months ago
return entries