From 76fe7fa3ed1267dea47e58d9670c79189c864325 Mon Sep 17 00:00:00 2001
From: Tulir Asokan <tulir@maunium.net>
Date: Wed, 29 Jul 2020 21:25:01 +0300
Subject: [PATCH] Catch and properly report PleaseRefresh errors in ping
 command

---
 mautrix_facebook/commands/conn.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/mautrix_facebook/commands/conn.py b/mautrix_facebook/commands/conn.py
index c906f5a..dd6c8c3 100644
--- a/mautrix_facebook/commands/conn.py
+++ b/mautrix_facebook/commands/conn.py
@@ -52,8 +52,12 @@ async def ping(evt: CommandEvent) -> None:
     if not await evt.sender.is_logged_in():
         await evt.reply("You're not logged into Facebook Messenger")
         return
-    own_info = cast(fbchat.User,
-                    await evt.sender.client.fetch_thread_info([evt.sender.fbid]).__anext__())
+    try:
+        own_info = cast(fbchat.User,
+                        await evt.sender.client.fetch_thread_info([evt.sender.fbid]).__anext__())
+    except fbchat.PleaseRefresh as e:
+        await evt.reply(f"{e}\n\nUse `$cmdprefix+sp refresh` refresh the session.")
+        return
     await evt.reply(f"You're logged in as {own_info.name} (user ID {own_info.id})")
 
     if not evt.sender.listen_task or evt.sender.listen_task.done():
-- 
GitLab