#!/usr/bin/env/ python

from flask import Flask, render_template, request, Response
# from weasyprint import HTML
from .pagedjs import make_pdf
from .settings import DEBUG, BASEURL

# Spacy tries to import CUDA, do not break when it fails
try:
  from .paseo import crear_camino
except ModuleNotFoundError:
  pass

import os.path

basepath = os.path.dirname(__file__)

app = Flask(__name__)

# Book HTML is loaded through filesystem, in a tmp dir, make path absolute.
PAGEDJS_STATIC_DIR = os.path.join(basepath, 'static')

@app.route('{}/'.format(BASEURL))
def index():
  return render_template('index.html')

@app.route('{}/book'.format(BASEURL), methods=['POST'])
def book():
  fragment = max(0, min(1, int(request.form['fragment'])))

  first_word = 'un'

  if fragment == 0:
    novel = os.path.join(basepath, '../data/emilia_prueba.txt')
    author = 'Emilia Pardo Bazán' # Non breaking spaces
    title = 'La Madre Naturaleza' # Non breaking spaces
  else:
    novel = os.path.join(basepath, '../data/prueba.txt')
    author = 'Benito Pérez Gáldos' # Non breaking spaces
    title = 'Miau'

  path = crear_camino(novel, first_word)

  context = { 
    'title': title, 
    'author': author, 
    'path': path, 
    'STATIC_DIR': '/static' if DEBUG else PAGEDJS_STATIC_DIR,
    'DEBUG': DEBUG
  }
  
  html = render_template('book.html', **context)
  
  if (DEBUG):
    return html
  else:
    pdf = make_pdf(html)

    r = Response(pdf, mimetype='application/pdf')

    r.headers.extend({
      'Content-Disposition': 'attachment; filename="Paseo por arboles de madrid.pdf"'
    })

    return r
