def run(self): log.info("Poller started") atexit.register(self.shutdown) while True: history = shelve.open(self.config['poll.history']) feed = feedparser.parse(self.config['rss_feed']) feed.entries.reverse() for entry in feed.entries: if not history.has_key(str(entry.id)) and entry.description: log.debug("New message: %s" % entry.description) msg = {'from': entry.title, 'date': entry.date} result = self.first_word.match(entry.description) if result: if result.group(1).lower() in keyword.keys(): msg['keyword'] = result.group(1).lower() if result.group(2): msg['content'] = result.group(2) else: msg['content'] = result.group(1) else: msg['content'] = entry.description msg['keyword'] = random.choice(keyword.keys()) log.debug("Adding to queue: %s" % msg) messages.put(msg) history[str(entry.id)] = True messages.save() history.close() log.debug("Finished poll. Queue size is %d" % messages.qsize()) time.sleep(float(self.config['poll.interval']))
def run(self): log.info("Poller started") atexit.register(self.shutdown) while True: history = shelve.open(self.config['poll.history']) feed = feedparser.parse(self.config['rss_feed']) feed.entries.reverse() for entry in feed.entries: if not history.has_key(str(entry.id)) and entry.description: log.debug("New message: %s" % entry.description) msg = { 'from': entry.title, 'date': entry.date } result = self.first_word.match(entry.description) if result: if result.group(1).lower() in keyword.keys(): msg['keyword'] = result.group(1).lower() if result.group(2): msg['content'] = 'Thanks ' + self._get_initials(result.group(2)) else: msg['content'] = 'Thanks ' + self._get_initials(entry.description) msg['keyword'] = random.choice(keyword.keys()) log.debug("Adding to queue: %s" % msg) messages.put(msg) history[str(entry.id)] = True messages.save() history.close() log.debug("Finished poll. Queue size is %d" % messages.qsize()) time.sleep(float(self.config['poll.interval']))
def size(self): return {'messages': messages.qsize(), 'outgoing': outgoing.qsize()}
def size(self): return { 'messages': messages.qsize(), 'outgoing': outgoing.qsize() }