Persist Matrix state

This commit is contained in:
Tulir Asokan
2018-02-04 11:15:52 +02:00
parent f5b24e189d
commit ab6ffeedda
4 changed files with 60 additions and 5 deletions
+3 -3
View File
@@ -152,7 +152,6 @@ class IntentAPI:
self.localpart = results.group(1)
self.state_store = state_store
self.registered = False
def user(self, user):
if not self.bot:
@@ -336,15 +335,16 @@ class IntentAPI:
raise IntentError(f"Failed to join room {room_id} as {self.mxid}", e2)
def _ensure_registered(self):
if self.registered:
if self.state_store.is_registered(self.mxid):
return
try:
self.client.register({"username": self.localpart})
except MatrixRequestError as e:
if matrix_error_code(e) != "M_USER_IN_USE":
self.log.exception(f"Failed to register {self.mxid}!")
return
# raise IntentError(f"Failed to register {self.mxid}", e)
self.registered = True
self.state_store.registered(self.mxid)
def _ensure_has_power_level_for(self, room_id, event_type):
if not self.state_store.has_power_level_data(room_id):