From e740ad3cf8a5ccd5d20d6f70533136840bc41f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Wed, 30 Nov 2022 16:53:46 +0100 Subject: [PATCH] fix lnbitswallet issue, add ad_space_title, change lntips funding source --- lnbits/extensions/admin/migrations.py | 7 ++++++- lnbits/extensions/admin/models.py | 5 +++++ lnbits/extensions/admin/views_api.py | 4 +++- lnbits/settings.py | 13 ++++++++++++- lnbits/wallets/lntips.py | 11 ++++++----- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/lnbits/extensions/admin/migrations.py b/lnbits/extensions/admin/migrations.py index ddf4d4dd..45480a75 100644 --- a/lnbits/extensions/admin/migrations.py +++ b/lnbits/extensions/admin/migrations.py @@ -24,6 +24,7 @@ async def m001_create_admin_settings_table(db): lnbits_theme_options TEXT, lnbits_custom_logo TEXT, lnbits_ad_space TEXT, + lnbits_ad_space_title TEXT, lnbits_data_folder TEXT, lnbits_database_url TEXT, lnbits_force_https TEXT, @@ -62,7 +63,11 @@ async def m001_create_admin_settings_table(db): boltz_network TEXT, boltz_url TEXT, boltz_mempool_space_url TEXT, - boltz_mempool_space_url_ws TEXT + boltz_mempool_space_url_ws TEXT, + lntips_api_endpoint TEXT, + lntips_api_key TEXT, + lntips_admin_key TEXT, + lntips_invoice_key TEXT ); """ ) diff --git a/lnbits/extensions/admin/models.py b/lnbits/extensions/admin/models.py index 7440fae7..dc665531 100644 --- a/lnbits/extensions/admin/models.py +++ b/lnbits/extensions/admin/models.py @@ -24,6 +24,7 @@ class UpdateSettings(BaseModel): lnbits_theme: str = Query(None) lnbits_custom_logo: str = Query(None) lnbits_ad_space: List[str] = Query(None) + lnbits_ad_space_title: str = Query(None) # funding sources fake_wallet_secret: str = Query(None) @@ -56,6 +57,10 @@ class UpdateSettings(BaseModel): opennode_key: str = Query(None) spark_url: str = Query(None) spark_token: str = Query(None) + lntips_api_endpoint: str = Query(None) + lntips_api_key: str = Query(None) + lntips_admin_key: str = Query(None) + lntips_invoice_key: str = Query(None) class AdminSettings(UpdateSettings): diff --git a/lnbits/extensions/admin/views_api.py b/lnbits/extensions/admin/views_api.py index eb1eff80..dfd6497e 100644 --- a/lnbits/extensions/admin/views_api.py +++ b/lnbits/extensions/admin/views_api.py @@ -5,7 +5,6 @@ from fastapi.params import Depends from starlette.exceptions import HTTPException from lnbits.core.crud import get_wallet -from lnbits.core.models import User from lnbits.decorators import check_admin from lnbits.extensions.admin import admin_ext from lnbits.extensions.admin.models import UpdateSettings @@ -13,6 +12,8 @@ from lnbits.server import server_restart from .crud import delete_settings, get_settings, update_settings, update_wallet_balance +from lnbits.settings import settings, set_settings + @admin_ext.get( "/api/v1/restart/", status_code=HTTPStatus.OK, dependencies=[Depends(check_admin)] @@ -52,6 +53,7 @@ async def api_update_settings( data: UpdateSettings = Body(...), ): settings = await update_settings(data) + set_settings(settings) if settings: return {"status": "Success", "settings": settings.dict()} diff --git a/lnbits/settings.py b/lnbits/settings.py index 67a1ca5a..f84cfb4b 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -57,6 +57,7 @@ class Settings(BaseSettings): ) lnbits_custom_logo: str = Field(default=None) lnbits_ad_space: List[str] = Field(default=[]) + lnbits_ad_space_title: str = Field(default="") # ops lnbits_data_folder: str = Field(default="./data") @@ -79,8 +80,9 @@ class Settings(BaseSettings): "LndWallet", "LntxbotWallet", "LNPayWallet", - "LnbitsWallet", + "LNbitsWallet", "OpenNodeWallet", + "LnTipsWallet", ] ) fake_wallet_secret: str = Field(default="ToTheMoon1") @@ -113,6 +115,10 @@ class Settings(BaseSettings): opennode_key: Optional[str] = Field(default=None) spark_url: Optional[str] = Field(default=None) spark_token: Optional[str] = Field(default=None) + lntips_api_endpoint: Optional[str] = Field(default=None) + lntips_api_key: Optional[str] = Field(default=None) + lntips_admin_key: Optional[str] = Field(default=None) + lntips_invoice_key: Optional[str] = Field(default=None) # boltz boltz_network: str = Field(default="main") @@ -170,6 +176,11 @@ if not settings.lnbits_admin_ui: logger.debug(f"{key}: {value}") +def set_settings(**kwargs): + for key, value in kwargs.items(): + setattr(settings, key, value) + + def set_cli_settings(**kwargs): for key, value in kwargs.items(): setattr(settings, key, value) diff --git a/lnbits/wallets/lntips.py b/lnbits/wallets/lntips.py index 54220c85..9dd43437 100644 --- a/lnbits/wallets/lntips.py +++ b/lnbits/wallets/lntips.py @@ -2,7 +2,6 @@ import asyncio import hashlib import json import time -from os import getenv from typing import AsyncGenerator, Dict, Optional import httpx @@ -16,16 +15,18 @@ from .base import ( Wallet, ) +from lnbits.settings import settings + class LnTipsWallet(Wallet): def __init__(self): - endpoint = getenv("LNTIPS_API_ENDPOINT") + endpoint = settings.lntips_api_endpoint self.endpoint = endpoint[:-1] if endpoint.endswith("/") else endpoint key = ( - getenv("LNTIPS_API_KEY") - or getenv("LNTIPS_ADMIN_KEY") - or getenv("LNTIPS_INVOICE_KEY") + settings.lntips_api_key + or settings.lntips_admin_key + or settings.lntips_invoice_key ) self.auth = {"Authorization": f"Basic {key}"}