def get(sid=None, sha1=None, label=None, namespace=None, lexer=None, handler=None, formatter=None): cur, name, path = _get_paste(model.get_content, sid, sha1, label, namespace) if not cur or not cur.count(): return StatusResponse("not found", 404) paste = next(cur) if paste.get('sunset'): request.max_age = parse_sunset(**paste) - datetime.utcnow() if request.max_age < timedelta(): uuid = UUID(hex=paste['_id']) paste = invalidate(uuid=uuid) model.delete(uuid=uuid) return PasteResponse(paste, "expired", code=410) else: request.max_age = request.max_age.seconds content = model._get(paste.get('content')) if paste.get('redirect'): content = content.decode('utf-8') return redirect(content, content) mimetype, _ = guess_type(name) if not mimetype: mimetype = paste.get('mimetype', 'text/plain') if lexer is not None: return highlight(content, lexer, formatter) if handler is not None: return _handler.get(handler, content, mimetype, path=path) return BaseResponse(content, mimetype=mimetype)
def get(sid=None, sha1=None, label=None, namespace=None, lexer=None, handler=None, formatter=None): cur, name, path = _get_paste(model.get_content, sid, sha1, label, namespace) if not cur or not cur.count(): return StatusResponse("not found", 404) paste = next(cur) if paste.get('sunset'): request.max_age = parse_sunset(**paste) - datetime.utcnow() print('max_age', request.max_age) if request.max_age < timedelta(): uuid = UUID(hex=paste['_id']) paste = invalidate(uuid=uuid) result = model.delete(uuid=uuid) return PasteResponse(paste, "expired", code=410) else: request.max_age = request.max_age.seconds content = model._get(paste.get('content')) if paste.get('redirect'): content = content.decode('utf-8') return redirect(content, content) mimetype, _ = guess_type(name) if not mimetype: mimetype = paste.get('mimetype', 'text/plain') if lexer != None: return highlight(content, lexer, formatter) if handler != None: return _handler.get(handler, content, mimetype, path=path) return BaseResponse(content, mimetype=mimetype)
def delete(**kwargs): if 'namespace' in kwargs: kwargs = _namespace_kwargs(kwargs) paste = invalidate(**kwargs) result = model.delete(**kwargs) if result['n']: return PasteResponse(paste, "deleted") return StatusResponse("not found", 404)
def get(sid=None, sha1=None, label=None, namespace=None, lexer=None, handler=None, formatter=None): cur, name, path = _get_paste(model.get_content, sid, sha1, label, namespace) if not cur or not cur.count(): return StatusResponse("not found", 404) paste = next(cur) if paste.get('sunset'): request.max_age = (paste['date'] + timedelta(seconds=paste['sunset'])) - datetime.utcnow() if request.max_age < timedelta(): request.max_age = 0 else: request.max_age = request.max_age.seconds if paste['date'] + timedelta(seconds=paste['sunset']) < datetime.utcnow(): max_age = datetime.utcnow() - (paste['date'] + timedelta(seconds=paste['sunset'])) uuid = UUID(hex=paste['_id']) paste = invalidate(uuid=uuid) result = model.delete(uuid=uuid) if not result['n']: return StatusResponse("this should not happen", 500) return PasteResponse(paste, "expired") content = model._get(paste.get('content')) if paste.get('redirect'): content = content.decode('utf-8') return redirect(content, content) mimetype, _ = guess_type(name) if not mimetype: mimetype = paste.get('mimetype', 'text/plain') if lexer != None: return highlight(content, lexer, formatter) if handler != None: return _handler.get(handler, content, mimetype, path=path) return Response(content, mimetype=mimetype)
def get(sid=None, sha1=None, label=None, lexer=None, handler=None): cur = None if sid: sid, name, value = sid cur = model.get_content(**{ '$or' : [ { 'digest': { '$regex': '{}$'.format(sid) } }, { 'label' : value } ], 'private': { '$exists': False } }) if sha1: digest, name = sha1[:2] cur = model.get_content(digest = digest).hint([('digest', 1)]) if label: label, name = label cur = model.get_content(label = label).hint([('label', 1)]) if not cur or not cur.count(): return "Not found.\n", 404 paste = cur.__next__() if paste.get('sunset'): request.max_age = (paste['date'] + timedelta(seconds=paste['sunset'])) - datetime.utcnow() if request.max_age < timedelta(): request.max_age = 0 else: request.max_age = request.max_age.seconds if paste['date'] + timedelta(seconds=paste['sunset']) < datetime.utcnow(): max_age = datetime.utcnow() - (paste['date'] + timedelta(seconds=paste['sunset'])) uuid = UUID(hex=paste['_id']) paste = invalidate(uuid) result = model.delete(uuid) if not result['n']: return "This should not happen.", 500 return complex_response(paste, status="expired") content = model._get(paste.get('content')) if paste.get('redirect'): content = content.decode('utf-8') return redirect(content, '{}\n'.format(content)) mimetype, _ = guess_type(name) if not mimetype: mimetype = paste.get('mimetype') if lexer != None: return highlight(content, lexer) if handler != None: return _handler.get(handler, content, mimetype) if mimetype: return Response(content, mimetype=mimetype) return content
def delete(uuid): paste = invalidate(uuid) result = model.delete(uuid) if result['n']: return complex_response(paste, status="deleted") return "Not found.\n", 404
def delete_paste(digest): invalidate(digest=digest) model.delete(digest=digest)
def delete(uuid): id, digest = model.delete(uuid.bytes) if id or digest: url = id_url(b66=id) if id else id_url(sha1=digest) return redirect(url, "{} deleted.\n".format(url), 200) return "Not found.\n", 404