from flask import Blueprint, redirect, url_for, request, flash, abort, send_file, Response
from flask.ext.login import login_required

from models.database import User, Statement, Speaker, Topic, Event
from models.forms import AddStatementForm

from shared import db, admin_permission, user_permission
from utils import render_layout

from datetime import datetime
import json

import config

speech = Blueprint("speech", __name__)


@speech.route("/")
def index():
    event_id = request.args.get("event", None)
    events = []
    if event_id is not None and event_id.isnumeric() and int(event_id) > -1:
        event = Event.query.filter_by(id=event_id).first()
        if event is not None:
            events.append(event)
    else:
        events = Event.query.all()
    return render_layout("speech_index.html", events=events, event=-1 if len(events) != 1 else events[0].id)

@speech.route("/update")
def update():
    event_id = request.args.get("event", None)
    events = []
    if event_id is not None and event_id.isnumeric() and int(event_id) > -1:
        event = Event.query.filter_by(id=event_id).first()
        if event is not None:
            events.append(event)
    else:
        events = Event.query.all()
    return render_layout("speech_content_index.html", events=events)

@speech.route("/update_index.js")
def update_index_js():
    update_interval = config.UPDATE_INDEX_INTERVAL or 1
    div = "rede-content-div"
    mode = request.args.get("mode", None)
    event_id = request.args.get("event", -1)
    target_url = url_for(".update", event=event_id)
    return render_layout("update.js", update_interval=update_interval, div=div, target_url=target_url, prefix="update_index_")