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: