예제 #1
0
파일: paste.py 프로젝트: mcdonc/marlton
def pastebin_manage_view(context, request):
    params = request.params
    message = params.get('message', u'')

    if params.has_key('form.submitted'):
        form = marshal(request.environ, request.body_file)
        checkboxes = form.get('delete', [])
        for checkbox in checkboxes:
            del context[checkbox]
        message = '%s pastes deleted' % len(checkboxes)
        url = resource_url(context, request, 'manage',
                           query={'message':message})
        response = HTTPFound(location=url)
        response.headers['Location'] = url
        return response

    pastebin_url = resource_url(context, request)
    pastes = utils.get_pastes(context, request, sys.maxint)

    return dict(
        api = utils.API(context, request),
        pastes = pastes,
        message = message,
        pastebin_url = pastebin_url,
        )
예제 #2
0
파일: paste.py 프로젝트: mcdonc/marlton
def entry_view(context, request):
    paste = context.paste or u''
    try:
        if context.language:
            l = lexers.get_lexer_by_name(context.language)
        else:
            l = lexers.guess_lexer(context.paste)
    except util.ClassNotFound:
        # couldn't guess lexer
        l = lexers.TextLexer()

    formatted_paste = highlight(paste, l, utils.formatter)
    pastes = utils.get_pastes(context, request, 10)

    return dict(
        api = utils.API(context, request),
        author = context.author_name,
        date = context.date.strftime('%x at %X'),
        style_defs = utils.style_defs,
        lexer_name = l.name,
        paste = formatted_paste,
        pastes = pastes,
        message = None,
        pastebin_url = resource_url(context.__parent__, request)
        )
예제 #3
0
파일: paste.py 프로젝트: mcdonc/marlton
def pastebin_rss_view(context, request):
    pastebin_url = resource_url(context, request)
    pastes = utils.get_pastes(context, request, sys.maxint)
    if pastes:
        last_date=pastes[0]['date']
    else:
        last_date=None
    for paste in pastes:
        paste['body'] = utils.nl_to_br(paste['body'])
    response = dict(
        pastes = pastes,
        last_date = last_date,
        pastebin_url = pastebin_url,
        )
    request.response_content_type = 'application/rss+xml'
    return response
예제 #4
0
파일: paste.py 프로젝트: mcdonc/marlton
        message = None
        try:
            schema.to_python(request.params)
        except formencode.validators.Invalid, why:
            message = str(why)
        else:
            pobj = PasteEntry(author_name, paste, language)
            pasteid = context.add_item(pobj)
            url = '%s%s' % (pastebin_url, pasteid)
            response = HTTPFound(location=url)
            response.set_cookie(utils.COOKIE_AUTHOR, author_name,
                                max_age=864000)
            response.set_cookie(utils.COOKIE_LANGUAGE, language)
            return response

    pastes = utils.get_pastes(context, request, 10)

    return dict(
        api = utils.API(context, request),
        author_name = author_name,
        paste = paste,
        lexers = utils.lexer_info,
        message = message,
        pastes = pastes,
        pastebin_url = pastebin_url,
        can_manage = can_manage,
        manage_url = resource_url(context, request, 'manage'),
        )
    
@view_config(for_=IPasteBin, name='manage', permission='manage',
             renderer='marlton.views:templates/pastebin_manage.pt')