Source code for officiumdivinum.api
# from .update_server import * # noqa
from pathlib import Path
import jinja2
from flask_api import FlaskAPI
from markdown import markdown
from .bible import get_verses # noqa
from .martyrology import * # noqa
from .office import * # noqa
from .test_api import test_api_page # noqa
[docs]def markdown_no_p(text):
"""Wrap text in markdown without wrapping it in paragaph tags."""
md = markdown(text)
p = "<p>"
end_p = "</p>"
if md.startswith(p) and md.endswith(end_p):
md = md[3:-4]
return jinja2.Markup(md)
[docs]def create_app(test_config=None):
"""Create and configure flask app."""
app = FlaskAPI(__name__, instance_relative_config=True)
app.jinja_env.filters["markdown"] = markdown_no_p
app.config.from_mapping(
SECRET_KEY="dev",
APP_DATABASE=Path(app.instance_path) / "officiumdivinum.sqlite",
)
if test_config is None:
app.config.from_pyfile("config.py", silent=True)
else:
app.config.from_mapping(test_config)
with Path("/tmp/instance").open("w") as f:
f.write(app.instance_path)
Path(app.instance_path).mkdir(parents=True, exist_ok=True)
from . import database
database.init(app)
from .bible import bible
from .martyrology import martyrology
from .office import office
from .test_api import test_page
from .update_server import update_server
app.register_blueprint(office)
app.register_blueprint(test_page)
app.register_blueprint(martyrology)
app.register_blueprint(bible)
app.register_blueprint(update_server)
@app.route("/hello")
def hello():
return "hello world"
return app