diff --git a/gateway/platforms/base.py b/gateway/platforms/base.py index 1f26ed854e1..dc0f22d2a3c 100644 --- a/gateway/platforms/base.py +++ b/gateway/platforms/base.py @@ -6,6 +6,7 @@ and implement the required methods. """ import asyncio +import inspect import ipaddress import logging import os @@ -1743,11 +1744,17 @@ class BasePlatformAdapter(ABC): # Start continuous typing indicator (refreshes every 2 seconds) _thread_metadata = {"thread_id": event.source.thread_id} if event.source.thread_id else None + _keep_typing_kwargs = {"metadata": _thread_metadata} + try: + _keep_typing_sig = inspect.signature(self._keep_typing) + except (TypeError, ValueError): + _keep_typing_sig = None + if _keep_typing_sig is None or "stop_event" in _keep_typing_sig.parameters: + _keep_typing_kwargs["stop_event"] = interrupt_event typing_task = asyncio.create_task( self._keep_typing( event.source.chat_id, - metadata=_thread_metadata, - stop_event=interrupt_event, + **_keep_typing_kwargs, ) )