You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.3 KiB

from couchpotato.core.auth import requires_auth
14 years ago
from couchpotato.core.event import fireEvent
from couchpotato.core.logger import CPLog
from couchpotato.environment import Env
from flask.app import Flask
14 years ago
from flask.blueprints import Blueprint
14 years ago
from flask.globals import request
from flask.helpers import url_for
from flask.templating import render_template
from sqlalchemy.engine import create_engine
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm.session import sessionmaker
14 years ago
from werkzeug.utils import redirect
import os
log = CPLog(__name__)
14 years ago
app = Flask(__name__)
14 years ago
web = Blueprint('web', __name__)
14 years ago
14 years ago
def get_session(engine = None):
engine = engine if engine else get_engine()
14 years ago
return scoped_session(sessionmaker(bind = engine))
def get_engine():
14 years ago
return create_engine(Env.get('db_path') + '?check_same_thread=False', echo = False)
14 years ago
def addView(route, func, static = False):
web.add_url_rule(route + ('' if static else '/'), endpoint = route if route else 'index', view_func = func)
14 years ago
""" Web view """
@web.route('/')
@requires_auth
def index():
return render_template('index.html', sep = os.sep, fireEvent = fireEvent, env = Env)
14 years ago
@app.errorhandler(404)
def page_not_found(error):
index_url = url_for('web.index')
14 years ago
url = getattr(request, 'path')[len(index_url):]
14 years ago
return redirect(index_url + '#' + url)
14 years ago