def listNotifications(self, since): user, token = self.getCurrentUser(returnToken=True) return list(NotificationModel().get(user, since, token=token, sort=[('updated', SortDir.ASCENDING)]))
def streamGen(): lastUpdate = since start = time.time() wait = MIN_POLL_INTERVAL while cherrypy.engine.state == cherrypy.engine.states.STARTED: wait = min(wait + MIN_POLL_INTERVAL, MAX_POLL_INTERVAL) for event in NotificationModel().get(user, lastUpdate, token=token): if lastUpdate is None or event['updated'] > lastUpdate: lastUpdate = event['updated'] wait = MIN_POLL_INTERVAL start = time.time() yield sseMessage(event) if time.time() - start > timeout: break time.sleep(wait)