diff --git a/mautrix_appservice/state_store.py b/mautrix_appservice/state_store.py index 03cab88a..1174dcde 100644 --- a/mautrix_appservice/state_store.py +++ b/mautrix_appservice/state_store.py @@ -99,8 +99,8 @@ class StateStore: def has_power_level(self, room, user, event): room_levels = self.power_levels.get(room, {}) - required = room_levels["events"].get(event, 95) - has = room_levels["users"].get(user, 0) + required = room_levels.get("events", {}).get(event, 95) + has = room_levels.get("users", {}).get(user, 0) return has >= required def set_power_level(self, room, user, level): @@ -109,6 +109,8 @@ class StateStore: "users": {}, "events": {}, } + elif "users" not in self.power_levels[room]: + self.power_levels[room]["users"] = {} self.power_levels[room]["users"][user] = level self._autosave() diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 630a1c78..e12289ef 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -15,13 +15,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . import logging +import platform from telethon.tl.types import * from telethon.tl.types import User as TLUser from .db import User as DBUser, Message as DBMessage from .tgclient import MautrixTelegramClient -from . import portal as po, puppet as pu +from . import portal as po, puppet as pu, __version__ config = None @@ -82,10 +83,15 @@ class User: # region Telegram connection management def start(self): + device = f"{platform.system()} {platform.release()}" + sysversion = MautrixTelegramClient.__version__ self.client = MautrixTelegramClient(self.mxid, config["telegram.api_id"], config["telegram.api_hash"], - update_workers=2) + update_workers=2, + app_version=__version__, + system_version=sysversion, + device_model=device) self.connected = self.client.connect() if self.logged_in: self.post_login()