Exemple #1
0
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)
Exemple #2
0
    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)