diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index b2a2898d..25b38dbf 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -77,7 +77,6 @@ appserv = AppService(config["homeserver.address"], config["homeserver.domain"], config["appservice.bot_username"], log=log.getChild("as")) context = (appserv, db_session, log, config) - with appserv.run(config["appservice.hostname"], config["appservice.port"]) as start: init_db(db_session) init_formatter(context) diff --git a/mautrix_telegram/commands.py b/mautrix_telegram/commands.py index 07eeabca..7bc6bed2 100644 --- a/mautrix_telegram/commands.py +++ b/mautrix_telegram/commands.py @@ -276,7 +276,8 @@ class CommandHandler: portal.main_intent.leave_room(portal.mxid) portal.delete() - def _strip_prefix(self, value, prefixes): + @staticmethod + def _strip_prefix(value, prefixes): for prefix in prefixes: if value.startswith(prefix): return value[len(prefix):] diff --git a/mautrix_telegram/config.py b/mautrix_telegram/config.py index 15937364..f766deda 100644 --- a/mautrix_telegram/config.py +++ b/mautrix_telegram/config.py @@ -20,6 +20,7 @@ import string yaml = ruamel.yaml.YAML() + class DictWithRecursion: def __init__(self, data={}): self._data = data @@ -77,23 +78,27 @@ class Config(DictWithRecursion): with open(self.registration_path, 'w') as stream: yaml.dump(self._registration, stream) - def _new_token(self): + @staticmethod + def _new_token(): return "".join(random.choices(string.ascii_lowercase + string.digits, k=64)) def generate_registration(self): homeserver = self["homeserver.domain"] - username_format = self.get("bridge.username_template", "telegram_{userid}").format(userid=".+") - alias_format = self.get("bridge.alias_template", "telegram_{groupname}").format(groupname=".+") + username_format = self.get("bridge.username_template", "telegram_{userid}") \ + .format(userid=".+") + alias_format = self.get("bridge.alias_template", "telegram_{groupname}") \ + .format(groupname=".+") self.set("appservice.as_token", self._new_token()) self.set("appservice.hs_token", self._new_token()) - appservice = self.get("appservice", {}) + url = (f"{self['appservice.protocol']}://" + + f"{self['appservice.hostname']}:{self['appservice.port']}") self._registration = { - "id": appservice.get("id", "telegram"), - "as_token": appservice.get("as_token"), - "hs_token": appservice.get("hs_token"), + "id": self.get("appservice.id", "telegram"), + "as_token": self["appservice.as_token"], + "hs_token": self["appservice.hs_token"], "namespaces": { "users": [{ "exclusive": True, @@ -104,7 +109,7 @@ class Config(DictWithRecursion): "regex": f"#{alias_format}:{homeserver}" }] }, - "url": f"{appservice.get('protocol')}://{appservice.get('hostname')}:{appservice.get('port')}", - "sender_localpart": appservice.get("bot_username"), + "url": url, + "sender_localpart": self["appservice.bot_username"], "rate_limited": False } diff --git a/mautrix_telegram/db.py b/mautrix_telegram/db.py index 861ce58e..944eaa4b 100644 --- a/mautrix_telegram/db.py +++ b/mautrix_telegram/db.py @@ -45,7 +45,7 @@ class Message(Base): tgid = Column(Integer, primary_key=True) user = Column(Integer, ForeignKey("user.tgid"), primary_key=True) - __table_args__ = (UniqueConstraint('mxid', 'mx_room', 'user', name='_mx_id_room'), ) + __table_args__ = (UniqueConstraint('mxid', 'mx_room', 'user', name='_mx_id_room'),) class User(Base):