Merge branch 'master' into asyncio

This commit is contained in:
Tulir Asokan
2018-02-10 13:23:17 +02:00
3 changed files with 16 additions and 6 deletions
+4 -2
View File
@@ -99,8 +99,8 @@ class StateStore:
def has_power_level(self, room, user, event): def has_power_level(self, room, user, event):
room_levels = self.power_levels.get(room, {}) room_levels = self.power_levels.get(room, {})
required = room_levels["events"].get(event, 95) required = room_levels.get("events", {}).get(event, 95)
has = room_levels["users"].get(user, 0) has = room_levels.get("users", {}).get(user, 0)
return has >= required return has >= required
def set_power_level(self, room, user, level): def set_power_level(self, room, user, level):
@@ -109,6 +109,8 @@ class StateStore:
"users": {}, "users": {},
"events": {}, "events": {},
} }
elif "users" not in self.power_levels[room]:
self.power_levels[room]["users"] = {}
self.power_levels[room]["users"][user] = level self.power_levels[room]["users"][user] = level
self._autosave() self._autosave()
+4 -2
View File
@@ -254,8 +254,10 @@ async def telegram_event_to_matrix(evt, source, native_replies=False, message_li
body = (content["formatted_body"] body = (content["formatted_body"]
if "formatted_body" in content if "formatted_body" in content
else content["body"]) else content["body"])
reply_to_user = ("<a href='https://matrix.to/#/" sender = event['sender']
+ f"{event['sender']}'>{event['sender']}</a>") puppet = p.Puppet.get_by_mxid(sender, create=False)
displayname = puppet.displayname if puppet else sender
reply_to_user = (f"<a href='https://matrix.to/#/{sender}'>{displayname}</a>")
reply_to_msg = (("<a href='https://matrix.to/#/" reply_to_msg = (("<a href='https://matrix.to/#/"
+ f"{msg.mx_room}/{msg.mxid}'>Reply</a>") + f"{msg.mx_room}/{msg.mxid}'>Reply</a>")
if message_link_in_reply else "Reply") if message_link_in_reply else "Reply")
+8 -2
View File
@@ -16,13 +16,14 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging import logging
import asyncio import asyncio
import platform
from telethon.tl.types import * from telethon.tl.types import *
from telethon.tl.types import User as TLUser from telethon.tl.types import User as TLUser
from .db import User as DBUser, Message as DBMessage from .db import User as DBUser, Message as DBMessage
from .tgclient import MautrixTelegramClient from .tgclient import MautrixTelegramClient
from . import portal as po, puppet as pu from . import portal as po, puppet as pu, __version__
config = None config = None
@@ -84,10 +85,15 @@ class User:
# region Telegram connection management # region Telegram connection management
async def start(self): async def start(self):
device = f"{platform.system()} {platform.release()}"
sysversion = MautrixTelegramClient.__version__
self.client = MautrixTelegramClient(self.mxid, self.client = MautrixTelegramClient(self.mxid,
config["telegram.api_id"], config["telegram.api_id"],
config["telegram.api_hash"], 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.client.add_update_handler(self.update_catch)
self.connected = await self.client.connect() self.connected = await self.client.connect()
if self.logged_in: if self.logged_in: