NewsBlur/utils/green.py
2016-08-04 11:00:33 -07:00

36 lines
1.6 KiB
Python

from gevent import monkey
monkey.patch_socket()
from newsblur.utils import feedparser
import gevent
from gevent import queue
import urllib2
def fetch_title(url):
print "Running %s" % url
data = urllib2.urlopen(url).read()
print "Parsing %s" % url
d = feedparser.parse(data)
print "Parsed %s" % d.feed.get('title', '')
return d.feed.get('title', '')
def worker():
while True:
url = q.get()
try:
fetch_title(url)
finally:
q.task_done()
if __name__ == '__main__':
q = queue.JoinableQueue()
for i in range(5):
gevent.spawn(worker)
for url in "http://www.43folders.com/rss.xml/nhttp://feeds.feedburner.com/43folders/nhttp://www.43folders.com/rss.xml/nhttp://feeds.feedburner.com/43folders/nhttp://feeds.feedburner.com/AMinuteWithBrendan/nhttp://feeds.feedburner.com/AMinuteWithBrendan/nhttp://www.asianart.org/feeds/Lectures,Classes,Symposia.xml/nhttp://www.asianart.org/feeds/Performances.xml/nhttp://feeds.feedburner.com/ajaxian/nhttp://ajaxian.com/index.xml/nhttp://al3x.net/atom.xml/nhttp://feeds.feedburner.com/AmericanDrink/nhttp://feeds.feedburner.com/eod_full/nhttp://feeds.feedburner.com/typepad/notes/nhttp://feeds.dashes.com/AnilDash/nhttp://rss.sciam.com/assignment-impossible/feed/nhttp://blogs.scientificamerican.com/assignment-impossible//nhttp://feeds.feedburner.com/Beautiful-Pixels/nhttp://feeds.feedburner.com/Beautiful-Pixels/nhttp://www.betabeat.com/feed/".split('/n'):
print "Spawning: %s" % url
q.put(url)
q.join() # block until all tasks are done