Skip to content

Instantly share code, notes, and snippets.

@kyleterry
Created August 12, 2011 23:39
Show Gist options
  • Save kyleterry/1143253 to your computer and use it in GitHub Desktop.
Save kyleterry/1143253 to your computer and use it in GitHub Desktop.
import time
import redis
import feedparser
channels = ('#aquameta',)
class SecurityService(object):
feed_urls = {
'ubuntu-security-10.10': 'http://www.ubuntu.com/usn/rss.xml',
}
r = None #redis
redis_host = 'wraithbeast'
redis_port = 6379
redis_db = 0
def __init__(self):
self.r = redis.Redis(host=self.redis_host,
port=self.redis_port,
db=self.redis_db)
def check(self):
for key,url in self.feed_urls.iteritems():
feed = feedparser.parse(url)
for item in sorted(feed['entries'], key=lambda x: x.link):
if item.link in self.r.smembers('%s:used_items' % key):
continue
self.r.sadd('%s:used_items' % key, item.link)
for channel in channels:
self.r.publish('%s_out' % channel,
'[%s] %s: %s' % (key, item.title, item.link))
time.sleep(2)
def run(self):
while True:
self.check()
time.sleep(60 * 10)
def main():
security_service = SecurityService()
security_service.run()
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment