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")
|
||||
source: str = Field(default="", env="SOURCE")
|
||||
openrouter_base_url: str = Field(
|
||||
default="https://openrouter.ai/api/v1", env="BASE_URL"
|
||||
)
|
||||
|
||||
# Secrets / optional runtime controls
|
||||
provider_id: str = Field(default="", env="PROVIDER_ID")
|
||||
nip91_provider_id: str = Field(default="", env="NIP91_PROVIDER_ID")
|
||||
nsec: str = Field(default="", env="NSEC")
|
||||
|
||||
# NIP-91
|
||||
# Discovery
|
||||
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:
|
||||
|
||||
+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:
|
||||
explicit = settings.provider_id or settings.nip91_provider_id
|
||||
explicit = settings.provider_id
|
||||
if explicit:
|
||||
logger.info(f"Using configured provider_id from env: {explicit}")
|
||||
return explicit
|
||||
@@ -368,10 +368,7 @@ async def announce_provider() -> None:
|
||||
logger.info(f"Using Nostr pubkey: {public_key_hex}")
|
||||
|
||||
# Configure relays first (RELAYS only)
|
||||
try:
|
||||
relay_urls = [u.strip() for u in settings.relays if u.strip()]
|
||||
except Exception:
|
||||
relay_urls = settings.relays
|
||||
relay_urls = [u.strip() for u in getattr(settings, "relays", []) if u.strip()]
|
||||
if not relay_urls:
|
||||
relay_urls = [
|
||||
"wss://relay.nostr.band",
|
||||
@@ -438,15 +435,10 @@ async def announce_provider() -> None:
|
||||
metadata=metadata,
|
||||
)
|
||||
|
||||
# Backoff configuration and state
|
||||
try:
|
||||
backoff_base = settings.nip91_backoff_base_seconds
|
||||
backoff_max = settings.nip91_backoff_max_seconds
|
||||
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
|
||||
# Backoff configuration and state (sensible defaults)
|
||||
backoff_base = 5.0
|
||||
backoff_max = 900.0
|
||||
backoff_jitter_ratio = 0.2
|
||||
relay_next_allowed: dict[str, float] = {}
|
||||
relay_current_delay: dict[str, float] = {}
|
||||
|
||||
@@ -510,10 +502,7 @@ async def announce_provider() -> None:
|
||||
)
|
||||
|
||||
# Re-announce periodically (every 24 hours)
|
||||
try:
|
||||
announcement_interval = settings.nip91_announcement_interval
|
||||
except Exception:
|
||||
announcement_interval = settings.nip91_announcement_interval
|
||||
announcement_interval = 24 * 60 * 60
|
||||
|
||||
while True:
|
||||
try:
|
||||
|
||||
@@ -57,7 +57,7 @@ MODELS: list[Model] = []
|
||||
|
||||
def fetch_openrouter_models(source_filter: str | None = None) -> list[dict]:
|
||||
"""Fetches model information from OpenRouter API."""
|
||||
base_url = settings.openrouter_base_url
|
||||
base_url = "https://openrouter.ai/api/v1"
|
||||
|
||||
try:
|
||||
with urlopen(f"{base_url}/models") as response:
|
||||
|
||||
@@ -42,13 +42,13 @@ class Model(TypedDict):
|
||||
|
||||
|
||||
OUTPUT_FILE = os.getenv("OUTPUT_FILE", "models.json")
|
||||
BASE_URL = os.getenv("BASE_URL", "https://openrouter.ai/api/v1")
|
||||
SOURCE = os.getenv("SOURCE")
|
||||
|
||||
|
||||
def fetch_openrouter_models(source_filter: str | None = None) -> list[Model]:
|
||||
"""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"))
|
||||
|
||||
models_data: list[Model] = []
|
||||
|
||||
Reference in New Issue
Block a user