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 01:28:23 -07:00
|
|
|
from tinydb.storages import MemoryStorage
|
2025-09-21 22:11:56 -07:00
|
|
|
|
2025-09-24 01:28:23 -07:00
|
|
|
from ttfrog.db import Database
|
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")
|
|
|
|
|
self.db: Database = Database(storage=MemoryStorage)
|
2025-09-21 22:11:56 -07:00
|
|
|
self._initialized = False
|
|
|
|
|
|
2025-09-24 01:28:23 -07:00
|
|
|
def initialize(self, db: Database = 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")
|
|
|
|
|
self.db = db or Database("ttfrog.db.json")
|
|
|
|
|
self._initialized = True
|
2025-09-21 22:11:56 -07:00
|
|
|
|
|
|
|
|
|
2025-09-24 01:28:23 -07:00
|
|
|
sys.modules[__name__] = ApplicationContext()
|