ShotSaver¶
-
class
ShotSaver
(shot_awaiting_time=5, tries_to_make_shot=2, pool_size=10, host_api=<module 'host' from '/home/docs/checkouts/readthedocs.org/user_builds/trassir-script-framework/checkouts/stable/tests/host/__init__.py'>)[исходный код]¶ Класс для сохранения скриншотов
Параметры: - shot_awaiting_time (
int
, optional) – Время ожидания скриншота, с. По умолчанию5
. - tries_to_make_shot (
int
, optional) – Кол-во попыток сохранить скриншот. Если в течении времени shot_awaiting_time скриншот не был сохранен - производится следующая попытка сохранить скриншот. По умолчанию2
- pool_size (
int
) – Размер пула. По умолчанию10
-
pool_size
¶ Размер пула для метода
pool_shot
Устанавливает размер пула (кол-во одновременно созданных задач сохранения скриншотов). По умолчанию
10
.Предупреждение
Изменить данный параметр можно только до первого вызова метода
pool_shot
. После вызоветRuntimeError
Raises: RuntimeError
– Если пул уже создан.Type: int
-
pool_queue_size
¶ Размер текущей очереди в пуле
Возвращает текущий размер очереди в пуле.
Примечание
Если пул еще не был созда (метод
pool_shot
не вызывался) данный метод вернет-1
Type: int
-
screenshots_folder
¶ Папка для сохранения скриншотов по умолчанию
Устанавливает новый путь по умолчанию для сохранения скриншотов, если папка не существует - создает папку. Или возвращает текущий путь для сохранения скриншотов.
Примечание
По молчанию
screenshots_folder
=BaseUtils.get_screenshot_folder()
Raises: OSError
– Если возникает ошибка при создании папкиType: str
-
shot
(channel_full_guid, dt=None, file_name=None, file_path=None)[исходный код]¶ Делает скриншот с указанного канала
Примечание
По умолчанию:
dt=datetime.now()
file_name="{name} (%Y.%m.%d %H-%M-%S).jpg"
, где{name}
- имя канала
Параметры: - channel_full_guid (
str
) – Полный guid анала. Например:"CFsuNBzt_pV4ggECb"
- dt (
datetime.datetime
, optional) –datetime.datetime
для скриншота. По умолчаниюNone
- file_name (
str
, optional) – Имя файла с расширением. По умолчаниюNone
- file_path (
str
, optional) – Путь для сохранения скриншота. По умолчаниюNone
Результат: Полный путь до скриншота
Тип результата: Raises: ValueError
– Если в guid канала отсутствует guid сервераTypeError
– Еслиisinstance(dt, (datetime, date)) is False
Examples
>>> ss = ShotSaver() >>> ss.shot("e80kgBLh_pV4ggECb") '/home/trassir/shots/AC-D2141IR3 Склад (2019.04.03 15-58-26).jpg'
-
async_shot
(channel_full_guid, dt=None, file_name=None, file_path=None, callback=None)[исходный код]¶ Вызывает
callback
после сохнанения скриншота- Метод работает в отдельном потоке
- Вызывает функцию
ShotSaver.shot()
- Ждет выполнения функции
BaseUtils.check_file()
tries=10
- Вызвает
callback
функцию
Параметры: - channel_full_guid (
str
) – Полный guid канала. Например:"CFsuNBzt_pV4ggECb"
- dt (
datetime.datetime
, optional) –datetime.datetime
для скриншота. По умолчаниюNone
- file_name (
str
, optional) – Имя файла с расширением. По умолчаниюNone
- file_path (
str
, optional) – Путь для сохранения скриншота. По умолчаниюNone
- callback (
function
, optional) – Функциюя, которая вызывается после сохранения скриншота. В качестве аргументов должна принимать success, shot_path. По умолчаниюNone
Результат: Thread object
Тип результата: Examples
>>> # noinspection PyUnresolvedReferences >>> def callback(success, shot_path): ... # Пример callback функции ... # Args: ... # success (bool): True если скриншот успешно сохранен, иначе False ... # shot_path (str): Полный путь до скриншота ... if success: ... host.message("Скриншот успешно сохранен<br>%s" % shot_path) ... else: ... host.error("Ошибка сохранения скриншота <br>%s" % shot_path) >>> >>> ss = ShotSaver() >>> ss.async_shot("e80kgBLh_pV4ggECb", callback=callback)
-
pool_shot
(channel_full_guid, dt=None, file_name=None, file_path=None, callback=None)[исходный код]¶ Сохраняет скриншоты в пуле.
Одновременно в работе не более
ShotSaver.pool_size
задач.Предупреждение
Данный метод создает
ShotSaver.pool_size
доп. потоков. Потоки удаляются при отключении скрипта.Параметры: - channel_full_guid (
str
) – Полный guid канала. Например:"CFsuNBzt_pV4ggECb"
- dt (
datetime.datetime
, optional) –datetime.datetime
для скриншота. По умолчаниюNone
- file_name (
str
, optional) – Имя файла с расширением. По умолчаниюNone
- file_path (
str
, optional) – Путь для сохранения скриншота. По умолчаниюNone
- callback (
function
, optional) – Функциюя, которая вызывается после сохранения скриншота. В качестве аргументов должна принимать success, shot_path. По умолчаниюNone
Examples
>>> ss = ShotSaver() >>> ss.pool_size = 2 >>> >>> ss.pool_shot("e80kgBLh_pV4ggECb") >>> ss.pool_shot("e80kgBLh_pV4ggECb") >>> ss.pool_shot("e80kgBLh_pV4ggECb") >>> ss.pool_shot("e80kgBLh_pV4ggECb") >>> >>> ss.pool_queue_size 4
- channel_full_guid (
- shot_awaiting_time (