mirror of
https://github.com/Mooling0602/MatrixPyBridge-MCDR.git
synced 2026-03-01 05:29:44 +08:00
fix: improve typing for above python 3.11
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -130,11 +130,14 @@ celerybeat.pid
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
.direnv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
.envrc
|
||||
.envrc.bak
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from typing import Callable, Union, Optional
|
||||
from collections.abc import Callable
|
||||
from logging import Logger
|
||||
from typing import Any
|
||||
from nio import (
|
||||
AsyncClient,
|
||||
SyncResponse,
|
||||
@@ -15,10 +16,10 @@ class MatrixClient:
|
||||
homeserver: str,
|
||||
user_id: str,
|
||||
token: str,
|
||||
device_id: Optional[str] = "mcdr",
|
||||
logger: Union[Logger, Callable, None] = print,
|
||||
device_id: str | None = "mcdr",
|
||||
logger: Logger | Callable[..., Any] | None = print,
|
||||
):
|
||||
self.connected: bool = True
|
||||
self.connected: bool = False
|
||||
self.client = AsyncClient(homeserver=homeserver)
|
||||
self.client.user_id = user_id
|
||||
self.client.access_token = token
|
||||
@@ -29,15 +30,16 @@ class MatrixClient:
|
||||
async def connect(self) -> None:
|
||||
if self.connected:
|
||||
if self.logger:
|
||||
message = (
|
||||
_message = (
|
||||
"You have connected the matrix client, "
|
||||
"please disconnect it before reconnect!"
|
||||
)
|
||||
|
||||
if hasattr(self.logger, "info"):
|
||||
self.logger.info(message)
|
||||
self.logger.info(_message) # pyright: ignore[reportFunctionMemberAccess]
|
||||
else:
|
||||
self.logger(message)
|
||||
if callable(self.logger):
|
||||
self.logger(f"{_message}")
|
||||
return
|
||||
|
||||
async def receive_messages() -> None:
|
||||
@@ -45,22 +47,23 @@ class MatrixClient:
|
||||
|
||||
async def on_sync_response(response: SyncResponse):
|
||||
if hasattr(self.logger, "debug"):
|
||||
self.logger.debug(f"MatrixClient response: {response}")
|
||||
self.logger.debug(f"MatrixClient response: {response}") # pyright: ignore[reportOptionalMemberAccess, reportFunctionMemberAccess]
|
||||
|
||||
async def on_sync_error(response: SyncError):
|
||||
self.network_status = False
|
||||
_message = f"Sync error with matrix homeserver: {response.status_code}"
|
||||
_ansi_color_red = "\033[31m"
|
||||
_ansi_reset_color = "\033[0m"
|
||||
if not self.logger:
|
||||
if not self.logger and not callable(self.logger):
|
||||
print(_ansi_color_red + _message + _ansi_reset_color)
|
||||
if hasattr(self.logger, "error"):
|
||||
self.logger.error(_message)
|
||||
self.logger.error(_message) # pyright: ignore[reportFunctionMemberAccess, reportOptionalMemberAccess]
|
||||
else:
|
||||
self.logger(_ansi_color_red + _message + _ansi_reset_color)
|
||||
if callable(self.logger):
|
||||
self.logger(_ansi_color_red + _message + _ansi_reset_color)
|
||||
|
||||
client.add_response_callback(on_sync_response, SyncResponse)
|
||||
client.add_response_callback(on_sync_error, SyncError)
|
||||
client.add_response_callback(on_sync_response, SyncResponse) # pyright: ignore[reportArgumentType]
|
||||
client.add_response_callback(on_sync_error, SyncError) # pyright: ignore[reportArgumentType]
|
||||
|
||||
async def message_callback(
|
||||
room: MatrixRoom, event: RoomMessageText
|
||||
|
||||
Reference in New Issue
Block a user