Users
- class dublib.TelebotUtils.Users.UserData(manager: UsersManager, user_id: int)[исходный код]
Объектное представление данных пользователя.
- add_flags(flags: Iterable[str] | str)[исходный код]
Добавляет флаги пользователю.
- Параметры:
flags (Iterable[str] | str) – Один или несколько флагов.
- add_permissions(permissions: Iterable[str] | str)[исходный код]
Добавляет права пользователю.
- Параметры:
permissions (Iterable[str] | str) – Одно или несколько прав.
- attach_object(key: str, object: Any, force: bool = True)[исходный код]
Прикрепляет объект к пользователю. При перезапуске объект будет удалён.
- Параметры:
key (str) – Ключ объекта.
object (Any) – Прикрепляемый объект.
force (bool) – Указывает, нужно ли перезаписывать уже существующий объект.
- check_flags(flags: Iterable[str] | str) bool[исходный код]
Проверяет, активированы ли для пользователя указанные флаги.
- Параметры:
flags (Iterable[str] | str) – Один или несколько флагов.
- Результат:
Возвращает True, если все флаги активированы.
- Тип результата:
bool
- clear_temp_properties()[исходный код]
Очищает временные свойства пользователя.
- property expected_type: str | None
Тип ожидаемого значения.
- property flags: tuple[str]
Набор активированных флагов.
- get_object(key: str) Any[исходный код]
Возвращает объект, прикреплённый к пользователю.
- Параметры:
key (str) – Ключ объекта.
- Исключение:
KeyError – Выбрасывается при отсутствии объекта с переданным ключом.
- Результат:
Прикреплённый объект.
- Тип результата:
Any
- get_property(key: str, copy: bool = True) Any[исходный код]
Возвращает значение свойства пользователя. При наличии одинакового ключа в постоянных и временных свойствах, приоритет отдаётся временному.
- Параметры:
key (str) – Ключ свойства.
copy (bool) – Указывает, нужно ли создавать копию ссылочных объектов для защиты данных. Не рекомендуется отключать, если свойство будет изменяться.
- Исключение:
KeyError – Выбрасывается при отсутствии свойства с переданным ключом.
- Результат:
Значение свойства.
- Тип результата:
Any
- has_object(key: str) bool[исходный код]
Проверяет, прикреплён ли к пользователю объект с переданным ключом.
- Параметры:
key (str) – Ключ объекта.
- Результат:
Возвращает True, если объект с таким ключом найден.
- Тип результата:
bool
- has_permissions(permissions: Iterable[str] | str) bool[исходный код]
Проверяет, имеет ли пользователь все указанные права.
- Параметры:
permissions (Iterable[str] | str) – Одно или несколько прав.
- Результат:
Возвращает True, если пользователь имеет все указанные права.
- Тип результата:
bool
- has_property(key: str) bool[исходный код]
Проверяет, имеется ли у пользователя свойство с указанным ключом.
- Параметры:
key (str) – Ключ свойства.
- Результат:
Возвращает True, если свойство с таким ключом найдено.
- Тип результата:
bool
- property id: int
ID пользователя.
- property is_chat_forbidden: bool
Состояние: может ли бот контактировать с пользователем.
Состояние: имеет ли пользователь Premium-подписку.
- property is_saving_suppressed: bool
Состояние: подавляется ли сохранение в локальный файл.
- property language: str
Код используемого клиентом языка по стандарту ISO 639-1.
- property last_activity: datetime | None
Дата и время последней активности пользователя.
- property objects: dict[str, Any]
Словарь прикреплённых к пользователю объектов.
- property path: PathLike
Путь к файлу пользователя.
- property permissions: tuple[str]
Список прав пользователя.
- refresh()[исходный код]
Считывает данные из файла пользователя и дополняет отсутствующие поля.
- Исключение:
RefreshingBlocked – Выбрасывается при попытке чтения файла пользователя во время подавления сохранений.
- remove_flags(flags: Iterable[str] | str)[исходный код]
Удаляет флаги.
- Параметры:
flags (Iterable[str] | str) – Один или несколько флагов.
- remove_object(key: str)[исходный код]
Удаляет прикреплённый объект.
- Параметры:
key (str) – Ключ объекта.
- Исключение:
KeyError – Выбрасывается, если объект с указанным ключом не найден.
- remove_permissions(permissions: Iterable[str] | str)[исходный код]
Удаляет права.
- Параметры:
permissions (Iterable[str] | str) – Одно или несколько прав.
- remove_property(key: str)[исходный код]
Удаляет свойство пользователя. При поиске приоритет отдаётся постоянным свойствам, затем поиск осуществляется среди временных.
- Параметры:
key (str) – Ключ свойства.
- reset_expected_type()[исходный код]
Сбрасывает ожидаемый тип к значению None.
- save(use_queue: bool = True)[исходный код]
Записывает данные пользователя в локальный файл.
Если значение с момента прошлого сохранения не изменено, сохранение будет пропущено.
- Параметры:
use_queue (bool) – Указывает, помещать ли задачу в очередь, если доступна, или выполнить сохранение немедленно.
- set_chat_forbidden(status: bool)[исходный код]
Задаёт состояние: может ли бот контактировать с пользователем.
- Параметры:
status (bool) – Состояние.
- set_expected_type(expected_type: str | Enum | None)[исходный код]
Задаёт ожидаемый тип данных.
- Параметры:
expected_type (str | Enum | None) – Ожидаемый от пользователя тип данных. При указании элемента перечисления берётся его значение.
- set_property(key: str, value: Any, force: bool = True)[исходный код]
Задаёт значение свойства пользователя.
- Параметры:
key (str) – Ключ свойства.
value (Any) – Значение свойства.
force (bool) – Указывает, нужно ли перезаписывать уже существующее свойство.
- set_temp_property(key: str, value: Any, force: bool = True)[исходный код]
Задаёт временное значение свойства пользователя.
Временные значения могут служить для поэтапного ввода данных или непродолжительного хранения информации. Как правило их следует очищать методом clear_temp_properties().
- Параметры:
key (str) – Ключ свойства.
value (Any) – Значение свойства.
force (bool) – Указывает, нужно ли перезаписывать уже существующее свойство.
- suppress_saving(status: bool, save_on_disabling: bool = True)[исходный код]
Подавляет сохранение в локальный файл.
Следует использовать для оптимизации при множественных изменениях. Во время подавления недоступен вызов метода refresh().
- Параметры:
status (bool) – Статус подавления.
save_on_disabling (bool) – Указывает, следует ли выполнить обязательное сохранение после отключения подавления. Игнорируется при включении подавления.
- update(user: User, is_chat_forbidden: bool | None = None)[исходный код]
Обновляет данные пользователя (язык, наличие подписки, ник) из его структуры Telegram.
- Параметры:
user (telebot.types.User) – Объект представления пользователя.
is_chat_forbidden (bool | None) – Указывает, заблокировал ли пользователь бота.
- Исключение:
IncorrectUserToUpdate – Выбрасывается при передаче несоответствующей по ID структуры пользователя.
- update_acitivity() datetime[исходный код]
Обновляет дату и время последней активности пользователя.
- Результат:
Дата и время последней активности пользователя.
- Тип результата:
datetime
- property username: str
Ник пользователя.
- class dublib.TelebotUtils.Users.UsersManager(storage_directory: PathLike, threads: int = 1)[исходный код]
Менеджер пользователей.
- add_flags(flags: Iterable[str] | str)[исходный код]
Добавляет флаги для всех пользователей.
- Параметры:
flags (Iterable[str] | str) – Один или несколько флагов.
- auth(user: User, update_activity: bool = True) UserData[исходный код]
Выполняет авторизацию пользователя в системе.
- Параметры:
user (telebot.types.User) – Структуры данных пользователя Telegram.
update_activity (bool) – Указывает, нужно ли обновить дату и время последней активности пользователя.
- Исключение:
TypeError – Выбрасывается при передаче неверного типа структуры данных пользователя.
- Результат:
Данные пользователя.
- Тип результата:
- clear_temp_properties()[исходный код]
Очищает временные свойства всех пользователей.
- delete_user(user_id: int)[исходный код]
Удаляет данные пользователя.
- Параметры:
user_id (int) – ID пользователя.
- Исключение:
KeyError – Выбрасывается при отсутствии пользователя с переданным ID.
- enable_atomic_writing(status: bool)[исходный код]
Переключает режим атомарной записи файлов, увеличивает время сохранения JSON за счёт гарантии сохранности.
- Параметры:
status (bool) – Состояние использования атомарной записи.
- enable_pretty_saving(status: bool)[исходный код]
Переключает форматирование локальных файлов с использованием отступов. Отключение может значительно ускорить операции записи.
- Параметры:
status (bool) – Состояние форматирования.
- enable_saving_queue(status: bool)[исходный код]
Переключает использование очереди сохранений.
- Параметры:
status (bool) – Состояние использования очереди.
- get_active_users(hours: int = 24) tuple[UserData][исходный код]
Возвращает последовательность пользователей, для которых активных за последние N часов.
- Параметры:
hours (int) – Количество часов для проверки активности. По умолчанию 24.
- Результат:
Последовательность данных пользователей.
- Тип результата:
tuple[UserData]
- get_user(user_id: int) UserData[исходный код]
Возвращает данные пользователя.
- Параметры:
user_id (int) – ID пользователя.
- Исключение:
KeyError – Выбрасывается при отсутствии данных для пользователя с указанным ID.
- Результат:
Данные пользователя.
- Тип результата:
- property is_atomic_writes: bool
Состояние: используется ли атомарная запись.
- property is_pretty_saving_enabled: bool
Состояние: форматировать ли локальные файлы отступами.
- property is_saving_queue_enabled: bool
Состояние: используется ли очередь сохранений.
- is_user_exists(user_id: int) bool[исходный код]
Проверяет, зарегестрирован ли пользователь в системе.
- Параметры:
user_id (int) – ID пользователя.
- Результат:
Возвращает True, если данные пользователя обнаружены.
- Тип результата:
bool
Последовательность пользователей с Premium-подпиской из числа хранящихся в памяти.
- push_to_saving_queue(user: UserData)[исходный код]
Добавляет данные пользователя в очередь на сохранение.
- Параметры:
user (UserData) – Данные пользователя.
- Исключение:
SavingQueueBlocked – Выбрасывается при отключённой очереди сохранений.
- reload_users(threads: int = 1)[исходный код]
Загружает данные пользователей из локальных файлов.
Вызывается автоматически при инициализации менеджера. Повторный вызов без реализации механизмов защиты может привести к потере данных.
- Параметры:
threads (int) – Число потоков, использующихся для операций чтения. По умолчанию 1.
- remove_flags(flags: Iterable[str] | str)[исходный код]
Удаляет флаги у всех пользователей.
- Параметры:
flags (Iterable[str] | str) – Один или несколько флагов.
- remove_permissions(permissions: list[str] | str)[исходный код]
Удаляет права у всех пользователей.
- Параметры:
permissions (Iterable[str] | str) – Одно или несколько прав.
- remove_property(key: str)[исходный код]
Удаляет свойство у всех пользователей.
- Параметры:
key (str) – Ключ свойства.
- restore_unloaded_users()[исходный код]
Заново загружает в память ранее выгруженные данные неактивных пользователей.
- set_property(key: str, value: Any, force: bool = True)[исходный код]
Задаёт свойство для всех пользователей.
- Параметры:
key (str) – Ключ свойства.
value (Any) – Значение свойства.
force (bool) – Указывает, нужно ли перезаписывать уже существующее свойство.
- start_unloader(interval: int, days: int)[исходный код]
Запускает фоновую задачу по периодической выгрузке неактивных пользователей из памяти.
- Параметры:
interval (int) – Интервал в часах для срабатывания выгрузки.
days (int) – Количество дней отсутствия активности.
- stop_unloader()[исходный код]
Останавливает фоновую задачу по периодической выгрузке неактивных пользователей из памяти.
- property storage_directory: PathLike
Путь к каталогу файлов пользователей.
- unload_users(days: int) tuple[int][исходный код]
Выгружает из оперативной памяти данные пользователей, чья последняя активность выходит за указанное значение.
- Параметры:
days (int) – Количество дней отсутствия активности. Минимум 1.
- Результат:
Последовательность ID пользователей, для которых были выгружены данные.
- Тип результата:
tuple[int]
- Исключение:
ValueError – Выбрасывается при неверной спецификации количества дней.
- property unloaded_users_id: tuple[int]
Последовательность ID выгруженных из памяти пользователей.