示例#1
0
def manage(request):
    if request.method == 'POST':
        t = request.POST.get('title', None)
        l = request.POST.get('lang', None)
        c = request.POST.get('content', None)

        snippet = Paste(title=t, lang=l, content=c)
        snippet.save()

    #Filtrar:
    lang = request.GET.get('l', None)
    query = request.GET.get('q', None)
    #obtener todos los snippets
    snippets = Paste.objects.all()
    #snippets es un QuerySet, y éstos son encadenables (se les
    #pueden aplicar otros querysets)
    if lang:
        snippets = snippets.filter(lang=lang)
    if query:
        snippets = snippets.filter(title__icontains=query)
    #obtener la plantilla
    template = loader.get_template('list.html')
    context = Context({
        'snippets': snippets,
        'langs': Paste.LANGS,
        'choice': lang
    })
    return HttpResponse(template.render(context))
示例#2
0
def createPaste(request):
    if request.method == 'GET':
        return HttpResponse("This address is meant for POST requests.\n")

    lUsername = request.POST.get('username')
    lPassword = request.POST.get('password')
    lTitle = request.POST.get('title')
    lContent = request.POST.get('content')
    if lTitle == None:
        lTitle = "Untitled"

    p = Paste(content = lContent, title = lTitle)

    if lUsername != None and lPassword != None:
        if User.objects.filter(username=lUsername).count() != 0:
            lUser = User.objects.filter(username = lUsername)[0]
            if check_password(lPassword, lUser.password):
                p.owner = lUser
            else:
                return HttpResponse("Authentification failed:")
        else:
            return HttpResponse("User does not exist.")

    p.save()
    return HttpResponse("http://localhost:8000/paste/" + str(p.id) + "\n")
示例#3
0
def paste_view(request, pastehash = None):
    """Basic pastebin."""

    context = {}
    context['errors'] = []
    
    if request.method == "POST" and request.POST:
        paste = Paste()
        pasteform = PasteForm(request.POST, instance=paste)

        if pasteform.is_valid():
            paste = pasteform.save()
            return redirect(paste.get_absolute_url())
            
    else:
        if pastehash:
            paste = get_object_or_404(Paste, id=pastehash)
            paste.save()
            context['paste'] = paste

    # For now, I'm going to leave the expiration here.
    Paste.objects.remove_expired()

    pasteform = PasteForm()
    context['pasteform'] = pasteform

    context['previous_pastes'] = Paste.objects.all()[:settings.SHOWN_RECENT_PASTES]

    return render(request, 'paste.html', context)
示例#4
0
    def test_many_create_paste(self):
        """Because I can. Also, makes a good stress test.
        My current ID length is set to 6. This should give me a hash space
        of just over a billion. 32^6. Collisions won't be an issue."""
        count = 1000  # 1,000,000 takes just under a half hour on my setup
        for x in xrange(count):
            p = Paste(title="test%s" % x, text="multiple test %s" % x)
            p.save()

        self.assertEqual(count, Paste.objects.count())
def new(request):
	if request.POST.has_key('text'):
		pasted = Paste()
		pasted.text = request.POST['text']
		pasted.save()
		return HttpResponseRedirect(reverse('pastebin.views.show', kwargs={'id': pasted.id}))
#		return HttpResponseRedirect("/%i/" % pasted.id)
	else:
		return render_to_response('input.html',
			context_instance=RequestContext(request))
示例#6
0
def _create_random_paste(user,
                         syntax,
                         date=datetime.datetime.now(),
                         expires_in=10 * 60):
    paste = Paste()
    paste.title = _create_random_string()
    paste.content = _create_random_string()
    paste.syntax = syntax
    paste.expires_in = expires_in
    paste.author = user
    paste.created = date
    paste.save()

    return paste
示例#7
0
def main(request):
    if request.method == "POST":
        previous = request.POST["content"]

        new_hash = previous.strip()
        id = hashlib.md5(new_hash.encode()).hexdigest()

        try:
            Paste.object.get(url=id)
        except:
            p = Paste(content=previous, url=id)
            p.save()

        new_url = 'http://%s%s' % ('127.0.0.1:8000/pastebin/fetch_paste/', id)
        return render(request, 'pastebin/index.html', {'new_url': new_url})
    else:
        return render(request, 'pastebin/index.html')
示例#8
0
def page(request):
    if request.POST:
        form = PasteForm(request.POST)
        if request.user.is_authenticated():
            user_obj = User.objects.get(username=request.user)
        else:
            try:
                user_obj = User.objects.get(username='******')
            except:
                # Create a dummy user
                user_obj = User.objects.create_user(username='******',
                                                    password='******')
                user_obj.is_active = False
                user_obj.is_staff = False
                user_obj.first_name = 'Temp User'
                user_obj.save()

        if form.is_valid():
            content = form.cleaned_data['content']
            title = form.cleaned_data['title']
            syntax = form.cleaned_data['syntax']
            createDate = form.cleaned_data['createDate']
            expiryDate = form.cleaned_data['expiryDate']

            new_paste = Paste(author=user_obj,
                              content=content,
                              title=title,
                              syntax=syntax,
                              createDate=createDate,
                              expiryDate=expiryDate)
            new_paste.save()
            return redirect('paste_detail/' + str(new_paste.id) + '/')
        else:
            return render(request, 'paste_form.html', {'form': form})
    else:
        form = PasteForm()
    return render(request, 'paste_form.html', {'form': form})
示例#9
0
def manage(request):
    if request.method == "POST":
        t = request.POST.get("title", None)
        l = request.POST.get("lang", None)
        c = request.POST.get("content", None)

        snippet = Paste(title=t, lang=l, content=c)
        snippet.save()

    # Filtrar:
    lang = request.GET.get("l", None)
    query = request.GET.get("q", None)
    # obtener todos los snippets
    snippets = Paste.objects.all()
    # snippets es un QuerySet, y éstos son encadenables (se les
    # pueden aplicar otros querysets)
    if lang:
        snippets = snippets.filter(lang=lang)
    if query:
        snippets = snippets.filter(title__icontains=query)
    # obtener la plantilla
    template = loader.get_template("list.html")
    context = Context({"snippets": snippets, "langs": Paste.LANGS, "choice": lang})
    return HttpResponse(template.render(context))
示例#10
0
def new_paste():
    form = PasteForm()
    uu_id = uuid.uuid4()
    if form.validate_on_submit():
        paste = Paste(content=form.content.data,
                      title=form.title.data,
                      uu_id=uu_id.hex,
                      private=form.private.data,
                      lang=form.lang.data)
        db.session.add(paste)
        db.session.commit()
        flash('Your paste has been created!', 'success')
        return redirect(url_for('paste', paste_uuid=uu_id.hex))
    return render_template('create_paste.html',
                           title='New Paste',
                           form=form,
                           legend='New Paste')
示例#11
0
def login(request):
    form = AuthenticationForm(data=request.POST or None)

    if request.POST:
        if form.is_valid():
            user = form.get_user()

            pastes = Paste.get_for_session(request.session)
            num_affected = pastes.update(author=user)

            auth_login(request, user)

            if num_affected:
                messages.success(request, '{0} note{1} was successfully transferred to your account.'.format(
                    num_affected,
                    pluralize(num_affected)
                ))

            return redirect('paste_create')

    return TemplateResponse(request, 'application/login.html', {
        'form': form
    })
示例#12
0
def PasteListView(request):
    if request.POST :
    	a=Paste(title=request.POST['title'],syntax=request.POST['syntax'],poster=request.POST['poster'],content=request.POST['content'])
    	a.save()
    paste=Paste.objects.all()
    return render_to_response("pastebin/paste_list.html",{'object_list':paste})
示例#13
0
    def save(self):
        cd = self.cleaned_data
        paste = Paste(code=cd['code'])
        paste.save()

        return paste
示例#14
0
    def test_create_paste(self):
        self.p = Paste(title="testly", text="Testcase")
        self.p.save()

        self.assertEqual(Paste.objects.get(id=self.p.id), self.p)
        self.p.delete()