Implement room V11
This commit is contained in:
1
MSCs.md
1
MSCs.md
@@ -38,3 +38,4 @@ Room version MSCs:
|
|||||||
* [MSC3289: Room V8](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3289-rooms-v8.md)
|
* [MSC3289: Room V8](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3289-rooms-v8.md)
|
||||||
* [MSC3375: Room V9](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3375-room-v9.md)
|
* [MSC3375: Room V9](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3375-room-v9.md)
|
||||||
* [MSC3604: Room V10](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3604-rooms-v10.md)
|
* [MSC3604: Room V10](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3604-rooms-v10.md)
|
||||||
|
* [MSC3820: Room V11](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3820-rooms-v11.md)
|
||||||
|
|||||||
@@ -223,6 +223,8 @@ def v3(request, room) -> dict:
|
|||||||
del event["signatures"]
|
del event["signatures"]
|
||||||
|
|
||||||
# m.room.create doesn't have prev_events or auth_events
|
# m.room.create doesn't have prev_events or auth_events
|
||||||
|
if ver >= 11:
|
||||||
|
del events["m.room.create"]["content"]["creator"]
|
||||||
events["m.room.create"] = globals.hash_and_sign_event(events["m.room.create"], ver)
|
events["m.room.create"] = globals.hash_and_sign_event(events["m.room.create"], ver)
|
||||||
hash_map["m.room.create"] = globals.make_ref_hash(events["m.room.create"], ver)
|
hash_map["m.room.create"] = globals.make_ref_hash(events["m.room.create"], ver)
|
||||||
|
|
||||||
@@ -236,7 +238,7 @@ def v3(request, room) -> dict:
|
|||||||
hash_map["m.room.member"],
|
hash_map["m.room.member"],
|
||||||
]
|
]
|
||||||
events["m.room.power_levels"]["prev_events"] = [hash_map["m.room.member"]]
|
events["m.room.power_levels"]["prev_events"] = [hash_map["m.room.member"]]
|
||||||
if ver == 10:
|
if ver >= 10:
|
||||||
events["m.room.power_levels"]["content"]["users"][f"@vona:{config.server_name}"] = 100
|
events["m.room.power_levels"]["content"]["users"][f"@vona:{config.server_name}"] = 100
|
||||||
events["m.room.power_levels"] = globals.hash_and_sign_event(events["m.room.power_levels"], ver)
|
events["m.room.power_levels"] = globals.hash_and_sign_event(events["m.room.power_levels"], ver)
|
||||||
hash_map["m.room.power_levels"] = globals.make_ref_hash(events["m.room.power_levels"], ver)
|
hash_map["m.room.power_levels"] = globals.make_ref_hash(events["m.room.power_levels"], ver)
|
||||||
|
|||||||
@@ -274,7 +274,11 @@ def hash_and_sign_event(
|
|||||||
):
|
):
|
||||||
content_hash = event_hash(event_object)
|
content_hash = event_hash(event_object)
|
||||||
event_object["hashes"] = {"sha256": content_hash}
|
event_object["hashes"] = {"sha256": content_hash}
|
||||||
stripped_object = redact_event(event_object, room_ver)
|
stripped_object = redact_event(
|
||||||
|
event=event_object,
|
||||||
|
for_event_id=False,
|
||||||
|
room_ver=room_ver,
|
||||||
|
)
|
||||||
signed_object = sign_json(stripped_object)
|
signed_object = sign_json(stripped_object)
|
||||||
event_object["signatures"] = signed_object["signatures"]
|
event_object["signatures"] = signed_object["signatures"]
|
||||||
return event_object
|
return event_object
|
||||||
@@ -313,6 +317,7 @@ def room_version_from_id(room):
|
|||||||
hexadecimal_room_id = bytes(room_id_no_sigil, "utf-8").hex()
|
hexadecimal_room_id = bytes(room_id_no_sigil, "utf-8").hex()
|
||||||
|
|
||||||
versions = [str(i) for i in range(0, 10)]
|
versions = [str(i) for i in range(0, 10)]
|
||||||
|
versions.append("a")
|
||||||
|
|
||||||
if not any(ver in hexadecimal_room_id for ver in versions):
|
if not any(ver in hexadecimal_room_id for ver in versions):
|
||||||
hexadecimal_room_id = "2" + hexadecimal_room_id[1:]
|
hexadecimal_room_id = "2" + hexadecimal_room_id[1:]
|
||||||
@@ -330,6 +335,8 @@ def room_version_from_id(room):
|
|||||||
actual_most_common = most_common[0] if most_common else ("4",)
|
actual_most_common = most_common[0] if most_common else ("4",)
|
||||||
if actual_most_common[0] == "0":
|
if actual_most_common[0] == "0":
|
||||||
return ("10",)
|
return ("10",)
|
||||||
|
elif actual_most_common[0] == "a":
|
||||||
|
return ("11",)
|
||||||
return actual_most_common
|
return actual_most_common
|
||||||
|
|
||||||
return str(most_common_character(nums)[0])
|
return str(most_common_character(nums)[0])
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ known = {
|
|||||||
"8": "hx",
|
"8": "hx",
|
||||||
"9": "iy",
|
"9": "iy",
|
||||||
"10": "p0",
|
"10": "p0",
|
||||||
|
"11": "jZ",
|
||||||
}
|
}
|
||||||
|
|
||||||
if desired_ver in known:
|
if desired_ver in known:
|
||||||
|
|||||||
Reference in New Issue
Block a user