From 750692a2f0f29185fa8892e2aa1092e70c7f7e81 Mon Sep 17 00:00:00 2001 From: padreug Date: Mon, 10 Nov 2025 01:02:18 +0100 Subject: [PATCH] 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. --- __init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/__init__.py b/__init__.py index 014ffec..1a68806 100644 --- a/__init__.py +++ b/__init__.py @@ -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)