Архитектурная роль
Модуль handlers отвечает за обработку событий, связанных с чатами, сообщениями и заказами, и взаимодействует с другими компонентами системы, такими как Cardinal, для выполнения различных операций, таких как отправка уведомлений, логирование и обработка заказов.
Компоненты и логика
LAST_STACK_ID
- Назначение: Константа, используемая для хранения последнего стека сообщений.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
MSG_LOG_LAST_STACK_ID
- Назначение: Константа, используемая для хранения последнего стека сообщений для логирования.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
ORDER_HTML_TEMPLATE
- Назначение: Константа, используемая для хранения шаблона HTML для заказов.
- Аргументы и связи: Нет.
- Взаимодействие: Нет.
save_init_chats_handler
- Назначение: Кэширует существующие чаты, чтобы не отправлять приветственные сообщения.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (InitialChatEvent): Событие инициализации чата.
- Взаимодействие: Cardinal, InitialChatEvent.
update_threshold_on_initial_chat
- Назначение: Обновляет пороговое значение для определения новых чатов.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (InitialChatEvent): Событие инициализации чата.
- Взаимодействие: Cardinal, InitialChatEvent.
old_log_msg_handler
- Назначение: Логирует полученное сообщение.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (LastChatMessageChangedEvent): Событие изменения последнего сообщения чата.
- Взаимодействие: Cardinal, LastChatMessageChangedEvent.
log_msg_handler
- Назначение: Логирует сообщение.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent): Событие нового сообщения.
- Взаимодействие: Cardinal, NewMessageEvent.
update_threshold_on_last_message_change
- Назначение: Обновляет пороговое значение для определения новых чатов.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (LastChatMessageChangedEvent | NewMessageEvent): Событие изменения последнего сообщения чата или нового сообщения.
- Взаимодействие: Cardinal, LastChatMessageChangedEvent, NewMessageEvent.
greetings_handler
- Назначение: Отправляет приветственное сообщение.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
add_old_user_handler
- Назначение: Добавляет пользователя в список написавших.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
send_response_handler
- Назначение: Проверяет, является ли сообщение командой, и если да, отправляет ответ на данную команду.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
old_send_new_msg_notification_handler
- Назначение: Отправляет уведомление о новом сообщении в телеграм.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (LastChatMessageChangedEvent): Событие изменения последнего сообщения чата.
- Взаимодействие: Cardinal, LastChatMessageChangedEvent.
send_new_msg_notification_handler
- Назначение: Отправляет уведомление о новом сообщении в телеграм.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent): Событие нового сообщения.
- Взаимодействие: Cardinal, NewMessageEvent.
send_review_notification
- Назначение: Отправляет уведомление о новом отзыве.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- order (Order): Объект заказа.
- chat_id (
int): ID чата. - reply_text (
str | None): Текст ответа на отзыв. - Взаимодействие: Cardinal, Order.
process_review_handler
- Назначение: Обрабатывает новый отзыв.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
send_command_notification_handler
- Назначение: Отправляет уведомление о введенной команде в телеграм.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
test_auto_delivery_handler
- Назначение: Выполняет тест автовыдачи.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewMessageEvent | LastChatMessageChangedEvent): Событие нового сообщения или изменения последнего сообщения чата.
- Взаимодействие: Cardinal, NewMessageEvent, LastChatMessageChangedEvent.
send_categories_raised_notification_handler
- Назначение: Отправляет уведомление о поднятии лотов в Telegram.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- cat (Category): Категория.
- error_text (
str): Текст ошибки. - Взаимодействие: Cardinal, Category.
get_lot_config_by_name
- Назначение: Ищет секцию лота в конфиге автовыдачи.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- name (
str): Название лота. - Возвращаемое значение: Секция конфига или None.
- Взаимодействие: Cardinal.
check_products_amount
- Назначение: Проверяет количество продуктов.
- Аргументы и связи:
- config_obj (
configparser.SectionProxy): Объект секции конфига. - Возвращаемое значение: Количество продуктов.
- Взаимодействие: Нет.
log_new_order_handler
- Назначение: Логирует новый заказ.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal, NewOrderEvent.
setup_event_attributes_handler
- Назначение: Устанавливает атрибуты события.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal, NewOrderEvent.
send_new_order_notification_handler
- Назначение: Отправляет уведомления о новом заказе в телеграм.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal, NewOrderEvent.
deliver_goods
- Назначение: Доставляет товары.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal, NewOrderEvent.
deliver_product_handler
- Назначение: Обертка для
deliver_product(), обрабатывающая ошибки. - Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
*args: Дополнительные аргументы.- Возвращаемое значение: None.
- Взаимодействие: Cardinal, NewOrderEvent.
send_delivery_notification_handler
- Назначение: Отправляет уведомление в телеграм об отправке товара.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
- Взаимодействие: Cardinal, NewOrderEvent.
update_current_lots
- Назначение: Обновляет текущие лоты.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
- Взаимодействие: Cardinal, NewOrderEvent.
update_profile_lots
- Назначение: Обновляет лоты в
c.profile. - Аргументы и связи:
- c (Cardinal): Объект кардинала.
- e (NewOrderEvent): Событие нового заказа.
- Взаимодействие: Cardinal, NewOrderEvent.
update_lot_state
- Назначение: Обновляет состояние лота.
- Аргументы и связи:
- cardinal (Cardinal): Объект кардинала.
- lot (LotShortcut): Объект лота.
- task (
int): Задача (-1 - деактивировать лот, 1 - активировать лот). - Возвращаемое значение: Результат выполнения.
- Взаимодействие: Cardinal, LotShortcut.
update_lots_states
- Назначение: Обновляет состояния лотов.
- Аргументы и связи:
- cardinal (Cardinal): Объект кардинала.
- event (NewOrderEvent): Событие нового заказа.
- Взаимодействие: Cardinal, NewOrderEvent.
update_profiles_handler
- Назначение: Обновляет информацию о профилях и состояния лотов в отдельном потоке.
- Аргументы и связи:
- cardinal (Cardinal): Объект кардинала.
- event (NewOrderEvent | OrdersListChangedEvent): Событие нового заказа или изменения списка заказов.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal, NewOrderEvent, OrdersListChangedEvent.
send_thank_u_message_handler
- Назначение: Отправляет ответное сообщение на подтверждение заказа.
- Аргументы и связи:
- cardinal (Cardinal): Объект кардинала.
- event (OrderStatusChangedEvent): Событие изменения статуса заказа.
- Взаимодействие: Cardinal, OrderStatusChangedEvent.
send_order_confirmed_notification_handler
- Назначение: Отправляет уведомление о подтверждении заказа в Telegram.
- Аргументы и связи:
- cardinal (Cardinal): Объект кардинала.
- event (OrderStatusChangedEvent): Событие изменения статуса заказа.
- Взаимодействие: Cardinal, OrderStatusChangedEvent.
send_bot_started_notification_handler
- Назначение: Отправляет уведомление о запуске бота в телеграм.
- Аргументы и связи:
- c (Cardinal): Объект кардинала.
*args: Дополнительные аргументы.- Взаимодействие: Cardinal.