vtt/src/ttfrog/app.py

28 lines
775 B
Python
Raw Normal View History

2025-09-21 22:11:56 -07:00
import os
2025-09-24 01:28:23 -07:00
import sys
2025-09-21 22:11:56 -07:00
from flask import Flask
2025-09-24 22:03:30 -07:00
from grung.db import GrungDB
2025-09-24 01:28:23 -07:00
from tinydb.storages import MemoryStorage
2025-09-21 22:11:56 -07:00
2025-09-24 22:03:30 -07:00
from ttfrog import schema
2025-09-21 22:11:56 -07:00
class ApplicationContext:
2025-09-24 01:28:23 -07:00
def __init__(self):
self.web: Flask = Flask("ttfrog")
2025-09-24 22:03:30 -07:00
self.db: GrungDB = None
2025-09-21 22:11:56 -07:00
self._initialized = False
2025-09-24 22:03:30 -07:00
def initialize(self, db: GrungDB = None):
2025-09-21 22:11:56 -07:00
if not self._initialized:
2025-09-24 01:28:23 -07:00
self.web.config["SECRET_KEY"] = os.getenv("SECRET_KEY", "secret string")
2025-09-24 22:03:30 -07:00
if os.environ.get("TTFROG_IN_MEMORY_DB"):
self.db = GrungDB.with_schema(schema, storage=MemoryStorage)
else:
self.db = GrungDB.with_schema(schema, "ttfrog.db.json")
2025-09-24 01:28:23 -07:00
self._initialized = True
2025-09-21 22:11:56 -07:00
2025-09-24 01:28:23 -07:00
sys.modules[__name__] = ApplicationContext()