Ejemplo n.º 1
0
Archivo: model.py Proyecto: ptpb/pb
def create(name):
    d = dict(
        _id=uuid4().hex,
        name=name
    )
    get_db().namespaces.insert(d)
    return d
Ejemplo n.º 2
0
Archivo: model.py Proyecto: ptpb/pb
def insert(stream, **kwargs):
    kwargs.update(**_put(stream))
    d = dict(
        _id=uuid4().hex,
        date=datetime.utcnow(),
        **transform(kwargs)
    )
    get_db().pastes.insert(d)
    return d
Ejemplo n.º 3
0
def insert(stream, **kwargs):
    kwargs.update(**_put(stream))
    d = dict(
        _id = uuid4().hex,
        date = datetime.utcnow(),
        **transform(kwargs)
    )
    get_db().pastes.insert(d)
    return d
Ejemplo n.º 4
0
def get_digest(stream=None, content=None):
    paste = get_db().pastes.find(dict(
        digest = sha1(content if content else stream.read()).hexdigest()
    )).sort('date', DESCENDING)
    if stream:
        stream.seek(0)
    return paste
Ejemplo n.º 5
0
def get_digest(stream=None, content=None):
    paste = get_db().pastes.find(dict(
        digest = sha1(content if content else stream.read()).hexdigest()
    )).sort('date', DESCENDING)
    if stream:
        stream.seek(0)
    return paste
Ejemplo n.º 6
0
def get_content(**kwargs):
    cur = get_db().pastes.find(
        transform(kwargs),
        dict(content=1, redirect=1, sunset=1, date=1, _id=1,
             mimetype=1)).sort('date', DESCENDING)

    return filterfalse(_is_expired, cur)
Ejemplo n.º 7
0
def get_content(**kwargs):
    paste = (
        get_db()
        .pastes.find(dict(**kwargs), dict(content=1, redirect=1, sunset=1, date=1, _id=1, mimetype=1))
        .sort("date", DESCENDING)
    )
    return paste
Ejemplo n.º 8
0
Archivo: model.py Proyecto: ptpb/pb
def auth(name, uuid):
    ns = get_db().namespaces.find(dict(
        name=name,
        _id=uuid.hex
    ))

    return ns
Ejemplo n.º 9
0
Archivo: model.py Proyecto: ptpb/pb
def get_digest(stream=None, content=None):
    cur = get_db().pastes.find(dict(
        digest=sha1(content if content else stream.read()).hexdigest()
    )).sort('date', DESCENDING)
    # fixme: wtf?
    if stream:
        stream.seek(0)

    return filterfalse(_is_expired, cur)
Ejemplo n.º 10
0
def get_content(**kwargs):
    paste = get_db().pastes.find(transform(kwargs), dict(
        content = 1,
        redirect = 1,
        sunset = 1,
        date = 1,
        _id = 1,
        mimetype = 1
    )).sort('date', DESCENDING)
    return paste
Ejemplo n.º 11
0
def get_content(**kwargs):
    paste = get_db().pastes.find(transform(kwargs), dict(
        content = 1,
        redirect = 1,
        sunset = 1,
        date = 1,
        _id = 1,
        mimetype = 1
    )).sort('date', DESCENDING)
    return paste
Ejemplo n.º 12
0
def get_digest(stream=None, content=None):
    cur = get_db().pastes.find(
        dict(digest=sha1(
            content if content else stream.read()).hexdigest())).sort(
                'date', DESCENDING)
    # fixme: wtf?
    if stream:
        stream.seek(0)

    return filterfalse(_is_expired, cur)
Ejemplo n.º 13
0
Archivo: model.py Proyecto: ptpb/pb
def get_content(**kwargs):
    cur = get_db().pastes.find(transform(kwargs), dict(
        content=1,
        redirect=1,
        sunset=1,
        date=1,
        _id=1,
        mimetype=1,
        headers=1,
    )).sort('date', DESCENDING)

    return filterfalse(_is_expired, cur)
Ejemplo n.º 14
0
def get_digest(stream=None, content=None):
    paste = (
        get_db()
        .pastes.find(
            dict(digest=sha1(content if content else stream.read()).hexdigest()),
            dict(digest=1, label=1, private=1, _id=1),
        )
        .sort("date", DESCENDING)
    )
    if stream:
        stream.seek(0)
    return paste
Ejemplo n.º 15
0
def get_stats():
    return get_db().pastes.find()
Ejemplo n.º 16
0
def get_meta(**kwargs):
    return get_db().pastes.find(dict(**kwargs), dict(digest=1, label=1, _id=1))
Ejemplo n.º 17
0
def get_meta(**kwargs):
    return get_db().pastes.find(dict(**kwargs), dict(digest=1, label=1, _id=1))
Ejemplo n.º 18
0
Archivo: model.py Proyecto: ptpb/pb
def put(stream, mimetype=None, headers={}, **kwargs):
    args = _put(stream)
    args.update(mimetype=mimetype, headers=headers)
    return get_db().pastes.update(transform(kwargs), {
        '$set': transform(args)
    })
Ejemplo n.º 19
0
def delete(**kwargs):
    return get_db().pastes.remove(transform(kwargs))
Ejemplo n.º 20
0
def put(uuid, stream):
    return get_db().pastes.update(dict(_id=uuid.hex), {'$set': _put(stream)})
Ejemplo n.º 21
0
def get(name):
    ns = get_db().namespaces.find(dict(name=name))

    return ns
Ejemplo n.º 22
0
def auth(name, uuid):
    ns = get_db().namespaces.find(dict(name=name, _id=uuid.hex))

    return ns
Ejemplo n.º 23
0
#!/usr/bin/env python3
"""
    index stub
    ~~~~~~~~~~

    run this once to create indexes for paste document fields

    :copyright: Copyright (C) 2015 by the respective authors; see AUTHORS.
    :license: GPLv3, see LICENSE for details.
"""

from pb.pb import create_app
from pb.db import get_db

if __name__ == "__main__":
    with create_app().app_context():
        db = get_db()
        db.pastes.ensure_index('digest', unique=True)
        db.pastes.ensure_index('date')
        db.pastes.ensure_index('label', unique=True, sparse=True)
        db.pastes.ensure_index('private', sparse=True)
Ejemplo n.º 24
0
def get_stats():
    return get_db().pastes.find()
Ejemplo n.º 25
0
def get_meta(**kwargs):
    return get_db().pastes.find(
        transform(kwargs)
    )
Ejemplo n.º 26
0
Archivo: model.py Proyecto: ptpb/pb
def get_meta(**kwargs):
    cur = get_db().pastes.find(
        transform(kwargs)
    )

    return filterfalse(_is_expired, cur)
Ejemplo n.º 27
0
def delete(uuid):
    return get_db().pastes.remove(dict(_id=uuid.hex))
Ejemplo n.º 28
0
def create(name):
    d = dict(_id=uuid4().hex, name=name)
    get_db().namespaces.insert(d)
    return d
Ejemplo n.º 29
0
Archivo: model.py Proyecto: ptpb/pb
def get(name):
    ns = get_db().namespaces.find(dict(
        name=name
    ))

    return ns
Ejemplo n.º 30
0
def put(uuid, stream):
    return get_db().pastes.update(dict(_id=uuid.hex), {"$set": _put(stream)})
Ejemplo n.º 31
0
def put(stream, mimetype=None, **kwargs):
    args = _put(stream)
    args.update(mimetype=mimetype)
    return get_db().pastes.update(transform(kwargs), {'$set': transform(args)})
Ejemplo n.º 32
0
def delete(uuid):
    return get_db().pastes.remove(dict(_id=uuid.hex))
Ejemplo n.º 33
0
def get_meta(**kwargs):
    return get_db().pastes.find(
        transform(kwargs)
    )
Ejemplo n.º 34
0
Archivo: model.py Proyecto: ptpb/pb
def delete(**kwargs):
    return get_db().pastes.remove(transform(kwargs))
Ejemplo n.º 35
0
def get_meta(**kwargs):
    cur = get_db().pastes.find(transform(kwargs))

    return filterfalse(_is_expired, cur)
Ejemplo n.º 36
0
    _path = path(__main__.__file__).resolve().parent
    for index, p in enumerate(sys.path):
        p = path(p).resolve()
        if p == _path:
            assert path.cwd().resolve() != p
            sys.path[index] = str(path.cwd().resolve())


import os

from werkzeug.serving import run_simple

from pb import db
from pb.pb import create_app
from pb.runonce import add_indexes

app = create_app()


if __name__ == '__main__':
    host = os.environ.get('LISTEN_ADDRESS', '::1')
    port = os.environ.get('LISTEN_PORT', 10002)

    with app.app_context():
        add_indexes(db.get_db())

    run_simple(host, int(port), app,
               use_reloader=True,
               use_debugger=True,
               use_evalex=True)