| 12345678910111213141516171819202122232425262728 |
- from base64 import b64encode
- from datetime import datetime
- from django.http import HttpResponse, HttpResponseBadRequest
- from django.shortcuts import render
- from django.views import View
- from .forms import CrosswordForm
- from .xword import extract_crossword_grid, grid_to_png
- class HomeView(View):
- def get(self, request, *args, **kwargs):
- return render(request, 'home/index.html', {'form': CrosswordForm()})
- def post(self, request, *args, **kwargs):
- form = CrosswordForm(request.POST, request.FILES)
- if not form.is_valid():
- return HttpResponseBadRequest('Invalid form data')
- warnings, grid, num_rows, num_cols, block_img = extract_crossword_grid(
- form.cleaned_data['file'].temporary_file_path(),
- filter_colours=False
- )
- image = grid_to_png(grid, num_rows, num_cols)
- return render(request, 'home/output.html', {
- 'warnings': warnings,
- 'image_file_name': 'xword_{}.png'.format(datetime.now().strftime('%Y%m%d_%H%M%S')),
- 'image_url': 'data:image/png;base64,' + b64encode(image).decode()
- })
|