Add location recorder
This commit is contained in:
@@ -1,26 +1,32 @@
|
||||
from contextlib import asynccontextmanager
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from src.components.poo_recorder import PooRecorder
|
||||
from src.config import Config
|
||||
from src.util.homeassistant import HomeAssistant
|
||||
from src.util.location_recorder import LocationRecorder
|
||||
from src.util.mqtt import MQTT
|
||||
from src.util.notion import NotionAsync
|
||||
from src.util.ticktick import TickTick
|
||||
|
||||
Config.init()
|
||||
|
||||
location_recorder_db = str(Path(__file__).resolve().parent / ".." / "location_recorder.db")
|
||||
|
||||
ticktick = TickTick()
|
||||
notion = NotionAsync(token=Config.get_env(key="NOTION_TOKEN"))
|
||||
mqtt = MQTT()
|
||||
homeassistant = HomeAssistant(ticktick=ticktick)
|
||||
location_recorder = LocationRecorder(db_path=location_recorder_db)
|
||||
homeassistant = HomeAssistant(ticktick=ticktick, location_recorder=location_recorder)
|
||||
poo_recorder = PooRecorder(mqtt=mqtt, notion=notion, homeassistant=homeassistant)
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def _lifespan(_app: FastAPI): # noqa: ANN202
|
||||
await mqtt.start()
|
||||
await location_recorder.create_db_engine()
|
||||
yield
|
||||
await mqtt.stop()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user