Архитектурная роль
Модуль bot отвечает за взаимодействие с Telegram API и управление состояниями пользователей. Он предоставляет методы для отправки уведомлений, обработки команд и настроек, а также интегрируется с другими компонентами системы FunPayCardinal через экземпляр Cardinal.
Компоненты и логика
TGBot
- Назначение: Класс, представляющий бота для взаимодействия с Telegram API и управлением состояниями пользователей.
- Аргументы и связи:
- cardinal (Cardinal) — доступ к функциям ядра и сессии.
init(self, cardinal: Cardinal)
- Назначение: Инициализирует экземпляр бота.
- Аргументы и связи:
- cardinal (Cardinal): предоставляющий доступ к основным функциям системы.
- Методы:
- bot: Доступ к боту (telebot)
- authorized_users: Cписок авторизованных юзеров получаемый с помощью utils.load_authorized_users()
get_state(self, chat_id: int, user_id: int) -> dict | None
- Назначение: Получает текущее состояние пользователя.
- Аргументы и связи:
- chat_id (
int): ID чата. - user_id (
int): ID пользователя.
set_state(self, chat_id: int, message_id: int, user_id: int, state: str, data: dict | None=None)
- Назначение: Устанавливает состояние для пользователя.
- Аргументы и связи:
- chat_id (
int): ID чата. - message_id (
int): ID сообщения, после которого устанавливается данное состояние. - user_id (
int): ID пользователя. - state (
str): состояние. - data (
dict | None): дополнительные данные.
clear_state(self, chat_id: int, user_id: int, del_msg: bool=False) -> int | None
- Назначение: Очищает состояние пользователя.
- Аргументы и связи:
- chat_id (
int): ID чата. - user_id (
int): ID пользователя. - del_msg (
bool): удалять ли сообщение, после которого было обозначено текущее состояние.
check_state(self, chat_id: int, user_id: int, state: str) -> bool
- Назначение: Проверяет, является ли состояние указанным.
- Аргументы и связи:
- chat_id (
int): ID чата. - user_id** (
int): ID пользователя. - state (
str): состояние.
is_notification_enabled(self, chat_id: int | str, notification_type: str) -> bool
- Назначение: Проверяет, включен ли указанный тип уведомлений в указанном чате.
- Аргументы и связи:
- chat_id (
int | str): ID Telegram чата. - notification_type (
str): тип уведомлений.
toggle_notification(self, chat_id: int, notification_type: str) -> bool
- Назначение: Переключает указанный тип уведомлений в указанном чате и сохраняет настройки уведомлений.
- Аргументы и связи:
- chat_id (
int): ID Telegram чата. - notification_type (
str): тип уведомлений.
is_file_handler(self, m: [[types#Message|Message]])
- Назначение: Определяет, является ли сообщение файлом.
- Аргументы и связи:
- m (Message): сообщение.
file_handler(self, state, handler)
- Назначение: Обрабатывает файлы.
- Аргументы и связи:
- state: состояние.
- handler: обработчик.
run_file_handlers(self, m: [[types#Message|Message]])
- Назначение: Запускает обработчики файлов.
- Аргументы и связи:
- m (Message): сообщение.
msg_handler(self, handler, **kwargs)
- Назначение: Регистрирует хэндлер, срабатывающий при новом сообщении.
- Аргументы и связи:
- handler: хэндлер.
- kwargs: аргументы для хэндлера.
cbq_handler(self, handler, func, **kwargs)
- Назначение: Регистрирует хэндлер, срабатывающий при новом callback’е.
- Аргументы и связи:
- handler: хэндлер.
- func: функция-фильтр.
- kwargs: аргументы для хэндлера.
mdw_handler(self, handler, **kwargs)
- Назначение: Регистрирует промежуточный хэндлер.
- Аргументы и связи:
- handler: хэндлер.
- kwargs: аргументы для хэндлера.
setup_chat_notifications(self, bot: TGBot, m: [[types#Message|Message]])
- Назначение: Устанавливает настройки уведомлений по умолчанию в новом чате.
- Аргументы и связи:
- bot (
TGBot): * m (Message): сообщение.
reg_admin(self, m: [[types#Message|Message]])
- Назначение: Проверяет, есть ли пользователь в списке пользователей с доступом к ПУ TG.
- Аргументы и связи:
- m (Message): сообщение.
ignore_unauthorized_users(self, c: CallbackQuery)
- Назначение: Игнорирует callback’и от не авторизированных пользователей.
- Аргументы и связи:
- c (
CallbackQuery): callback.
send_settings_menu(self, m: [[types#Message|Message]])
- Назначение: Отправляет основное меню настроек (новым сообщением).
- Аргументы и связи:
- m (Message): сообщение.
send_profile(self, m: [[types#Message|Message]])
- Назначение: Отправляет статистику аккаунта.
- Аргументы и связи:
- m (Message): сообщение.
act_change_cookie(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ввода golden_key.
- Аргументы и связи:
- m (Message): сообщение.
change_cookie(self, m: [[types#Message|Message]])
- Назначение: Меняет golden_key аккаунта FunPay.
- Аргументы и связи:
- m (Message): сообщение.
update_profile(self, c: CallbackQuery)
- Назначение: Обновляет профиль.
- Аргументы и связи:
- c (
CallbackQuery): callback.
act_manual_delivery_test(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ввода названия лота для ручной генерации ключа теста автовыдачи.
- Аргументы и связи:
- m (Message): сообщение.
manual_delivery_text(self, m: [[types#Message|Message]])
- Назначение: Генерирует ключ теста автовыдачи (ручной режим).
- Аргументы и связи:
- m (Message): сообщение.
act_ban(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ввода никнейма пользователя, которого нужно добавить в ЧС.
- Аргументы и связи:
- m (Message): сообщение.
ban(self, m: [[types#Message|Message]])
- Назначение: Добавляет пользователя в ЧС.
- Аргументы и связи:
- m (Message): сообщение.
act_unban(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ввода никнейма пользователя, которого нужно удалить из ЧС.
- Аргументы и связи:
- m (Message): сообщение.
unban(self, m: [[types#Message|Message]])
- Назначение: Удаляет пользователя из ЧС.
- Аргументы и связи:
- m (Message): сообщение.
send_ban_list(self, m: [[types#Message|Message]])
- Назначение: Отправляет ЧС.
- Аргументы и связи:
- m (Message): сообщение.
act_edit_watermark(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ввода вотемарки сообщений.
- Аргументы и связи:
- m (Message): сообщение.
edit_watermark(self, m: [[types#Message|Message]])
- Назначение: Изменяет вотемарку сообщений.
- Аргументы и связи:
- m (Message): сообщение.
send_logs(self, m: [[types#Message|Message]])
- Назначение: Отправляет файл логов.
- Аргументы и связи:
- m (Message): сообщение.
del_logs(self, m: [[types#Message|Message]])
- Назначение: Удаляет старые лог-файлы.
- Аргументы и связи:
- m (Message): сообщение.
about(self, m: [[types#Message|Message]])
- Назначение: Отправляет информацию о текущей версии бота.
- Аргументы и связи:
- m (Message): сообщение.
check_updates(self, m: [[types#Message|Message]])
- Назначение: Проверяет наличие обновлений.
- Аргументы и связи:
- m (Message): сообщение.
get_backup(self, m: [[types#Message|Message]])
- Назначение: Получает бэкап.
- Аргументы и связи:
- m (Message): сообщение.
create_backup(self, m: [[types#Message|Message]])
- Назначение: Создает бэкап.
- Аргументы и связи:
- m (Message): сообщение.
update(self, m: [[types#Message|Message]])
- Назначение: Обновляет бота.
- Аргументы и связи:
- m (Message): сообщение.
send_system_info(self, m: [[types#Message|Message]])
- Назначение: Отправляет информацию о нагрузке на систему.
- Аргументы и связи:
- m (Message): сообщение.
restart_cardinal(self, m: [[types#Message|Message]])
- Назначение: Перезапускает кардинал.
- Аргументы и связи:
- m (Message): сообщение.
ask_power_off(self, m: [[types#Message|Message]])
- Назначение: Просит подтверждение на отключение FPC.
- Аргументы и связи:
- m (Message): сообщение.
cancel_power_off(self, c: CallbackQuery)
- Назначение: Отменяет выключение (удаляет клавиатуру с кнопками подтверждения).
- Аргументы и связи:
- c (
CallbackQuery): callback.
power_off(self, c: CallbackQuery)
- Назначение: Отключает FPC.
- Аргументы и связи:
- c (
CallbackQuery): callback.
act_send_funpay_message(self, c: CallbackQuery)
- Назначение: Активирует режим ввода сообщения для отправки его в чат FunPay.
- Аргументы и связи:
- c (
CallbackQuery): callback.
send_funpay_message(self, message: [[types#Message|Message]])
- Назначение: Отправляет сообщение в чат FunPay.
- Аргументы и связи:
- message (Message): сообщение.
act_upload_image(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ожидания изображения для последующей выгрузки на FunPay.
- Аргументы и связи:
- m (Message): сообщение.
act_upload_backup(self, m: [[types#Message|Message]])
- Назначение: Активирует режим ожидания бэкапа.
- Аргументы и связи:
- m (Message): сообщение.
act_edit_greetings_text(self, c: CallbackQuery)
- Назначение: Активирует режим редактирования текста приветствия.
- Аргументы и связи:
- c (
CallbackQuery): callback.
edit_greetings_text(self, m: [[types#Message|Message]])
- Назначение: Изменяет текст приветствия.
- Аргументы и связи:
- m (Message): сообщение.
act_edit_greetings_cooldown(self, c: CallbackQuery)
- Назначение: Активирует режим редактирования таймаута приветствия.
- Аргументы и связи:
- c (
CallbackQuery): callback.
edit_greetings_cooldown(self, m: [[types#Message|Message]])
- Назначение: Изменяет таймаут приветствия.
- Аргументы и связи:
- m (Message): сообщение.
act_edit_order_confirm_reply_text(self, c: CallbackQuery)
- Назначение: Активирует режим редактирования текста подтверждения заказа.
- Аргументы и связи:
- c (
CallbackQuery): callback.
edit_order_confirm_reply_text(self, m: [[types#Message|Message]])
- Назначение: Изменяет текст подтверждения заказа.
- Аргументы и связи:
- m (Message): сообщение.
act_edit_review_reply_text(self, c: CallbackQuery)
- Назначение: Активирует режим редактирования текста отзыва.
- Аргументы и связи:
- c (
CallbackQuery): callback.
edit_review_reply_text(self, m: [[types#Message|Message]])
- Назначение: Изменяет текст отзыва.
- Аргументы и связи:
- m (Message): сообщение.
open_reply_menu(self, c: CallbackQuery)
- Назначение: Открывает меню ответа на сообщение (callback используется в кнопках “назад”).
- Аргументы и связи:
- c (
CallbackQuery): callback.
extend_new_message_notification(self, c: CallbackQuery)
- Назначение: “Расширяет” уведомление о новом сообщении.
- Аргументы и связи:
- c (
CallbackQuery): callback.
ask_confirm_refund(self, call: CallbackQuery)
- Назначение: Просит подтвердить возврат денег.
- Аргументы и связи:
- call (
CallbackQuery): callback.
cancel_refund(self, call: CallbackQuery)
- Назначение: Отменяет возврат.
- Аргументы и связи:
- call (
CallbackQuery): callback.
refund(self, c: CallbackQuery)
- Назначение: Оформляет возврат за заказ.
- Аргументы и связи:
- c (
CallbackQuery): callback.
open_order_menu(self, c: CallbackQuery)
- Назначение: Открывает меню заказа.
- Аргументы и связи:
- c (
CallbackQuery): callback.
open_cp(self, c: CallbackQuery)
- Назначение: Открывает основное меню настроек (редактирует сообщение).
- Аргументы и связи:
- c (
CallbackQuery): callback.
open_cp2(self, c: CallbackQuery)
- Назначение: Открывает 2 страницу основного меню настроек (редактирует сообщение).
- Аргументы и связи:
- c (
CallbackQuery): callback.
switch_param(self, c: CallbackQuery)
- Назначение: Переключает переключаемые настройки FPC.
- Аргументы и связи:
- c (
CallbackQuery): callback.
switch_chat_notification(self, c: CallbackQuery)
- Назначение: Переключает уведомления чата.
- Аргументы и связи:
- c (
CallbackQuery): callback.
open_settings_section(self, c: CallbackQuery)
- Назначение: Открывает выбранную категорию настроек.
- Аргументы и связи:
- c (
CallbackQuery): callback.
cancel_action(self, call: CallbackQuery)
- Назначение: Обнуляет состояние пользователя по кнопке “Отмена” (CBT.CLEAR_STATE).
- Аргументы и связи:
- call (
CallbackQuery): callback.
param_disabled(self, c: CallbackQuery)
- Назначение: Отправляет сообщение о том, что параметр отключен в глобальных переключателях.
- Аргументы и связи:
- c (
CallbackQuery): callback.
send_announcements_kb(self, m: [[types#Message|Message]])
- Назначение: Отправляет сообщение с клавиатурой управления уведомлениями о новых объявлениях.
- Аргументы и связи:
- m (Message): сообщение.
send_review_reply_text(self, c: CallbackQuery)
- Назначение: Отправляет текст ответа на отзыв.
- Аргументы и связи:
- c (
CallbackQuery): callback.
send_old_mode_help_text(self, c: CallbackQuery)
- Назначение: Отправляет текст справки для старого режима.
- Аргументы и связи:
- c (
CallbackQuery): callback.
empty_callback(self, c: CallbackQuery)
- Назначение: Обрабатывает пустые callback’и.
- Аргументы и связи:
- c (
CallbackQuery): callback.
switch_lang(self, c: CallbackQuery)
- Назначение: Переключает язык.
- Аргументы и связи:
- c (
CallbackQuery): callback.
__register_handlers(self)
- Назначение: Регистрирует хэндлеры всех команд.
send_notification(self, text: str | None, keyboard: K | None=None, notification_type: str=utils.[[utils#NotificationTypes|NotificationTypes]].other, photo: bytes | None=None, pin: bool=False)
- Назначение: Отправляет сообщение во все чаты для уведомлений из self.notification_settings.
- Аргументы и связи:
- text (
str | None): текст уведомления. - keyboard (
K | None): * notification_type (str): тип уведомления. - photo (
bytes | None): фотография (если нужна). - pin (
bool): закреплять ли сообщение.
add_command_to_menu(self, command: str, help_text: str) -> None
- Назначение: Добавляет команду в список команд (в кнопке menu).
- Аргументы и связи:
- command (
str): текст команды. - help_text (
str): текст справки.
setup_commands(self)
- Назначение: Устанавливает меню команд.
edit_bot(self)
- Назначение: Изменяет описания и название бота.
init(self)
- Назначение: Инициализирует бота.
run(self)
- Назначение: Запускает поллинг.