56 lines
1.2 KiB
Python
56 lines
1.2 KiB
Python
from functools import wraps
|
|
import json
|
|
from os import environ
|
|
from pathlib import Path
|
|
from random import randbytes
|
|
from sys import stderr
|
|
|
|
from flask import Flask, redirect, session, g
|
|
|
|
from roc_fnb.util.env_file import env_file
|
|
from roc_fnb.util import log
|
|
from roc_fnb.website.database import Database
|
|
from roc_fnb.website.server.user import setup_user_routes
|
|
from roc_fnb.website.models.user import JwtUser
|
|
|
|
db = Database.from_env()
|
|
|
|
app = Flask(
|
|
import_name=__name__.split('.')[0],
|
|
static_url_path='/',
|
|
template_folder=Path(__file__).absolute().parent / 'templates',
|
|
static_folder=Path(__file__).absolute().parent / 'static',
|
|
)
|
|
|
|
app.secret_key = env_file(
|
|
'FLASK_SECRET',
|
|
default_file='./flask.secret',
|
|
default_fn=lambda: randbytes(12)
|
|
)
|
|
APP_HOSTNAME = environ["APP_HOSTNAME"]
|
|
|
|
|
|
@app.before_request
|
|
def decode_user():
|
|
if user := session.get('user'):
|
|
g.user = JwtUser.from_json(data=json.loads(user))
|
|
g.app_hostname = APP_HOSTNAME
|
|
|
|
|
|
@app.route('/ig')
|
|
def ig_redir():
|
|
return redirect('https://instagram.com/RocFNB')
|
|
|
|
|
|
@app.route('/donate')
|
|
def donate_redir():
|
|
return redirect('https://venmo.com/RocFoodNotBombs')
|
|
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return redirect('/index.html')
|
|
|
|
|
|
setup_user_routes(app, db)
|