Guard flood scope and be better about blocking

This commit is contained in:
Jack Kingsman
2026-03-04 20:15:44 -08:00
parent e439bc913a
commit 03f4963966
12 changed files with 35 additions and 5 deletions
+1
View File
@@ -192,6 +192,7 @@ class Message(BaseModel):
)
txt_type: int = 0
signature: str | None = None
sender_key: str | None = None
outgoing: bool = False
acked: int = 0
sender_name: str | None = None
+2
View File
@@ -206,6 +206,8 @@ async def create_message_from_decrypted(
sender_timestamp=timestamp,
received_at=received,
paths=paths,
sender_name=sender,
sender_key=resolved_sender_key,
).model_dump(),
)
+9 -3
View File
@@ -258,13 +258,19 @@ class RadioManager:
# Sync radio clock with system time
await sync_radio_time(mc)
# Apply flood scope from settings
# Apply flood scope from settings (best-effort; older firmware
# may not support set_flood_scope)
from app.repository import AppSettingsRepository
app_settings = await AppSettingsRepository.get()
scope = app_settings.flood_scope
await mc.commands.set_flood_scope(scope if scope else "")
logger.info("Applied flood_scope=%r", scope or "(disabled)")
try:
await mc.commands.set_flood_scope(scope if scope else "")
logger.info("Applied flood_scope=%r", scope or "(disabled)")
except Exception as exc:
logger.warning(
"set_flood_scope failed (firmware may not support it): %s", exc
)
# Sync contacts/channels from radio to DB and clear radio
logger.info("Syncing and offloading radio data...")
+1
View File
@@ -154,6 +154,7 @@ class MessageRepository:
paths=MessageRepository._parse_paths(row["paths"]),
txt_type=row["txt_type"],
signature=row["signature"],
sender_key=row["sender_key"],
outgoing=bool(row["outgoing"]),
acked=row["acked"],
sender_name=row["sender_name"],