#!/usr/bin/env python3 """ Setup script for Matrix: register user and create room """ import asyncio import os from nio import AsyncClient, RegisterResponse, RoomCreateResponse async def setup_matrix(): homeserver = "http://124.local:8008" username = "einszwovier" password = "einszwo4" client = AsyncClient(homeserver) print("šŸ”§ Setting up Matrix server...") print(f" Homeserver: {homeserver}") print(f" Username: {username}") # Register the user print("\nšŸ“ Registering user...") response = await client.register( username=username, password=password ) if isinstance(response, RegisterResponse): print(f" āœ… User registered: {response.user_id}") user_id = response.user_id else: print(f" ā„¹ļø User might already exist, trying to login...") # Try to login instead response = await client.login(password) if response.user_id: print(f" āœ… Logged in as: {response.user_id}") user_id = response.user_id else: print(f" āŒ Failed: {response}") await client.close() return # Create a room print("\nšŸ  Creating print orders room...") response = await client.room_create( name="Print Orders", topic="PDF print order submissions from the web app", is_public=False ) if isinstance(response, RoomCreateResponse): print(f" āœ… Room created!") print(f" Room ID: {response.room_id}") print(f"\nāœ… Setup complete!") print(f"\nšŸ“‹ Add this to your .env file:") print(f"MATRIX_ROOM={response.room_id}") else: print(f" āŒ Failed to create room: {response}") await client.close() if __name__ == "__main__": asyncio.run(setup_matrix())