4 from django.http import HttpResponse, Http404
5 from django.shortcuts import get_object_or_404, render
16 if request.method != 'POST':
19 text = request.POST.get('text')
21 tf = models.TextFile(text=text, edit_key=secrets.token_urlsafe())
30 'edit_key': tf.edit_key,
34 def text_file(request, pk):
35 if request.method != 'GET':
38 pk_int = int.from_bytes(base64.urlsafe_b64decode(pk), 'big')
40 tf = get_object_or_404(models.TextFile, pk=pk_int)
42 if request.GET.get('raw'):
43 return HttpResponse(tf.text, content_type='text/plain')
45 font = request.GET.get('font', 'sans')
53 'text': tf.text.strip(),
57 def edit(request, pk):
58 pk_int = int.from_bytes(base64.urlsafe_b64decode(pk), 'big')
60 tf = get_object_or_404(models.TextFile, pk=pk_int)
66 if request.method == 'POST':
67 edit_key = request.POST.get('edit_key','')
68 text = request.POST.get('text','')
70 context['text'] = text
72 if secrets.compare_digest(edit_key, tf.edit_key):
73 context['edit_key'] = edit_key
78 context['incorrect_key'] = True
80 elif request.method == 'GET':
81 context['text'] = tf.text