# Copyright Sage Vaillancourt 2021 from flask import (Blueprint, render_template, request, make_response) from wtforms import Form, BooleanField, StringField, TextAreaField, validators from latty import (CLData, generate) writing_blueprint = Blueprint('writing', __name__,) class CLForm(Form): username = StringField('Username:', [validators.Length(min=4, max=99)], default="Sage Bernerner" ) company = StringField('Company:', [validators.Length(min=4, max=99)], default="BananaCorp" ) jobandpronoun = StringField('Job and Pronoun (a/an):', [validators.Length(min=4, max=99)], default="a banana stocker" ) skilltypes = StringField('Skill Type:', [validators.Length(min=4, max=99)], default="practical" ) myskills = StringField('My Skills:', [validators.Length(min=4, max=99)], default="stocking bananas" ) closingtext = TextAreaField('Closing Text:', [validators.Length(min=4, max=99)], default="I look forward to hearing from you" ) body_string = ("My name is \\username. I would like to work as " "\\jobandpronoun with your company. I think my \\skilltypes knowledge " "of \\myskills will contribute well to your team.\n\n" "I am passionate about my work, and think we would work well together.\n\n" "Thank you for your consideration.") body = TextAreaField('Body:', [validators.Length(min=4, max=9999)], default=body_string ) def get_unique(): import uuid unique = str(uuid.uuid1().hex) print("Unique ID: " + unique) return unique @writing_blueprint.route('/', methods=('GET', 'POST')) def index(): import urllib.parse form = CLForm(request.form) if request.method == 'POST' and form.validate(): data = CLData( username=form.username.data, company=form.company.data, jobandpronoun=form.jobandpronoun.data, skilltypes=form.skilltypes.data, myskills=form.myskills.data, closingtext=form.closingtext.data, body=form.body.data, ) resp = generate(data, get_unique()) # Save entered data as cookies on user's machine if not resp: resp = make_response(render_template('writing.html', form=form, unique=get_unique(), )) for pair in data.get_pairs(): resp.set_cookie(pair[0], urllib.parse.quote(pair[1])) return resp return render_template('writing.html', form=form, unique=get_unique(), )