From d82e1f5d677fec0b85a6be6beb1e32d5627ef6af Mon Sep 17 00:00:00 2001 From: filtered <176114999+webfiltered@users.noreply.github.com> Date: Wed, 27 Aug 2025 15:33:47 +1000 Subject: [PATCH] Revert "Migrate matrix-client to matrix-nio (#2025)" This reverts commit d4715aebefb71567d7684f710f8653fdff1e18e4. --- glob/share_3rdparty.py | 78 ++++++++---------------------------------- pyproject.toml | 2 +- requirements.txt | 2 +- 3 files changed, 16 insertions(+), 66 deletions(-) diff --git a/glob/share_3rdparty.py b/glob/share_3rdparty.py index 3bab1682..c6cfcb1e 100644 --- a/glob/share_3rdparty.py +++ b/glob/share_3rdparty.py @@ -335,8 +335,8 @@ async def share_art(request): content_type = assetFileType try: - from nio import AsyncClient, LoginResponse, RoomSendResponse, UploadResponse, RoomMessageText, RoomMessageMedia - import asyncio + from matrix_client.api import MatrixHttpApi + from matrix_client.client import MatrixClient homeserver = 'matrix.org' if matrix_auth: @@ -345,35 +345,20 @@ async def share_art(request): if not homeserver.startswith("https://"): homeserver = "https://" + homeserver - client = AsyncClient(homeserver, matrix_auth['username']) - - # Login - login_resp = await client.login(matrix_auth['password']) - if not isinstance(login_resp, LoginResponse) or not login_resp.access_token: - await client.close() + client = MatrixClient(homeserver) + try: + token = client.login(username=matrix_auth['username'], password=matrix_auth['password']) + if not token: + return web.json_response({"error": "Invalid Matrix credentials."}, content_type='application/json', status=400) + except: return web.json_response({"error": "Invalid Matrix credentials."}, content_type='application/json', status=400) - # Upload asset + matrix = MatrixHttpApi(homeserver, token=token) with open(asset_filepath, 'rb') as f: - upload_resp, _maybe_keys = await client.upload(f, content_type=content_type, filename=filename) - asset_data = f.seek(0) or f.read() # get size for info below - if not isinstance(upload_resp, UploadResponse) or not upload_resp.content_uri: - await client.close() - return web.json_response({"error": "Failed to upload asset to Matrix."}, content_type='application/json', status=500) - mxc_url = upload_resp.content_uri + mxc_url = matrix.media_upload(f.read(), content_type, filename=filename)['content_uri'] - # Upload workflow JSON - import io - workflow_json_bytes = json.dumps(prompt['workflow']).encode('utf-8') - workflow_io = io.BytesIO(workflow_json_bytes) - upload_workflow_resp, _maybe_keys = await client.upload(workflow_io, content_type='application/json', filename='workflow.json') - workflow_io.seek(0) - if not isinstance(upload_workflow_resp, UploadResponse) or not upload_workflow_resp.content_uri: - await client.close() - return web.json_response({"error": "Failed to upload workflow to Matrix."}, content_type='application/json', status=500) - workflow_json_mxc_url = upload_workflow_resp.content_uri + workflow_json_mxc_url = matrix.media_upload(prompt['workflow'], 'application/json', filename='workflow.json')['content_uri'] - # Send text message text_content = "" if title: text_content += f"{title}\n" @@ -381,44 +366,9 @@ async def share_art(request): text_content += f"{description}\n" if credits: text_content += f"\ncredits: {credits}\n" - await client.room_send( - room_id=comfyui_share_room_id, - message_type="m.room.message", - content={"msgtype": "m.text", "body": text_content} - ) - - # Send image - await client.room_send( - room_id=comfyui_share_room_id, - message_type="m.room.message", - content={ - "msgtype": "m.image", - "body": filename, - "url": mxc_url, - "info": { - "mimetype": content_type, - "size": len(asset_data) - } - } - ) - - # Send workflow JSON file - await client.room_send( - room_id=comfyui_share_room_id, - message_type="m.room.message", - content={ - "msgtype": "m.file", - "body": "workflow.json", - "url": workflow_json_mxc_url, - "info": { - "mimetype": "application/json", - "size": len(workflow_json_bytes) - } - } - ) - - await client.close() - + matrix.send_message(comfyui_share_room_id, text_content) + matrix.send_content(comfyui_share_room_id, mxc_url, filename, 'm.image') + matrix.send_content(comfyui_share_room_id, workflow_json_mxc_url, 'workflow.json', 'm.file') except: import traceback traceback.print_exc() diff --git a/pyproject.toml b/pyproject.toml index 8d369067..8aa506a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "comfyui-manager" description = "ComfyUI-Manager provides features to install and manage custom nodes for ComfyUI, as well as various functionalities to assist with ComfyUI." version = "3.36" license = { file = "LICENSE.txt" } -dependencies = ["GitPython", "PyGithub", "matrix-nio", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"] +dependencies = ["GitPython", "PyGithub", "matrix-client==0.4.0", "transformers", "huggingface-hub>0.20", "typer", "rich", "typing-extensions", "toml", "uv", "chardet"] [project.urls] Repository = "https://github.com/ltdrdata/ComfyUI-Manager" diff --git a/requirements.txt b/requirements.txt index 08372455..38724e16 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ GitPython PyGithub -matrix-nio +matrix-client==0.4.0 transformers huggingface-hub>0.20 typer