forked from fair/matrix-puppeteer-line
Post startup messages in notice room
This commit is contained in:
parent
27c66887c3
commit
2117685df7
|
@ -91,9 +91,8 @@ async def login_do(evt: CommandEvent, gen: AsyncGenerator[Tuple[str, str], None]
|
||||||
# else: pass
|
# else: pass
|
||||||
|
|
||||||
if not failure and evt.sender.command_status:
|
if not failure and evt.sender.command_status:
|
||||||
await evt.reply("Successfully logged in, now syncing")
|
await evt.reply("Successfully logged in")
|
||||||
await evt.sender.sync()
|
await evt.sender.sync()
|
||||||
await evt.reply("Syncing complete")
|
|
||||||
# else command was cancelled or failed. Don't post message about it, "cancel" command or failure did already
|
# else command was cancelled or failed. Don't post message about it, "cancel" command or failure did already
|
||||||
evt.sender.command_status = None
|
evt.sender.command_status = None
|
||||||
|
|
||||||
|
|
|
@ -44,4 +44,3 @@ async def ping(evt: CommandEvent) -> None:
|
||||||
help_text="Synchronize portals")
|
help_text="Synchronize portals")
|
||||||
async def sync(evt: CommandEvent) -> None:
|
async def sync(evt: CommandEvent) -> None:
|
||||||
await evt.sender.sync()
|
await evt.sender.sync()
|
||||||
await evt.reply("Synchronization complete")
|
|
||||||
|
|
|
@ -64,6 +64,10 @@ class User(DBUser, BaseUser):
|
||||||
cls.loop = bridge.loop
|
cls.loop = bridge.loop
|
||||||
Client.config = bridge.config
|
Client.config = bridge.config
|
||||||
|
|
||||||
|
async def send_notice(self, text) -> None:
|
||||||
|
if self.notice_room:
|
||||||
|
await self.az.intent.send_notice(self.notice_room, text)
|
||||||
|
|
||||||
async def is_logged_in(self) -> bool:
|
async def is_logged_in(self) -> bool:
|
||||||
try:
|
try:
|
||||||
return self.client and (await self.client.start()).is_logged_in
|
return self.client and (await self.client.start()).is_logged_in
|
||||||
|
@ -92,13 +96,17 @@ class User(DBUser, BaseUser):
|
||||||
self.loop.create_task(self.connect_double_puppet())
|
self.loop.create_task(self.connect_double_puppet())
|
||||||
self.client = Client(self.mxid)
|
self.client = Client(self.mxid)
|
||||||
self.log.debug("Starting client")
|
self.log.debug("Starting client")
|
||||||
|
await self.send_notice("Starting up...")
|
||||||
state = await self.client.start()
|
state = await self.client.start()
|
||||||
await self.client.on_message(self.handle_message)
|
await self.client.on_message(self.handle_message)
|
||||||
await self.client.on_receipt(self.handle_receipt)
|
await self.client.on_receipt(self.handle_receipt)
|
||||||
if state.is_connected:
|
if state.is_connected:
|
||||||
self._track_metric(METRIC_CONNECTED, True)
|
self._track_metric(METRIC_CONNECTED, True)
|
||||||
if state.is_logged_in:
|
if state.is_logged_in:
|
||||||
|
await self.send_notice("Already logged in to LINE")
|
||||||
self.loop.create_task(self._try_sync())
|
self.loop.create_task(self._try_sync())
|
||||||
|
else:
|
||||||
|
await self.send_notice("Ready to log in to LINE")
|
||||||
|
|
||||||
async def _try_sync(self) -> None:
|
async def _try_sync(self) -> None:
|
||||||
try:
|
try:
|
||||||
|
@ -117,6 +125,7 @@ class User(DBUser, BaseUser):
|
||||||
self._connection_check_task = self.loop.create_task(self._check_connection_loop())
|
self._connection_check_task = self.loop.create_task(self._check_connection_loop())
|
||||||
await self.client.set_last_message_ids(await DBMessage.get_max_mids())
|
await self.client.set_last_message_ids(await DBMessage.get_max_mids())
|
||||||
self.log.info("Syncing chats")
|
self.log.info("Syncing chats")
|
||||||
|
await self.send_notice("Synchronizing chats...")
|
||||||
await self.client.pause()
|
await self.client.pause()
|
||||||
chats = await self.client.get_chats()
|
chats = await self.client.get_chats()
|
||||||
limit = self.config["bridge.initial_conversation_sync"]
|
limit = self.config["bridge.initial_conversation_sync"]
|
||||||
|
@ -129,8 +138,10 @@ class User(DBUser, BaseUser):
|
||||||
else:
|
else:
|
||||||
await portal.create_matrix_room(self, chat)
|
await portal.create_matrix_room(self, chat)
|
||||||
await self.client.resume()
|
await self.client.resume()
|
||||||
|
await self.send_notice("Synchronization complete")
|
||||||
|
|
||||||
async def stop(self) -> None:
|
async def stop(self) -> None:
|
||||||
|
# TODO Notices for shutdown messages
|
||||||
if self._connection_check_task:
|
if self._connection_check_task:
|
||||||
self._connection_check_task.cancel()
|
self._connection_check_task.cancel()
|
||||||
self._connection_check_task = None
|
self._connection_check_task = None
|
||||||
|
|
Loading…
Reference in New Issue