From 2f891508ab1a3046ffd9ceb28c403f8496bedb53 Mon Sep 17 00:00:00 2001 From: Kierre Date: Sat, 25 Oct 2025 00:59:20 -0400 Subject: [PATCH] Adapt extremities endpoint for v3+ --- vona/federation/__init__.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/vona/federation/__init__.py b/vona/federation/__init__.py index f888ef0..4dca0a7 100644 --- a/vona/federation/__init__.py +++ b/vona/federation/__init__.py @@ -20,6 +20,7 @@ class bullshit: def get_json(): return {} + def send_join(request, room) -> dict: if globals.room_version_from_id(room) in ["1", "2"]: return rooms.v1_v2(request, room) @@ -335,10 +336,25 @@ async def backfill(room): @server.route("/_matrix/federation/unstable/org.matrix.msc4370/extremities/") @server.route("/_matrix/federation/v1/extremities/") async def extremities(room): + if ":" in room: + if room.split(":")[1] != config.server_name: + return jsonify({ + "errcode": "M_NOT_FOUND", + "error": f"Room is unknown to this server" + }), 404 + + room_ver = globals.room_version_from_id(room) + + if room_ver in ["1", "2"]: + event_id = globals.make_event_id(seed=f"6_{room}") + else: + event_id = globals.make_ref_hash( + send_join(bullshit, room)["state"][5], + int(room_ver) + ) + return jsonify({ - "prev_events": [ - globals.make_event_id(seed=f"6_{room}"), - ] + "prev_events": [event_id] })