aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2024-02-04 11:23:41 +0100
committerTrygve Aaberge <trygveaa@gmail.com>2024-02-18 12:57:00 +0100
commit0a2ceeabf7e4cb6daa3a8bc9634d3da0e6d6d350 (patch)
tree134b634aed33ace0f7edb9025e7450852bedf73e
parente4602df81ec1b304fa7b2a6dfbf2a99e1e0c9273 (diff)
downloadwee-slack-0a2ceeabf7e4cb6daa3a8bc9634d3da0e6d6d350.tar.gz
Don't run buffer close callback when script is unloading
We don't want to call the API to close im/mpim conversations when the script is unloading.
-rw-r--r--slack/register.py1
-rw-r--r--slack/shared.py1
-rw-r--r--slack/slack_buffer.py2
-rw-r--r--slack/slack_conversation.py2
4 files changed, 6 insertions, 0 deletions
diff --git a/slack/register.py b/slack/register.py
index b907c49..d8ab7e3 100644
--- a/slack/register.py
+++ b/slack/register.py
@@ -15,6 +15,7 @@ SCRIPT_DESC = "Extends weechat for typing notification/search/etc on slack.com"
def shutdown_cb():
+ shared.script_is_unloading = True
weechat.config_write(shared.config.weechat_config.pointer)
return weechat.WEECHAT_RC_OK
diff --git a/slack/shared.py b/slack/shared.py
index c75802c..d3d8e33 100644
--- a/slack/shared.py
+++ b/slack/shared.py
@@ -35,6 +35,7 @@ class Shared:
self.standard_emojis_inverse: Dict[str, Emoji]
self.highlight_tag = "highlight"
self.debug_buffer_pointer: Optional[str] = None
+ self.script_is_unloading = False
shared = Shared()
diff --git a/slack/slack_buffer.py b/slack/slack_buffer.py
index 920b877..13cfb1b 100644
--- a/slack/slack_buffer.py
+++ b/slack/slack_buffer.py
@@ -527,6 +527,8 @@ class SlackBuffer(ABC):
return weechat.WEECHAT_RC_OK
def _buffer_close_cb(self, data: str, buffer: str) -> int:
+ if shared.script_is_unloading:
+ return weechat.WEECHAT_RC_OK
if self.buffer_pointer in shared.buffers:
del shared.buffers[self.buffer_pointer]
self.buffer_pointer = None
diff --git a/slack/slack_conversation.py b/slack/slack_conversation.py
index 2c95f4c..6b27940 100644
--- a/slack/slack_conversation.py
+++ b/slack/slack_conversation.py
@@ -734,6 +734,8 @@ class SlackConversation(SlackBuffer):
def _buffer_close_cb(self, data: str, buffer: str) -> int:
super()._buffer_close_cb(data, buffer)
+ if shared.script_is_unloading:
+ return weechat.WEECHAT_RC_OK
run_async(self._buffer_closed())
return weechat.WEECHAT_RC_OK