from flask import Flask
from flask import request
from flask import render_template
from vec2topic_app import *
import logging
import time
import validators

app = Flask(__name__)

@app.route('/')
def my_form():
    return render_template("input.html")

@app.route('/', methods=['POST'])
def my_form_post():
    LOG_FILENAME='log_vec2topic.log'
    logging.basicConfig(filename=LOG_FILENAME,level=logging.INFO)
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s %(message)s',"%b-%d-%Y %H:%M:%S")
    logger.handlers[0].setFormatter(formatter)

    text = request.form['text']
    logger.info('*'*50)
    logger.info('Running Vec2Topic on %s' %text[:50])
    logger.info('*'*50)
    time1=time.time()
    try:
        if validators.url(text):
            text=read_url(text)

            if text!='problem':
                result,metric,num_words=vec2topic(cleanupContent(text,logger),logger)
            else:
                result='problem'
        else:
            result,metric,num_words=vec2topic(cleanupContent(text,logger),logger)
    except Exception as e:
        result='problem'
    if result=='problem':
        return render_template('error.html')
    else:
        #return render_template('results.html',result=result,time=(int(100*(time.time()-time1))*1./100),metric=metric,num_words="{:,}".format(num_words))
        return render_template('graph.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True)
    
