Matrix: Handle login and joining room errors.
This commit is contained in:
parent
9362755039
commit
c467b5fd03
|
@ -12,6 +12,29 @@ from typing import Any, Callable, Dict
|
||||||
from matrix_bridge_config import config
|
from matrix_bridge_config import config
|
||||||
from matrix_client.api import MatrixRequestError
|
from matrix_client.api import MatrixRequestError
|
||||||
from matrix_client.client import MatrixClient
|
from matrix_client.client import MatrixClient
|
||||||
|
from requests.exceptions import MissingSchema
|
||||||
|
|
||||||
|
def matrix_login(matrix_client: Any, matrix_config: Dict[str, Any]) -> None:
|
||||||
|
try:
|
||||||
|
matrix_client.login_with_password(matrix_config["username"],
|
||||||
|
matrix_config["password"])
|
||||||
|
except MatrixRequestError as e:
|
||||||
|
if e.code == 403:
|
||||||
|
sys.exit("Bad username or password.")
|
||||||
|
else:
|
||||||
|
sys.exit("Check if your server details are correct.")
|
||||||
|
except MissingSchema as e:
|
||||||
|
sys.exit("Bad URL format.")
|
||||||
|
|
||||||
|
def matrix_join_room(matrix_client: Any, matrix_config: Dict[str, Any]) -> Any:
|
||||||
|
try:
|
||||||
|
room = matrix_client.join_room(matrix_config["room_id"])
|
||||||
|
return room
|
||||||
|
except MatrixRequestError as e:
|
||||||
|
if e.code == 403:
|
||||||
|
sys.exit("Room ID/Alias in the wrong format")
|
||||||
|
else:
|
||||||
|
sys.exit("Couldn't find room.")
|
||||||
|
|
||||||
def die(signal: int, frame: FrameType) -> None:
|
def die(signal: int, frame: FrameType) -> None:
|
||||||
# We actually want to exit, so run os._exit (so as not to be caught and restarted)
|
# We actually want to exit, so run os._exit (so as not to be caught and restarted)
|
||||||
|
@ -102,10 +125,11 @@ if __name__ == '__main__':
|
||||||
site=zulip_config["site"])
|
site=zulip_config["site"])
|
||||||
matrix_client = MatrixClient(matrix_config["host"])
|
matrix_client = MatrixClient(matrix_config["host"])
|
||||||
|
|
||||||
# TODO this lacks the proper error handling
|
# Login to Matrix
|
||||||
matrix_client.login_with_password(matrix_config["username"],
|
matrix_login(matrix_client, matrix_config)
|
||||||
matrix_config["password"])
|
# Join a room in Matrix
|
||||||
room = matrix_client.join_room(matrix_config["room_id"])
|
room = matrix_join_room(matrix_client, matrix_config)
|
||||||
|
|
||||||
room.add_listener(matrix_to_zulip(zulip_client, zulip_config, matrix_config))
|
room.add_listener(matrix_to_zulip(zulip_client, zulip_config, matrix_config))
|
||||||
|
|
||||||
print("Starting listener thread on Matrix client")
|
print("Starting listener thread on Matrix client")
|
||||||
|
|
Loading…
Reference in a new issue