From 94788a21dd68e18ab974a118c308971b8333b048 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Sat, 5 Jun 2021 23:41:05 -0400 Subject: [PATCH] Various fixes and cleanups --- matrix_puppeteer_line/portal.py | 12 +++--------- matrix_puppeteer_line/user.py | 9 +++++---- puppet/src/contentscript.js | 10 +++++----- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/matrix_puppeteer_line/portal.py b/matrix_puppeteer_line/portal.py index 6bd2871..276aa5f 100644 --- a/matrix_puppeteer_line/portal.py +++ b/matrix_puppeteer_line/portal.py @@ -29,14 +29,14 @@ from mautrix.types import (EventID, MessageEventContent, RoomID, EventType, Mess TextMessageEventContent, MediaMessageEventContent, Membership, Format, ContentURI, EncryptedFile, ImageInfo, RelatesTo, RelationType) -from mautrix.errors import IntentError, MatrixError +from mautrix.errors import IntentError from mautrix.util.simple_lock import SimpleLock from .db import Portal as DBPortal, Message as DBMessage, ReceiptReaction as DBReceiptReaction, Media as DBMedia from .config import Config from .rpc import ChatInfo, Participant, Message, Receipt, Client, PathImage from .rpc.types import RPCError -from . import user as u, puppet as p, matrix as m +from . import user as u, puppet as p if TYPE_CHECKING: from .__main__ import MessagesBridge @@ -170,7 +170,7 @@ class Portal(DBPortal, BasePortal): self.log.debug(f"Handled Matrix message {event_id} -> {message_id}") except UniqueViolationError as e: self.log.warning(f"Failed to handle Matrix message {event_id} -> {message_id}: {e}") - if not msg: + if not msg and self.config["bridge.delivery_error_reports"]: await self.main_intent.send_notice( self.mxid, "Posting this message to LINE may have failed.", @@ -179,12 +179,6 @@ class Portal(DBPortal, BasePortal): async def handle_matrix_leave(self, user: 'u.User') -> None: self.log.info(f"{user.mxid} left portal to {self.chat_id}, " f"cleaning up and deleting...") - if self.invite_own_puppet_to_pm: - # TODO Use own puppet instead of bridge bot. Then cleanup_and_delete will handle it - try: - await self.az.intent.leave_room(self.mxid) - except MatrixError: - pass await self.cleanup_and_delete() async def _bridge_own_message_pm(self, source: 'u.User', sender: Optional['p.Puppet'], mid: str, diff --git a/matrix_puppeteer_line/user.py b/matrix_puppeteer_line/user.py index b2c9923..2d4ea36 100644 --- a/matrix_puppeteer_line/user.py +++ b/matrix_puppeteer_line/user.py @@ -64,8 +64,9 @@ class User(DBUser, BaseUser): cls.loop = bridge.loop Client.config = bridge.config - async def send_notice(self, text) -> None: + async def send_bridge_notice(self, text) -> None: if self.notice_room: + self.log.debug(f"Sending bridge notice: {text}") await self.az.intent.send_notice(self.notice_room, text) async def is_logged_in(self) -> bool: @@ -96,17 +97,17 @@ class User(DBUser, BaseUser): self.loop.create_task(self.connect_double_puppet()) self.client = Client(self.mxid) self.log.debug("Starting client") - await self.send_notice("Starting up...") + await self.send_bridge_notice("Starting up...") state = await self.client.start() await self.client.on_message(self.handle_message) await self.client.on_receipt(self.handle_receipt) if state.is_connected: self._track_metric(METRIC_CONNECTED, True) if state.is_logged_in: - await self.send_notice("Already logged in to LINE") + await self.send_bridge_notice("Already logged in to LINE") self.loop.create_task(self._try_sync()) else: - await self.send_notice("Ready to log in to LINE") + await self.send_bridge_notice("Ready to log in to LINE") async def _try_sync(self) -> None: try: diff --git a/puppet/src/contentscript.js b/puppet/src/contentscript.js index e47c887..dbee656 100644 --- a/puppet/src/contentscript.js +++ b/puppet/src/contentscript.js @@ -34,13 +34,13 @@ window.__mautrixReceiveChanges = function (changes) {} */ window.__mautrixReceiveMessages = function (chatID, messages) {} /** - * @param {str} chatID - The ID of the chat whose receipts are being processed. - * @param {str} receipt_id - The ID of the most recently-read message for the current chat. + * @param {string} chatID - The ID of the chat whose receipts are being processed. + * @param {string} receipt_id - The ID of the most recently-read message for the current chat. * @return {Promise} */ -window.__mautrixReceiveReceiptDirectLatest = function (chat_id, receipt_id) {} +window.__mautrixReceiveReceiptDirectLatest = function (chatID, receipt_id) {} /** - * @param {str} chatID - The ID of the chat whose receipts are being processed. + * @param {string} chatID - The ID of the chat whose receipts are being processed. * @param {[Receipt]} receipts - All newly-seen receipts for the current chat. * @return {Promise} */ @@ -162,7 +162,7 @@ class MautrixController { * Try to match a user against an entry in the friends list to get their ID. * * @param {Element} element - The display name of the user to find the ID for. - * @return {?str} - The user's ID if found. + * @return {?string} - The user's ID if found. */ getUserIdFromFriendsList(senderName) { return document.querySelector(`#contact_wrap_friends > ul > li[title='${senderName}']`)?.getAttribute("data-mid")