Compare commits
3 Commits
111b83bf84
...
b60d8571d3
| Author | SHA1 | Date | |
|---|---|---|---|
| b60d8571d3 | |||
| c9a334a615 | |||
| 222ca919fc |
@@ -29,7 +29,9 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
|
|
||||||
webhook_app = FastAPI()
|
webhook_app = FastAPI()
|
||||||
|
|
||||||
CONNECTION_RETRY_DELAY = 30
|
CONNECTION_RETRY_DELAY = 30
|
||||||
|
GET_UPDATES_RETRY_DELAY = 5
|
||||||
|
|
||||||
|
|
||||||
class Dispatcher:
|
class Dispatcher:
|
||||||
@@ -77,8 +79,7 @@ class Dispatcher:
|
|||||||
*routers: Роутеры для включения
|
*routers: Роутеры для включения
|
||||||
"""
|
"""
|
||||||
|
|
||||||
for router in routers:
|
self.routers += [r for r in routers]
|
||||||
self.routers.append(router)
|
|
||||||
|
|
||||||
async def __ready(self, bot: Bot):
|
async def __ready(self, bot: Bot):
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
@@ -86,10 +87,7 @@ class Dispatcher:
|
|||||||
|
|
||||||
self.routers += [self]
|
self.routers += [self]
|
||||||
|
|
||||||
handlers_count = 0
|
handlers_count = sum(len(router.event_handlers) for router in self.routers)
|
||||||
for router in self.routers:
|
|
||||||
for _ in router.event_handlers:
|
|
||||||
handlers_count += 1
|
|
||||||
|
|
||||||
logger_dp.info(f'{handlers_count} событий на обработку')
|
logger_dp.info(f'{handlers_count} событий на обработку')
|
||||||
|
|
||||||
@@ -129,14 +127,13 @@ class Dispatcher:
|
|||||||
result_data_kwargs=result_data_kwargs
|
result_data_kwargs=result_data_kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
if result == None or result == False:
|
if result is None or result is False:
|
||||||
return
|
return
|
||||||
|
|
||||||
elif result == True:
|
elif result is True:
|
||||||
result = {}
|
continue
|
||||||
|
|
||||||
for key, value in result.items():
|
result_data_kwargs.update(result)
|
||||||
result_data_kwargs[key] = value
|
|
||||||
|
|
||||||
return result_data_kwargs
|
return result_data_kwargs
|
||||||
|
|
||||||
@@ -150,6 +147,7 @@ class Dispatcher:
|
|||||||
try:
|
try:
|
||||||
ids = event_object.get_ids()
|
ids = event_object.get_ids()
|
||||||
memory_context = self.__get_memory_context(*ids)
|
memory_context = self.__get_memory_context(*ids)
|
||||||
|
current_state = await memory_context.get_state()
|
||||||
kwargs = {'context': memory_context}
|
kwargs = {'context': memory_context}
|
||||||
|
|
||||||
is_handled = False
|
is_handled = False
|
||||||
@@ -178,8 +176,7 @@ class Dispatcher:
|
|||||||
if not filter_attrs(event_object, *handler.filters):
|
if not filter_attrs(event_object, *handler.filters):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not handler.state == await memory_context.get_state() \
|
if not handler.state == current_state and handler.state:
|
||||||
and handler.state:
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
func_args = handler.func_event.__annotations__.keys()
|
func_args = handler.func_event.__annotations__.keys()
|
||||||
@@ -224,7 +221,8 @@ class Dispatcher:
|
|||||||
events = await self.bot.get_updates()
|
events = await self.bot.get_updates()
|
||||||
|
|
||||||
if isinstance(events, Error):
|
if isinstance(events, Error):
|
||||||
logger_dp.info(f'Ошибка при получении обновлений: {events}')
|
logger_dp.info(f'Ошибка при получении обновлений: {events}, жду {GET_UPDATES_RETRY_DELAY} секунд')
|
||||||
|
await asyncio.sleep(GET_UPDATES_RETRY_DELAY)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
self.bot.marker_updates = events.get('marker')
|
self.bot.marker_updates = events.get('marker')
|
||||||
@@ -236,6 +234,7 @@ class Dispatcher:
|
|||||||
|
|
||||||
for event in processed_events:
|
for event in processed_events:
|
||||||
await self.handle(event)
|
await self.handle(event)
|
||||||
|
|
||||||
except ClientConnectorError:
|
except ClientConnectorError:
|
||||||
logger_dp.error(f'Ошибка подключения, жду {CONNECTION_RETRY_DELAY} секунд')
|
logger_dp.error(f'Ошибка подключения, жду {CONNECTION_RETRY_DELAY} секунд')
|
||||||
await asyncio.sleep(CONNECTION_RETRY_DELAY)
|
await asyncio.sleep(CONNECTION_RETRY_DELAY)
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ class BaseMiddleware:
|
|||||||
event_object: UpdateUnion
|
event_object: UpdateUnion
|
||||||
):
|
):
|
||||||
|
|
||||||
|
# пока что заглушка
|
||||||
|
if result_data_kwargs is None:
|
||||||
|
return {}
|
||||||
|
|
||||||
kwargs_temp = {'data': result_data_kwargs.copy()}
|
kwargs_temp = {'data': result_data_kwargs.copy()}
|
||||||
|
|
||||||
for key in kwargs_temp.copy().keys():
|
for key in kwargs_temp.copy().keys():
|
||||||
|
|||||||
Reference in New Issue
Block a user