The Codebase Consistency Update
This commit is contained in:
120
vona/client/groups.py
Normal file
120
vona/client/groups.py
Normal file
@@ -0,0 +1,120 @@
|
||||
import vona.globals as globals
|
||||
import vona.config as config
|
||||
import time
|
||||
|
||||
from flask import (
|
||||
Blueprint,
|
||||
jsonify,
|
||||
request,
|
||||
)
|
||||
|
||||
groups = Blueprint("groups", __name__)
|
||||
|
||||
# This implements the C2S API for groups
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/self/update_publicity", methods=["PUT"])
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/self/accept_invite", methods=["PUT"])
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/self/leave", methods=["PUT"])
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/admin/users/remove/<user>", methods=["PUT"])
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/admin/rooms/<room>", methods=["PUT", "DELETE"])
|
||||
async def empty(**k):
|
||||
return jsonify({})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/publicised_groups/<user>")
|
||||
@groups.route("/_matrix/client/r0/joined_groups")
|
||||
async def joined_groups(user=None):
|
||||
return jsonify({
|
||||
"groups": [f"+vona:{config.server_name}"]
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/summary")
|
||||
async def summary(group):
|
||||
return jsonify({
|
||||
"profile": {
|
||||
"name": "Vona",
|
||||
"short_description": "",
|
||||
"long_description": "",
|
||||
"avatar_url": "",
|
||||
"is_public": 1,
|
||||
"is_openly_joinable": True
|
||||
},
|
||||
"users_section": {
|
||||
"users": [],
|
||||
"roles": {},
|
||||
"total_user_count_estimate": 0
|
||||
},
|
||||
"rooms_section": {
|
||||
"rooms": [],
|
||||
"categories": {},
|
||||
"total_room_count_estimate": 0
|
||||
},
|
||||
"user": {
|
||||
"membership": "join",
|
||||
"is_public": 1,
|
||||
"is_privileged": 1,
|
||||
"is_publicised": True
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/rooms")
|
||||
async def rooms(group):
|
||||
return jsonify({
|
||||
"chunk": [],
|
||||
"total_room_count_estimate": 0
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/invited_users")
|
||||
async def invited_users(group):
|
||||
return jsonify({
|
||||
"chunk": [],
|
||||
"total_user_count_estimate": 0
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/users")
|
||||
async def users(group):
|
||||
return jsonify({
|
||||
"chunk": [
|
||||
{
|
||||
"user_id": f"@vona:{config.server_name}",
|
||||
"displayname": "Vona",
|
||||
"avatar_url": None,
|
||||
"is_public": True,
|
||||
"is_privileged": True,
|
||||
"attestation": globals.sign_json({
|
||||
"group_id": group,
|
||||
"user_id": f"@vona:{config.server_name}",
|
||||
"valid_until_ms": int(str(time.time() * 1000).split(".")[0])
|
||||
})
|
||||
}
|
||||
],
|
||||
"total_user_count_estimate": 1
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/groups/<group>/profile", methods=["GET", "POST"])
|
||||
async def profile(group):
|
||||
if request.method == "POST":
|
||||
return jsonify({})
|
||||
|
||||
return jsonify({
|
||||
"name": "Vona",
|
||||
"short_description": "",
|
||||
"long_description": "",
|
||||
"avatar_url": "",
|
||||
"is_public": 1,
|
||||
"is_openly_joinable": True
|
||||
})
|
||||
|
||||
|
||||
@groups.route("/_matrix/client/r0/create_group", methods=["POST"])
|
||||
async def create_group():
|
||||
return jsonify({
|
||||
"group_id": f"+vona:{config.server_name}"
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user