Beispiel #1
0
Datei: model.py Projekt: ptpb/pb
def create(name):
    d = dict(
        _id=uuid4().hex,
        name=name
    )
    get_db().namespaces.insert(d)
    return d
Beispiel #2
0
Datei: model.py Projekt: 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
Beispiel #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
Beispiel #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
Beispiel #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
Beispiel #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)
Beispiel #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
Beispiel #8
0
Datei: model.py Projekt: ptpb/pb
def auth(name, uuid):
    ns = get_db().namespaces.find(dict(
        name=name,
        _id=uuid.hex
    ))

    return ns
Beispiel #9
0
Datei: model.py Projekt: 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)
Beispiel #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
Beispiel #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
Beispiel #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)
Beispiel #13
0
Datei: model.py Projekt: 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)
Beispiel #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
Beispiel #15
0
def get_stats():
    return get_db().pastes.find()
Beispiel #16
0
def get_meta(**kwargs):
    return get_db().pastes.find(dict(**kwargs), dict(digest=1, label=1, _id=1))
Beispiel #17
0
def get_meta(**kwargs):
    return get_db().pastes.find(dict(**kwargs), dict(digest=1, label=1, _id=1))
Beispiel #18
0
Datei: model.py Projekt: 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)
    })
Beispiel #19
0
def delete(**kwargs):
    return get_db().pastes.remove(transform(kwargs))
Beispiel #20
0
def put(uuid, stream):
    return get_db().pastes.update(dict(_id=uuid.hex), {'$set': _put(stream)})
Beispiel #21
0
def get(name):
    ns = get_db().namespaces.find(dict(name=name))

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

    return ns
Beispiel #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)
Beispiel #24
0
def get_stats():
    return get_db().pastes.find()
Beispiel #25
0
def get_meta(**kwargs):
    return get_db().pastes.find(
        transform(kwargs)
    )
Beispiel #26
0
Datei: model.py Projekt: ptpb/pb
def get_meta(**kwargs):
    cur = get_db().pastes.find(
        transform(kwargs)
    )

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

    return ns
Beispiel #30
0
def put(uuid, stream):
    return get_db().pastes.update(dict(_id=uuid.hex), {"$set": _put(stream)})
Beispiel #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)})
Beispiel #32
0
def delete(uuid):
    return get_db().pastes.remove(dict(_id=uuid.hex))
Beispiel #33
0
def get_meta(**kwargs):
    return get_db().pastes.find(
        transform(kwargs)
    )
Beispiel #34
0
Datei: model.py Projekt: ptpb/pb
def delete(**kwargs):
    return get_db().pastes.remove(transform(kwargs))
Beispiel #35
0
def get_meta(**kwargs):
    cur = get_db().pastes.find(transform(kwargs))

    return filterfalse(_is_expired, cur)
Beispiel #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)