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/formatter.py b/mautrix_telegram/formatter.py index 34125eaa..13c3ce89 100644 --- a/mautrix_telegram/formatter.py +++ b/mautrix_telegram/formatter.py @@ -254,8 +254,10 @@ async def telegram_event_to_matrix(evt, source, native_replies=False, message_li body = (content["formatted_body"] if "formatted_body" in content else content["body"]) - reply_to_user = ("{event['sender']}") + sender = event['sender'] + puppet = p.Puppet.get_by_mxid(sender, create=False) + displayname = puppet.displayname if puppet else sender + reply_to_user = (f"{displayname}") reply_to_msg = (("Reply") if message_link_in_reply else "Reply") diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 47051463..4f92db26 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -16,13 +16,14 @@ # along with this program. If not, see . import logging import asyncio +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 @@ -84,10 +85,15 @@ class User: # region Telegram connection management async 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"], - loop=self.loop) + loop=self.loop, + app_version=__version__, + system_version=sysversion, + device_model=device) self.client.add_update_handler(self.update_catch) self.connected = await self.client.connect() if self.logged_in: