Update app.py

This commit is contained in:
2026-05-05 19:53:09 +02:00
parent 353e57e605
commit b1652c3c51
+27 -4
View File
@@ -174,7 +174,7 @@ def seed_known_users():
def periodic_seed():
while True:
seed_known_users()
time.sleep(300) # 5 Minuten
time.sleep(300)
# ============================================================
# FALLBACK CHECK
@@ -218,6 +218,27 @@ def is_user_in_local_rooms(user_id: str) -> bool:
return False
# ============================================================
# 🔥 HYBRID DM DETECTION
# ============================================================
def is_likely_dm_event(event):
content = event.get("content", {})
# 1️⃣ offizielles Flag
if content.get("is_direct") is True:
return True
# 2️⃣ Heuristik
unsigned = event.get("unsigned", {})
state = unsigned.get("invite_room_state", [])
member_events = [
e for e in state if e.get("type") == "m.room.member"
]
return len(member_events) <= 2
# ============================================================
# ROUTES
# ============================================================
@@ -241,16 +262,18 @@ def invite(room_id, event_id):
# whitelist
if domain in config.domain_whitelist:
remember_user(sender)
return forward_request("PUT",
return forward_request(
"PUT",
f"{config.tuwunel_url}/_matrix/federation/v2/invite/{room_id}/{event_id}",
request.headers, payload
request.headers,
payload
)
if config.block_external_dms and is_external(sender):
if not is_known_user(sender):
# 🔥 FALLBACK CHECK
# 🔥 fallback check
if is_user_in_local_rooms(sender):
remember_user(sender)
else: