fix lnbitswallet issue, add ad_space_title, change lntips funding source

This commit is contained in:
dni ⚡ 2022-11-30 16:53:46 +01:00
parent 8b86936b07
commit e740ad3cf8
5 changed files with 32 additions and 8 deletions

View file

@ -24,6 +24,7 @@ async def m001_create_admin_settings_table(db):
lnbits_theme_options TEXT, lnbits_theme_options TEXT,
lnbits_custom_logo TEXT, lnbits_custom_logo TEXT,
lnbits_ad_space TEXT, lnbits_ad_space TEXT,
lnbits_ad_space_title TEXT,
lnbits_data_folder TEXT, lnbits_data_folder TEXT,
lnbits_database_url TEXT, lnbits_database_url TEXT,
lnbits_force_https TEXT, lnbits_force_https TEXT,
@ -62,7 +63,11 @@ async def m001_create_admin_settings_table(db):
boltz_network TEXT, boltz_network TEXT,
boltz_url TEXT, boltz_url TEXT,
boltz_mempool_space_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
); );
""" """
) )

View file

@ -24,6 +24,7 @@ class UpdateSettings(BaseModel):
lnbits_theme: str = Query(None) lnbits_theme: str = Query(None)
lnbits_custom_logo: str = Query(None) lnbits_custom_logo: str = Query(None)
lnbits_ad_space: List[str] = Query(None) lnbits_ad_space: List[str] = Query(None)
lnbits_ad_space_title: str = Query(None)
# funding sources # funding sources
fake_wallet_secret: str = Query(None) fake_wallet_secret: str = Query(None)
@ -56,6 +57,10 @@ class UpdateSettings(BaseModel):
opennode_key: str = Query(None) opennode_key: str = Query(None)
spark_url: str = Query(None) spark_url: str = Query(None)
spark_token: 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): class AdminSettings(UpdateSettings):

View file

@ -5,7 +5,6 @@ from fastapi.params import Depends
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.crud import get_wallet from lnbits.core.crud import get_wallet
from lnbits.core.models import User
from lnbits.decorators import check_admin from lnbits.decorators import check_admin
from lnbits.extensions.admin import admin_ext from lnbits.extensions.admin import admin_ext
from lnbits.extensions.admin.models import UpdateSettings 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 .crud import delete_settings, get_settings, update_settings, update_wallet_balance
from lnbits.settings import settings, set_settings
@admin_ext.get( @admin_ext.get(
"/api/v1/restart/", status_code=HTTPStatus.OK, dependencies=[Depends(check_admin)] "/api/v1/restart/", status_code=HTTPStatus.OK, dependencies=[Depends(check_admin)]
@ -52,6 +53,7 @@ async def api_update_settings(
data: UpdateSettings = Body(...), data: UpdateSettings = Body(...),
): ):
settings = await update_settings(data) settings = await update_settings(data)
set_settings(settings)
if settings: if settings:
return {"status": "Success", "settings": settings.dict()} return {"status": "Success", "settings": settings.dict()}

View file

@ -57,6 +57,7 @@ class Settings(BaseSettings):
) )
lnbits_custom_logo: str = Field(default=None) lnbits_custom_logo: str = Field(default=None)
lnbits_ad_space: List[str] = Field(default=[]) lnbits_ad_space: List[str] = Field(default=[])
lnbits_ad_space_title: str = Field(default="")
# ops # ops
lnbits_data_folder: str = Field(default="./data") lnbits_data_folder: str = Field(default="./data")
@ -79,8 +80,9 @@ class Settings(BaseSettings):
"LndWallet", "LndWallet",
"LntxbotWallet", "LntxbotWallet",
"LNPayWallet", "LNPayWallet",
"LnbitsWallet", "LNbitsWallet",
"OpenNodeWallet", "OpenNodeWallet",
"LnTipsWallet",
] ]
) )
fake_wallet_secret: str = Field(default="ToTheMoon1") fake_wallet_secret: str = Field(default="ToTheMoon1")
@ -113,6 +115,10 @@ class Settings(BaseSettings):
opennode_key: Optional[str] = Field(default=None) opennode_key: Optional[str] = Field(default=None)
spark_url: Optional[str] = Field(default=None) spark_url: Optional[str] = Field(default=None)
spark_token: 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
boltz_network: str = Field(default="main") boltz_network: str = Field(default="main")
@ -170,6 +176,11 @@ if not settings.lnbits_admin_ui:
logger.debug(f"{key}: {value}") logger.debug(f"{key}: {value}")
def set_settings(**kwargs):
for key, value in kwargs.items():
setattr(settings, key, value)
def set_cli_settings(**kwargs): def set_cli_settings(**kwargs):
for key, value in kwargs.items(): for key, value in kwargs.items():
setattr(settings, key, value) setattr(settings, key, value)

View file

@ -2,7 +2,6 @@ import asyncio
import hashlib import hashlib
import json import json
import time import time
from os import getenv
from typing import AsyncGenerator, Dict, Optional from typing import AsyncGenerator, Dict, Optional
import httpx import httpx
@ -16,16 +15,18 @@ from .base import (
Wallet, Wallet,
) )
from lnbits.settings import settings
class LnTipsWallet(Wallet): class LnTipsWallet(Wallet):
def __init__(self): def __init__(self):
endpoint = getenv("LNTIPS_API_ENDPOINT") endpoint = settings.lntips_api_endpoint
self.endpoint = endpoint[:-1] if endpoint.endswith("/") else endpoint self.endpoint = endpoint[:-1] if endpoint.endswith("/") else endpoint
key = ( key = (
getenv("LNTIPS_API_KEY") settings.lntips_api_key
or getenv("LNTIPS_ADMIN_KEY") or settings.lntips_admin_key
or getenv("LNTIPS_INVOICE_KEY") or settings.lntips_invoice_key
) )
self.auth = {"Authorization": f"Basic {key}"} self.auth = {"Authorization": f"Basic {key}"}