def poll_changes(): db = connect_db() last_change = db.info()["update_seq"] c = Consumer(db, backend='gevent') changes = c.wait_once(since=last_change, feed='longpoll', include_docs='true', filter="app/posts") return jsonify(changes)
def get_objects(db, since=0, limit=1, timeout=1000): consumer = Consumer(db) while True: resp = consumer.wait_once(since=since, limit=limit, timeout=timeout, include_docs=True, filter='slugs/slug_objects') results = resp['results'] if not results: break for res in results: cls = (PodcastGroup, Podcast, Episode) classes = dict( (c._doc_type, c) for c in cls) doc = res['doc'] doc_type = doc['doc_type'] seq = res['seq'] c = classes[doc_type] yield seq, c.wrap(doc) since = resp['last_seq']
pdfname = pl_name jobname = uuid.uuid4().hex f = open('/tmp/%s.tex' % jobname, 'w+') f.write(data) f.close() try: for i in range(2): p = subprocess.Popen([ 'pdflatex', '-output-directory', '/tmp', '-interaction', 'nonstopmode', '-jobname', jobname, '/tmp/%s.tex' % jobname, ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) p.communicate() filename = '/tmp/%s.pdf' % jobname data = open(filename).read() db.put_attachment(doc, data, name=pdfname, content_type='application/pdf') except IOError: pass return f if __name__ == '__main__': while True: db = Database(sys.argv[1]) c = Consumer(db) last_seq = c.wait_once()['last_seq'] c.register_callback(generate_pdf(db)) c.wait(filter='aimpl/pl', since=last_seq, heartbeat=True) time.sleep(5)