diff --git a/mautrix_appservice/appservice.py b/mautrix_appservice/appservice.py index 6cf35da0..d852a25e 100644 --- a/mautrix_appservice/appservice.py +++ b/mautrix_appservice/appservice.py @@ -16,12 +16,13 @@ # along with this program. If not, see . # # Partly based on github.com/Cadair/python-appservice-framework (MIT license) -import asyncio -import logging -import aiohttp -from aiohttp import web from functools import partial from contextlib import contextmanager +from aiohttp import web +import aiohttp +import asyncio +import logging + from .intent_api import HTTPAPI from .state_store import StateStore @@ -43,7 +44,8 @@ class AppService: self._intent = None self.loop = loop or asyncio.get_event_loop() - self.log = log or logging.getLogger("mautrix_appservice") + self.log = (logging.getLogger(log) if isinstance(log, str) + else log or logging.getLogger("mautrix_appservice")) self.query_user = query_user or (lambda user: None) self.query_alias = query_alias or (lambda alias: None) diff --git a/mautrix_appservice/intent_api.py b/mautrix_appservice/intent_api.py index 6b411cec..f4d3fde5 100644 --- a/mautrix_appservice/intent_api.py +++ b/mautrix_appservice/intent_api.py @@ -18,6 +18,7 @@ import re import json import magic import urllib.request + from matrix_client.api import MatrixHttpApi from matrix_client.errors import MatrixRequestError diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index 25b38dbf..f2108908 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -31,7 +31,7 @@ from .db import init as init_db from .user import init as init_user from .portal import init as init_portal from .puppet import init as init_puppet -from .formatter import init as init_formatter +# from .formatter import init as init_formatter log = logging.getLogger("mau") time_formatter = logging.Formatter("[%(asctime)s] [%(levelname)s@%(name)s] %(message)s") @@ -74,12 +74,12 @@ Base.metadata.create_all() appserv = AppService(config["homeserver.address"], config["homeserver.domain"], config["appservice.as_token"], config["appservice.hs_token"], - config["appservice.bot_username"], log=log.getChild("as")) -context = (appserv, db_session, log, config) + config["appservice.bot_username"], log="mau.as") +context = (appserv, db_session, config) with appserv.run(config["appservice.hostname"], config["appservice.port"]) as start: init_db(db_session) - init_formatter(context) + # init_formatter(context) init_portal(context) init_puppet(context) init_user(context) diff --git a/mautrix_telegram/commands.py b/mautrix_telegram/commands.py index 5375b443..bf9bd4e6 100644 --- a/mautrix_telegram/commands.py +++ b/mautrix_telegram/commands.py @@ -16,12 +16,16 @@ # along with this program. If not, see . from contextlib import contextmanager import markdown +import logging + from matrix_client.errors import MatrixRequestError + from telethon.errors import * from telethon.tl.types import * from telethon.tl.functions.contacts import SearchRequest from telethon.tl.functions.messages import ImportChatInviteRequest, CheckChatInviteRequest from telethon.tl.functions.channels import JoinChannelRequest + from . import puppet as pu, portal as po command_handlers = {} @@ -51,9 +55,10 @@ def format_duration(seconds): class CommandHandler: + log = logging.getLogger("mau.commands") + def __init__(self, context): - self.az, self.db, log, self.config = context - self.log = log.getChild("commands") + self.az, self.db, self.config = context self.command_prefix = self.config["bridge.command_prefix"] self._room_id = None self._is_management = False diff --git a/mautrix_telegram/db.py b/mautrix_telegram/db.py index fb3a8dc2..7b546e7c 100644 --- a/mautrix_telegram/db.py +++ b/mautrix_telegram/db.py @@ -14,7 +14,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from sqlalchemy import Column, ForeignKey, UniqueConstraint, Integer, String +from sqlalchemy import Column, UniqueConstraint, Integer, String + from .base import Base diff --git a/mautrix_telegram/formatter.py b/mautrix_telegram/formatter.py index 2aaba0fa..f1a69375 100644 --- a/mautrix_telegram/formatter.py +++ b/mautrix_telegram/formatter.py @@ -14,15 +14,18 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import re from html import escape, unescape from html.parser import HTMLParser from collections import deque +import re +import logging + from telethon.tl.types import * + from . import user as u, puppet as p from .db import Message as DBMessage -log = None +log = logging.getLogger("mau.formatter") # region Matrix to Telegram @@ -314,8 +317,3 @@ def _telegram_to_matrix(text, entities): # endregion - -def init(context): - global log - _, _, parent_log, _ = context - log = parent_log.getChild("formatter") diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py index cd86e4d9..93bda0fc 100644 --- a/mautrix_telegram/matrix.py +++ b/mautrix_telegram/matrix.py @@ -14,6 +14,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import logging + from matrix_client.errors import MatrixRequestError from .user import User @@ -23,9 +25,10 @@ from .commands import CommandHandler class MatrixHandler: + log = logging.getLogger("mau.mx") + def __init__(self, context): - self.az, self.db, log, self.config = context - self.log = log.getChild("mx") + self.az, self.db, self.config = context self.commands = CommandHandler(context) self.az.matrix_event_handler(self.handle_event) diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 68a4d859..2f7f754e 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -19,6 +19,7 @@ from collections import deque from datetime import datetime import mimetypes import hashlib +import logging from PIL import Image import magic @@ -37,7 +38,7 @@ config = None class Portal: - log = None + log = logging.getLogger("mau.portal") db = None az = None by_mxid = {} @@ -897,5 +898,4 @@ class Portal: def init(context): global config - Portal.az, Portal.db, log, config = context - Portal.log = log.getChild("portal") + Portal.az, Portal.db, config = context diff --git a/mautrix_telegram/puppet.py b/mautrix_telegram/puppet.py index 3b6803cd..5b50a537 100644 --- a/mautrix_telegram/puppet.py +++ b/mautrix_telegram/puppet.py @@ -15,15 +15,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . import re +import logging + from telethon.tl.types import UserProfilePhoto, PeerUser from telethon.errors.rpc_error_list import LocationInvalidError + from .db import Puppet as DBPuppet config = None class Puppet: - log = None + log = logging.getLogger("mau.puppet") db = None az = None mxid_regex = None @@ -167,8 +170,7 @@ class Puppet: def init(context): global config - Puppet.az, Puppet.db, log, config = context - Puppet.log = log.getChild("puppet") + Puppet.az, Puppet.db, config = context localpart = config.get("bridge.username_template", "telegram_{userid}").format(userid="(.+)") hs = config["homeserver"]["domain"] Puppet.mxid_regex = re.compile(f"@{localpart}:{hs}") diff --git a/mautrix_telegram/tgclient.py b/mautrix_telegram/tgclient.py index 715b3b24..7a6efe53 100644 --- a/mautrix_telegram/tgclient.py +++ b/mautrix_telegram/tgclient.py @@ -15,6 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . from io import BytesIO + from telethon import TelegramClient from telethon.tl.functions.messages import SendMessageRequest, SendMediaRequest from telethon.tl.types import * diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 44c7082d..630a1c78 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -14,8 +14,11 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import logging + 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 @@ -24,7 +27,7 @@ config = None class User: - log = None + log = logging.getLogger("mau.user") db = None az = None by_mxid = {} @@ -306,8 +309,7 @@ class User: def init(context): global config - User.az, User.db, log, config = context - User.log = log.getChild("user") + User.az, User.db, config = context users = [User.from_db(user) for user in DBUser.query.all()] for user in users: