Using dotenv for config

This commit is contained in:
Tris Forster 2025-09-29 23:18:54 +10:00
parent 9266a1f131
commit cdb36298ca

View File

@ -1,24 +1,26 @@
from math import ceil from math import ceil
from fastapi import FastAPI, Request from fastapi import FastAPI, Request, BackgroundTasks
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from typing import Any from typing import Any
import logging import logging
import subprocess import subprocess
import os.path import os.path
from dotenv import dotenv_values
from recoll import recoll from recoll import recoll
from fastapi import BackgroundTasks
# from .config import settings
logger = logging.getLogger() logger = logging.getLogger()
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
SQUIRREL_FOLDER = os.path.dirname(os.path.realpath(__file__)) config = {**dotenv_values(".env"), **os.environ}
DOC_FOLDER = "/mnt/docs" SQUIRREL_APP = os.path.dirname(os.path.realpath(__file__)) + "/app"
SQUIRREL_ICONS = config.get("SQUIRREL_ICONS", "/usr/share/icons/breeze/mimetypes/32")
DOC_FOLDER = config.get("SQUIRREL_DOCS", "/mnt/docs")
STRIP_CHARS = len(DOC_FOLDER) + len("file:///") STRIP_CHARS = len(DOC_FOLDER) + len("file:///")
@ -38,14 +40,14 @@ class Recoll(object):
repo = Recoll() repo = Recoll()
app = FastAPI() app = FastAPI()
app.mount("/static", StaticFiles(directory=f"{SQUIRREL_FOLDER}/app/static")) app.mount("/static", StaticFiles(directory=f"{SQUIRREL_APP}/static"))
app.mount("/docs", StaticFiles(directory=DOC_FOLDER)) app.mount("/docs", StaticFiles(directory=DOC_FOLDER))
app.mount( app.mount(
"/icons", "/icons",
StaticFiles(directory="/usr/share/icons/breeze/mimetypes/32", follow_symlink=True), StaticFiles(directory=SQUIRREL_ICONS, follow_symlink=True),
) )
templates = Jinja2Templates(directory=f"{SQUIRREL_FOLDER}/app/templates") templates = Jinja2Templates(directory=f"{SQUIRREL_APP}/templates")
@app.get("/") @app.get("/")