Example #1
0
    def new_paste(self, language=None):
        """The 'create a new paste' view."""
        language = local.request.args.get('language', language)
        if language is None:
            language = local.request.session.get('language', 'text')

        code = error = ''
        show_captcha = private = False
        parent = None
        req = local.request
        getform = req.form.get

        if local.request.method == 'POST':
            code = getform('code', u'')
            language = getform('language')

            parent_id = getform('parent')
            if parent_id is not None:
                parent = Paste.get(parent_id)

            spam = getform('webpage') or antispam.is_spam(code)
            if spam:
                error = _('your paste contains spam')
                captcha = getform('captcha')
                if captcha:
                    if check_hashed_solution(captcha):
                        error = None
                    else:
                        error = _('your paste contains spam and the '
                                  'CAPTCHA solution was incorrect')
                show_captcha = True
            if code and language and not error:
                paste = Paste(code, language, parent, req.user_hash,
                              'private' in req.form)
                db.session.add(paste)
                db.session.commit()
                local.request.session['language'] = language
                return redirect(paste.url)

        else:
            if local.request.args.get('private', '0') != '0':
                private = True
            parent_id = req.values.get('reply_to')
            if parent_id is not None:
                parent = Paste.get(parent_id)
                if parent is not None:
                    code = parent.code
                    language = parent.language
                    private = parent.private

        return render_to_response('new_paste.html',
            languages=list_languages(),
            parent=parent,
            code=code,
            language=language,
            error=error,
            show_captcha=show_captcha,
            private=private
        )
Example #2
0
 def show_tree(self, identifier):
     """Display the tree of some related pastes."""
     paste = Paste.resolve_root(identifier)
     if paste is None:
         raise NotFound()
     return render_to_response('paste_tree.html',
                               paste=paste,
                               current=identifier)
Example #3
0
    def new_paste(self, language=None):
        """The 'create a new paste' view."""
        language = local.request.args.get('language', language)
        if language is None:
            language = local.request.session.get('language', 'text')

        code = error = ''
        show_captcha = private = False
        parent = None
        req = local.request
        getform = req.form.get

        if local.request.method == 'POST':
            code = getform('code', u'')
            language = getform('language')

            parent_id = getform('parent')
            if parent_id is not None:
                parent = Paste.get(parent_id)

            spam = getform('webpage') or antispam.is_spam(code)
            if spam:
                error = _('your paste contains spam')
                captcha = getform('captcha')
                if captcha:
                    if check_hashed_solution(captcha):
                        error = None
                    else:
                        error = _('your paste contains spam and the '
                                  'CAPTCHA solution was incorrect')
                show_captcha = True
            if code and language and not error:
                paste = Paste(code, language, parent, req.user_hash, 'private'
                              in req.form)
                db.session.add(paste)
                db.session.commit()
                local.request.session['language'] = language
                return redirect(paste.url)

        else:
            if local.request.args.get('private', '0') != '0':
                private = True
            parent_id = req.values.get('reply_to')
            if parent_id is not None:
                parent = Paste.get(parent_id)
                if parent is not None:
                    code = parent.code
                    language = parent.language
                    private = parent.private

        return render_to_response('new_paste.html',
                                  languages=list_languages(),
                                  parent=parent,
                                  code=code,
                                  language=language,
                                  error=error,
                                  show_captcha=show_captcha,
                                  private=private)
Example #4
0
 def show_tree(self, identifier):
     """Display the tree of some related pastes."""
     paste = Paste.resolve_root(identifier)
     if paste is None:
         raise NotFound()
     return render_to_response('paste_tree.html',
                               paste=paste,
                               current=identifier
                               )
Example #5
0
 def help(self, topic=None):
     if topic is None:
         tmpl_name = 'help/index.html'
     elif topic in known_help_pages:
         tmpl_name = 'help/%s.html' % topic
     else:
         raise NotFound()
     return render_to_response(tmpl_name,
                               help_topics=HELP_PAGES,
                               current_topic=topic,
                               pastebin_url=local.request.host_url,
                               formatters=LANGUAGES,
                               xmlrpc_methods=get_public_methods())
Example #6
0
 def help(self, topic=None):
     if topic is None:
         tmpl_name = 'help/index.html'
     elif topic in known_help_pages:
         tmpl_name = 'help/%s.html' % topic
     else:
         raise NotFound()
     return render_to_response(
         tmpl_name,
         help_topics=HELP_PAGES,
         current_topic=topic,
         pastebin_url=local.request.host_url,
         formatters=LANGUAGES,
         xmlrpc_methods=get_public_methods()
     )
Example #7
0
    def show_paste(self, identifier, raw=False):
        """Show an existing paste."""
        linenos = local.request.args.get('linenos') != 'no'
        paste = Paste.get(identifier)
        if paste is None:
            raise NotFound()
        if raw:
            return Response(paste.code, mimetype='text/plain; charset=utf-8')

        style, css = get_style(local.request)
        return render_to_response('show_paste.html',
            paste=paste,
            style=style,
            css=css,
            styles=STYLES,
            linenos=linenos,
        )
Example #8
0
    def show_paste(self, identifier, raw=False):
        """Show an existing paste."""
        linenos = local.request.args.get('linenos') != 'no'
        paste = Paste.get(identifier)
        if paste is None:
            raise NotFound()
        if raw:
            return Response(paste.code, mimetype='text/plain; charset=utf-8')

        style, css = get_style(local.request)
        return render_to_response(
            'show_paste.html',
            paste=paste,
            style=style,
            css=css,
            styles=STYLES,
            linenos=linenos,
        )
Example #9
0
    def compare_paste(self, new_id=None, old_id=None):
        """Render a diff view for two pastes."""
        getform = local.request.form.get
        # redirect for the compare form box
        if old_id is None:
            old_id = getform('old', '-1').lstrip('#')
            new_id = getform('new', '-1').lstrip('#')
            return redirect('/compare/%s/%s' % (old_id, new_id))

        old = Paste.get(old_id)
        new = Paste.get(new_id)
        if old is None or new is None:
            raise NotFound()

        return render_to_response('compare_paste.html',
                                  old=old,
                                  new=new,
                                  diff=old.compare_to(new, template=True))
Example #10
0
    def compare_paste(self, new_id=None, old_id=None):
        """Render a diff view for two pastes."""
        getform = local.request.form.get
        # redirect for the compare form box
        if old_id is None:
            old_id = getform('old', '-1').lstrip('#')
            new_id = getform('new', '-1').lstrip('#')
            return redirect('/compare/%s/%s' % (old_id, new_id))

        old = Paste.get(old_id)
        new = Paste.get(new_id)
        if old is None or new is None:
            raise NotFound()

        return render_to_response('compare_paste.html',
            old=old,
            new=new,
            diff=old.compare_to(new, template=True)
        )
Example #11
0
    def show_all(self, page=1):
        """Paginated list of pages."""
        def link(page):
            if page == 1:
                return '/all/'
            return '/all/%d' % page

        form_args = local.request.args
        query = Paste.find_all()

        pastes = query.limit(10).offset(10 * (page - 1)).all()
        if not pastes and page != 1:
            raise NotFound()

        return render_to_response('show_all.html',
                                  pastes=pastes,
                                  pagination=generate_pagination(
                                      page, 10, query.count(), link),
                                  css=get_style(local.request)[1],
                                  show_personal='show_personal' in form_args)
Example #12
0
    def show_all(self, page=1):
        """Paginated list of pages."""
        def link(page):
            if page == 1:
                return '/all/'
            return '/all/%d' % page

        form_args = local.request.args
        query = Paste.find_all()

        pastes = query.limit(10).offset(10 * (page - 1)).all()
        if not pastes and page != 1:
            raise NotFound()

        return render_to_response('show_all.html',
            pastes=pastes,
            pagination=generate_pagination(page, 10, query.count(), link),
            css=get_style(local.request)[1],
            show_personal='show_personal' in form_args
        )
Example #13
0
 def rss(self):
     query = Paste.find_all()
     items = query.all()
     return render_to_response('rss.html', items=items,
                               mimetype='application/rss+xml')
Example #14
0
 def not_found(self):
     return render_to_response('not_found.html')
Example #15
0
 def about(self):
     return render_to_response('about.html',
                               lodgeit_version=lodgeit_version)
Example #16
0
 def about(self):
     return render_to_response('about.html')
Example #17
0
 def handle_request(self):
     if local.request.method == "POST":
         return xmlrpc.handle_request()
     return render_to_response("xmlrpc.html")
Example #18
0
 def not_found(self):
     return render_to_response('not_found.html')
Example #19
0
 def handle_request(self):
     if local.request.args.get('method'):
         return json.handle_request()
     return render_to_response('json.html')
Example #20
0
 def about(self):
     return render_to_response('about.html')
Example #21
0
 def about(self):
     return render_to_response('about.html', lodgeit_version=lodgeit_version)
Example #22
0
 def rss(self):
     query = Paste.find_all()
     items = query.all()
     return render_to_response('rss.html',
                               items=items,
                               mimetype='application/rss+xml')
Example #23
0
 def handle_request(self):
     if local.request.args.get('method'):
         return json.handle_request()
     return render_to_response('json.html')
Example #24
0
 def handle_request(self):
     if local.request.method == 'POST':
         return xmlrpc.handle_request()
     return render_to_response('xmlrpc.html')