mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-10-05 12:28:22 +00:00
refactor(settings): remove NIP-91 fields; keep relays under discovery; drop openrouter_base_url
This commit is contained in:
@@ -69,29 +69,13 @@ class Settings(BaseSettings):
|
|||||||
)
|
)
|
||||||
models_path: str = Field(default="models.json", env="MODELS_PATH")
|
models_path: str = Field(default="models.json", env="MODELS_PATH")
|
||||||
source: str = Field(default="", env="SOURCE")
|
source: str = Field(default="", env="SOURCE")
|
||||||
openrouter_base_url: str = Field(
|
|
||||||
default="https://openrouter.ai/api/v1", env="BASE_URL"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Secrets / optional runtime controls
|
# Secrets / optional runtime controls
|
||||||
provider_id: str = Field(default="", env="PROVIDER_ID")
|
provider_id: str = Field(default="", env="PROVIDER_ID")
|
||||||
nip91_provider_id: str = Field(default="", env="NIP91_PROVIDER_ID")
|
|
||||||
nsec: str = Field(default="", env="NSEC")
|
nsec: str = Field(default="", env="NSEC")
|
||||||
|
|
||||||
# NIP-91
|
# Discovery
|
||||||
relays: list[str] = Field(default_factory=list, env="RELAYS")
|
relays: list[str] = Field(default_factory=list, env="RELAYS")
|
||||||
nip91_backoff_base_seconds: float = Field(
|
|
||||||
default=5.0, env="NIP91_BACKOFF_BASE_SECONDS"
|
|
||||||
)
|
|
||||||
nip91_backoff_max_seconds: float = Field(
|
|
||||||
default=900.0, env="NIP91_BACKOFF_MAX_SECONDS"
|
|
||||||
)
|
|
||||||
nip91_backoff_jitter_ratio: float = Field(
|
|
||||||
default=0.2, env="NIP91_BACKOFF_JITTER_RATIO"
|
|
||||||
)
|
|
||||||
nip91_announcement_interval: int = Field(
|
|
||||||
default=24 * 60 * 60, env="NIP91_ANNOUNCEMENT_INTERVAL"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def _compute_primary_mint(cashu_mints: list[str]) -> str:
|
def _compute_primary_mint(cashu_mints: list[str]) -> str:
|
||||||
|
|||||||
+7
-18
@@ -287,7 +287,7 @@ def discover_onion_url_from_tor(base_dir: str = "/var/lib/tor") -> str | None:
|
|||||||
|
|
||||||
|
|
||||||
async def _determine_provider_id(public_key_hex: str, relay_urls: list[str]) -> str:
|
async def _determine_provider_id(public_key_hex: str, relay_urls: list[str]) -> str:
|
||||||
explicit = settings.provider_id or settings.nip91_provider_id
|
explicit = settings.provider_id
|
||||||
if explicit:
|
if explicit:
|
||||||
logger.info(f"Using configured provider_id from env: {explicit}")
|
logger.info(f"Using configured provider_id from env: {explicit}")
|
||||||
return explicit
|
return explicit
|
||||||
@@ -368,10 +368,7 @@ async def announce_provider() -> None:
|
|||||||
logger.info(f"Using Nostr pubkey: {public_key_hex}")
|
logger.info(f"Using Nostr pubkey: {public_key_hex}")
|
||||||
|
|
||||||
# Configure relays first (RELAYS only)
|
# Configure relays first (RELAYS only)
|
||||||
try:
|
relay_urls = [u.strip() for u in getattr(settings, "relays", []) if u.strip()]
|
||||||
relay_urls = [u.strip() for u in settings.relays if u.strip()]
|
|
||||||
except Exception:
|
|
||||||
relay_urls = settings.relays
|
|
||||||
if not relay_urls:
|
if not relay_urls:
|
||||||
relay_urls = [
|
relay_urls = [
|
||||||
"wss://relay.nostr.band",
|
"wss://relay.nostr.band",
|
||||||
@@ -438,15 +435,10 @@ async def announce_provider() -> None:
|
|||||||
metadata=metadata,
|
metadata=metadata,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Backoff configuration and state
|
# Backoff configuration and state (sensible defaults)
|
||||||
try:
|
backoff_base = 5.0
|
||||||
backoff_base = settings.nip91_backoff_base_seconds
|
backoff_max = 900.0
|
||||||
backoff_max = settings.nip91_backoff_max_seconds
|
backoff_jitter_ratio = 0.2
|
||||||
backoff_jitter_ratio = settings.nip91_backoff_jitter_ratio
|
|
||||||
except Exception:
|
|
||||||
backoff_base = settings.nip91_backoff_base_seconds
|
|
||||||
backoff_max = settings.nip91_backoff_max_seconds
|
|
||||||
backoff_jitter_ratio = settings.nip91_backoff_jitter_ratio
|
|
||||||
relay_next_allowed: dict[str, float] = {}
|
relay_next_allowed: dict[str, float] = {}
|
||||||
relay_current_delay: dict[str, float] = {}
|
relay_current_delay: dict[str, float] = {}
|
||||||
|
|
||||||
@@ -510,10 +502,7 @@ async def announce_provider() -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Re-announce periodically (every 24 hours)
|
# Re-announce periodically (every 24 hours)
|
||||||
try:
|
announcement_interval = 24 * 60 * 60
|
||||||
announcement_interval = settings.nip91_announcement_interval
|
|
||||||
except Exception:
|
|
||||||
announcement_interval = settings.nip91_announcement_interval
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ MODELS: list[Model] = []
|
|||||||
|
|
||||||
def fetch_openrouter_models(source_filter: str | None = None) -> list[dict]:
|
def fetch_openrouter_models(source_filter: str | None = None) -> list[dict]:
|
||||||
"""Fetches model information from OpenRouter API."""
|
"""Fetches model information from OpenRouter API."""
|
||||||
base_url = settings.openrouter_base_url
|
base_url = "https://openrouter.ai/api/v1"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with urlopen(f"{base_url}/models") as response:
|
with urlopen(f"{base_url}/models") as response:
|
||||||
|
|||||||
@@ -42,13 +42,13 @@ class Model(TypedDict):
|
|||||||
|
|
||||||
|
|
||||||
OUTPUT_FILE = os.getenv("OUTPUT_FILE", "models.json")
|
OUTPUT_FILE = os.getenv("OUTPUT_FILE", "models.json")
|
||||||
BASE_URL = os.getenv("BASE_URL", "https://openrouter.ai/api/v1")
|
|
||||||
SOURCE = os.getenv("SOURCE")
|
SOURCE = os.getenv("SOURCE")
|
||||||
|
|
||||||
|
|
||||||
def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]:
|
def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]:
|
||||||
"""Fetches model information from OpenRouter API."""
|
"""Fetches model information from OpenRouter API."""
|
||||||
with urlopen(f"{BASE_URL}/models") as response:
|
base_url = "https://openrouter.ai/api/v1"
|
||||||
|
with urlopen(f"{base_url}/models") as response:
|
||||||
data = json.loads(response.read().decode("utf-8"))
|
data = json.loads(response.read().decode("utf-8"))
|
||||||
|
|
||||||
models_data: list[Model] = []
|
models_data: list[Model] = []
|
||||||
|
|||||||
Reference in New Issue
Block a user