Bug fix: use a unique loop

This commit is contained in:
2022-10-12 14:01:10 +02:00
parent f91661927e
commit 45117610f9
3 changed files with 12 additions and 5 deletions

View File

@@ -11,7 +11,7 @@ __author__ = "Davide Testa"
__email__ = "davide@davte.it"
__credits__ = ["Marco Origlia", "Nick Lee @Nickoala"]
__license__ = "GNU General Public License v3.0"
__version__ = "2.8.3"
__version__ = "2.8.4"
__maintainer__ = "Davide Testa"
__contact__ = "t.me/davte"

View File

@@ -81,6 +81,7 @@ class TelegramBot:
All mirrored methods are camelCase.
"""
_loop = None
app = aiohttp.web.Application()
sessions_timeouts = {
@@ -99,6 +100,9 @@ class TelegramBot:
def __init__(self, token):
"""Set bot token and store HTTP sessions."""
if self.loop is None:
self.__class__._loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
self._token = token
self.sessions = dict()
self._flood_wait = 0
@@ -111,6 +115,11 @@ class TelegramBot:
0: []
}
@property
def loop(self):
"""Telegram API bot token."""
return self.__class__._loop
@property
def token(self):
"""Telegram API bot token."""

View File

@@ -3434,8 +3434,7 @@ class Bot(TelegramBot, ObjectWithDatabase, MultiLanguageObject):
"""
logging.info(message)
cls.final_state = final_state
loop = asyncio.get_running_loop()
loop.stop()
cls._loop.stop()
return
@classmethod
@@ -3461,8 +3460,7 @@ class Bot(TelegramBot, ObjectWithDatabase, MultiLanguageObject):
cls.local_host = local_host
if port is not None:
cls.port = port
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop = cls._loop
try:
loop.run_until_complete(cls.run_preliminary_tasks())
except Exception as e: