Получение событий FunPay#

class FunPayAPI.updater.runner.Runner(account: Account, disable_message_requests: bool = False, disabled_order_requests: bool = False)#

Класс для получения новых событий FunPay.

Параметры:
make_msg_requests: bool#

Делать ли доп. запросы для получения всех новых сообщений изменившихся чатов?

make_order_requests: bool#

Делать ли доп запросы для получения все новых / изменившихся заказов?

saved_orders: dict[str, types.OrderShortcut]#

экземпляр types.OrderShortcut}).

Type:

Сохраненные состояния заказов ({ID заказа

last_messages: dict[int, list[str, str | None]]#

(текст сообщения (до 250 символов), время сообщения)}).

Type:

ID последний сообщений ({ID чата

init_messages: dict[int, str]#

Текста инит. чатов (для generate_new_message_events).

by_bot_ids: dict[int, list[int]]#

[ID сообщения, …]}).

Type:

ID сообщений, отправленных с помощью self.account.send_message ({ID чата

last_messages_ids: dict[int, int]#

ID последнего сообщения}).

Type:

ID последних сообщений в чатах ({ID чата

account: Account#

Экземпляр аккаунта, к которому привязан Runner.

get_updates() dict#

Запрашивает список событий FunPay.

Результат:

ответ FunPay.

Тип результата:

dict

parse_updates(updates: dict) list[FunPayAPI.updater.events.InitialChatEvent | FunPayAPI.updater.events.ChatsListChangedEvent | FunPayAPI.updater.events.LastChatMessageChangedEvent | FunPayAPI.updater.events.NewMessageEvent | FunPayAPI.updater.events.InitialOrderEvent | FunPayAPI.updater.events.OrdersListChangedEvent | FunPayAPI.updater.events.NewOrderEvent | FunPayAPI.updater.events.OrderStatusChangedEvent]#

Парсит ответ FunPay и создает события.

Параметры:

updates (dict) – результат выполнения FunPayAPI.updater.runner.Runner.get_updates()

Результат:

список событий.

Тип результата:

list of FunPayAPI.updater.events.InitialChatEvent, FunPayAPI.updater.events.ChatsListChangedEvent, FunPayAPI.updater.events.LastChatMessageChangedEvent, FunPayAPI.updater.events.NewMessageEvent, FunPayAPI.updater.events.InitialOrderEvent, FunPayAPI.updater.events.OrdersListChangedEvent, FunPayAPI.updater.events.NewOrderEvent, FunPayAPI.updater.events.OrderStatusChangedEvent

parse_chat_updates(obj) list[FunPayAPI.updater.events.InitialChatEvent | FunPayAPI.updater.events.ChatsListChangedEvent | FunPayAPI.updater.events.LastChatMessageChangedEvent | FunPayAPI.updater.events.NewMessageEvent]#

Парсит события, связанные с чатами.

Параметры:

obj (dict) – словарь из результата выполнения FunPayAPI.updater.runner.Runner.get_updates(), где «type» == «chat_bookmarks».

Результат:

список событий, связанных с чатами.

Тип результата:

:obj:list of FunPayAPI.updater.events.InitialChatEvent, FunPayAPI.updater.events.ChatsListChangedEvent, FunPayAPI.updater.events.LastChatMessageChangedEvent, FunPayAPI.updater.events.NewMessageEvent

generate_new_message_events(chats_data: dict[int, str]) dict[int, list[FunPayAPI.updater.events.NewMessageEvent]]#

Получает историю переданных чатов и генерирует события новых сообщений.

Параметры:

chats_data (dict {int: str or None}) – ID чатов и никнеймы собеседников (None, если никнейм неизвестен) Например: {48392847: «SLLMK», 58392098: «Amongus», 38948728: None}

Результат:

словарь с событиями новых сообщений в формате {ID чата: [список событий]}

Тип результата:

dict {int: list of FunPayAPI.updater.events.NewMessageEvent}

parse_order_updates(obj) list[FunPayAPI.updater.events.InitialOrderEvent | FunPayAPI.updater.events.OrdersListChangedEvent | FunPayAPI.updater.events.NewOrderEvent | FunPayAPI.updater.events.OrderStatusChangedEvent]#

Парсит события, связанные с продажами.

Параметры:

obj (dict) – словарь из результата выполнения FunPayAPI.updater.runner.Runner.get_updates(), где «type» == «orders_counters».

Результат:

список событий, связанных с продажами.

Тип результата:

list of FunPayAPI.updater.events.InitialOrderEvent, FunPayAPI.updater.events.OrdersListChangedEvent, FunPayAPI.updater.events.NewOrderEvent, FunPayAPI.updater.events.OrderStatusChangedEvent

update_last_message(chat_id: int, message_text: str | None, message_time: str | None = None)#

Обновляет сохраненный текст последнего сообщения чата.

Параметры:
  • chat_id (int) – ID чата.

  • message_text (str or None) – текст сообщения (если None, заменяется за «Изображение»).

  • message_time (str or None, опционально) – время отправки сообщения в формате ЧЧ:ММ. Используется исключительно Runner’ом.

update_order(order: OrderShortcut)#

Обновляет сохраненное состояние переданного заказа.

Параметры:

order (FunPayAPI.types.OrderShortcut) – экземпляр заказа, который нужно обновить.

mark_as_by_bot(chat_id: int, message_id: int)#

Помечает сообщение с переданным ID, как отправленный с помощью FunPayAPI.account.Account.send_message().

Параметры:
  • chat_id (int) – ID чата.

  • message_id (int) – ID сообщения.

listen(requests_delay: int | float = 6.0, ignore_exceptions: bool = True) Generator[InitialChatEvent | ChatsListChangedEvent | LastChatMessageChangedEvent | NewMessageEvent | InitialOrderEvent | OrdersListChangedEvent | NewOrderEvent | OrderStatusChangedEvent]#

Бесконечно отправляет запросы для получения новых событий.

Параметры:
  • requests_delay (int or float, опционально) – задержка между запросами (в секундах).

  • ignore_exceptions (bool, опционально) – игнорировать ошибки?

Результат:

генератор событий FunPay.

Тип результата:

Generator of FunPayAPI.updater.events.InitialChatEvent, FunPayAPI.updater.events.ChatsListChangedEvent, FunPayAPI.updater.events.LastChatMessageChangedEvent, FunPayAPI.updater.events.NewMessageEvent, FunPayAPI.updater.events.InitialOrderEvent, FunPayAPI.updater.events.OrdersListChangedEvent, FunPayAPI.updater.events.NewOrderEvent, FunPayAPI.updater.events.OrderStatusChangedEvent