Refactor of the message sending API.
This commit is contained in:
parent
4a949b33a8
commit
085ade35ab
1 changed files with 20 additions and 14 deletions
|
@ -58,8 +58,13 @@ class MatrixClient:
|
||||||
self.access_token = access_token
|
self.access_token = access_token
|
||||||
self.txn_id = 0 # type: int
|
self.txn_id = 0 # type: int
|
||||||
|
|
||||||
|
def _get_txn_id(self):
|
||||||
|
txn_id = self.txn_id
|
||||||
|
self.txn_id = self.txn_id + 1
|
||||||
|
return txn_id
|
||||||
|
|
||||||
def login(self, user, password, device_name=""):
|
def login(self, user, password, device_name=""):
|
||||||
# type () -> HttpRequest
|
# type (str, str, str) -> HttpRequest
|
||||||
path = ("{api}/login").format(api=MATRIX_API_PATH)
|
path = ("{api}/login").format(api=MATRIX_API_PATH)
|
||||||
|
|
||||||
post_data = {
|
post_data = {
|
||||||
|
@ -95,6 +100,19 @@ class MatrixClient:
|
||||||
|
|
||||||
return HttpRequest(RequestType.GET, self.host, path)
|
return HttpRequest(RequestType.GET, self.host, path)
|
||||||
|
|
||||||
|
def room_message(self, room_id, content):
|
||||||
|
# type: (str, Dict[str, str]) -> HttpRequest
|
||||||
|
query_parameters = {"access_token": self.access_token}
|
||||||
|
|
||||||
|
path = ("{api}/rooms/{room}/send/m.room.message/"
|
||||||
|
"{tx_id}?{query_parameters}").format(
|
||||||
|
api=MATRIX_API_PATH,
|
||||||
|
room=quote(room_id),
|
||||||
|
tx_id=quote(str(self._get_txn_id())),
|
||||||
|
query_parameters=urlencode(query_parameters))
|
||||||
|
|
||||||
|
return HttpRequest(RequestType.PUT, self.host, path, content)
|
||||||
|
|
||||||
|
|
||||||
class MatrixMessage:
|
class MatrixMessage:
|
||||||
def __init__(
|
def __init__(
|
||||||
|
@ -137,19 +155,7 @@ class MatrixMessage:
|
||||||
self.request = server.client.sync(server.next_batch, sync_filter)
|
self.request = server.client.sync(server.next_batch, sync_filter)
|
||||||
|
|
||||||
elif message_type == MessageType.SEND:
|
elif message_type == MessageType.SEND:
|
||||||
path = ("{api}/rooms/{room}/send/m.room.message/{tx_id}?"
|
self.request = server.client.room_message(room_id, data)
|
||||||
"access_token={access_token}").format(
|
|
||||||
api=MATRIX_API_PATH,
|
|
||||||
room=room_id,
|
|
||||||
tx_id=get_transaction_id(server),
|
|
||||||
access_token=server.access_token)
|
|
||||||
|
|
||||||
self.request = HttpRequest(
|
|
||||||
RequestType.PUT,
|
|
||||||
host,
|
|
||||||
path,
|
|
||||||
data
|
|
||||||
)
|
|
||||||
|
|
||||||
elif message_type == MessageType.STATE:
|
elif message_type == MessageType.STATE:
|
||||||
path = ("{api}/rooms/{room}/state/{event_type}?"
|
path = ("{api}/rooms/{room}/state/{event_type}?"
|
||||||
|
|
Loading…
Reference in a new issue