def create(name): d = dict( _id=uuid4().hex, name=name ) get_db().namespaces.insert(d) return d
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
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
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
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)
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
def auth(name, uuid): ns = get_db().namespaces.find(dict( name=name, _id=uuid.hex )) return ns
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)
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
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)
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)
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
def get_stats(): return get_db().pastes.find()
def get_meta(**kwargs): return get_db().pastes.find(dict(**kwargs), dict(digest=1, label=1, _id=1))
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) })
def delete(**kwargs): return get_db().pastes.remove(transform(kwargs))
def put(uuid, stream): return get_db().pastes.update(dict(_id=uuid.hex), {'$set': _put(stream)})
def get(name): ns = get_db().namespaces.find(dict(name=name)) return ns
def auth(name, uuid): ns = get_db().namespaces.find(dict(name=name, _id=uuid.hex)) return ns
#!/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)
def get_meta(**kwargs): return get_db().pastes.find( transform(kwargs) )
def get_meta(**kwargs): cur = get_db().pastes.find( transform(kwargs) ) return filterfalse(_is_expired, cur)
def delete(uuid): return get_db().pastes.remove(dict(_id=uuid.hex))
def create(name): d = dict(_id=uuid4().hex, name=name) get_db().namespaces.insert(d) return d
def get(name): ns = get_db().namespaces.find(dict( name=name )) return ns
def put(uuid, stream): return get_db().pastes.update(dict(_id=uuid.hex), {"$set": _put(stream)})
def put(stream, mimetype=None, **kwargs): args = _put(stream) args.update(mimetype=mimetype) return get_db().pastes.update(transform(kwargs), {'$set': transform(args)})
def get_meta(**kwargs): cur = get_db().pastes.find(transform(kwargs)) return filterfalse(_is_expired, cur)
_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)