From ba0b240d4f0845eb74a59ad5fe03257da495c0b2 Mon Sep 17 00:00:00 2001 From: groug Date: Mon, 11 Mar 2024 15:31:59 +0000 Subject: [PATCH] legacy mode --- phpmatrix.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/phpmatrix.php b/phpmatrix.php index 78c4c3d..dc23279 100644 --- a/phpmatrix.php +++ b/phpmatrix.php @@ -17,6 +17,9 @@ class MatrixClient /** @var int Update period in microseconds */ private $update_period = 1000000; + /** @var bool Enable legacy mode for matrix API */ + private $legacy_mode_enabled = false; + /** * @param string $matrix_server Matrix server (https://domain.tld) */ @@ -63,6 +66,15 @@ class MatrixClient $this->update_period = intval($seconds * 1000000); } + /** + * Change legacy mode + * @param bool $mode Enabled if true + */ + public function set_legacy_mode_enabled($mode) + { + $this->legacy_mode_enabled = $mode; + } + /** * Try to login to Matrix API and get an access token. * Will throw a MatrixRequestException if it fails @@ -162,8 +174,14 @@ class MatrixClient { $txn_id = $this->get_new_transaction_id(); $room_id = curl_escape($this->ch, $room_id); - $path = "/_matrix/client/v3/rooms/{$room_id}/send/{$event_type}/{$txn_id}"; - return $this->query($path, "PUT", $body); + if ($this->legacy_mode_enabled) { + $path = "/_matrix/client/r0/rooms/{$room_id}/send/{$event_type}"; + return $this->query($path, "POST", $body); + } + else { + $path = "/_matrix/client/v3/rooms/{$room_id}/send/{$event_type}/{$txn_id}"; + return $this->query($path, "PUT", $body); + } } /**