Initializes Fava client on startup

Initializes the Fava client with default settings when the Castle extension starts.

This ensures the client is ready to interact with Fava immediately and provides feedback if Fava is not configured correctly.

The client is re-initialized if the admin updates settings later.
This commit is contained in:
padreug 2025-11-10 01:02:18 +01:00
parent 2e862d0ebd
commit 750692a2f0

View file

@ -34,7 +34,24 @@ def castle_stop():
def castle_start():
"""Initialize Castle extension background tasks"""
from lnbits.tasks import create_permanent_unique_task
from .fava_client import init_fava_client
from .models import CastleSettings
# Initialize Fava client with default settings
# (Will be re-initialized if admin updates settings)
defaults = CastleSettings()
try:
init_fava_client(
fava_url=defaults.fava_url,
ledger_slug=defaults.fava_ledger_slug,
timeout=defaults.fava_timeout
)
logger.info(f"Fava client initialized: {defaults.fava_url}/{defaults.fava_ledger_slug}")
except Exception as e:
logger.error(f"Failed to initialize Fava client: {e}")
logger.warning("Castle will not function without Fava. Please configure Fava settings.")
# Start background tasks
task = create_permanent_unique_task("ext_castle", wait_for_paid_invoices)
scheduled_tasks.append(task)