Senders¶
PopupSender¶
-
class
PopupSender
(width=400)[исходный код]¶ Класс для показа всплывающих окон в правом нижнем углу экрана
Параметры: width ( int
, optional) – Ширина изображения, px. По умолчаниюwidth=400
Examples
>>> sender = PopupSender(300) >>> sender.text("Hello World!")
>>> sender.image(r"manual/en/cloud-devices-16.png")
-
text
(text, popup_type='message', **kwargs)[исходный код]¶ Показывает текст во всплывающем окне
Вызывает один из методов Trassir
host_ip.alert
,host_ip.message
илиhost_ip.error
с текстомПараметры: - text (
str
) – Текст сообщения - popup_type (
"message"
|"alert"
|"error"
, optional) – Тип сообщения. По умолчанию"message"
- text (
-
image
(image_path, text='', popup_type=None, **kwargs)[исходный код]¶ Показывает изображение во всплывающем окне
Параметры:
-
PopupWithBtnSender¶
-
class
PopupWithBtnSender
(width=800)[исходный код]¶ Класс для показа всплывающих окон с кнопкой Оk
Примечание
Для закрытия окна необходимо нажать кнопку Ok в течении 60 сек.После 60 сек окно закрывается автоматически.Параметры: width ( int
, optional) – Ширина изображения, px. По умолчаниюwidth=800
Examples
>>> sender = PopupWithBtnSender() >>> sender.text("Hello World!")
>>> sender.image(r"manual/en/cloud-devices-16.png")
-
text
(text, **kwargs)[исходный код]¶ Показывает текст во всплывающем окне
Вызывает метод Trassir
host_ip.question
с текстомПараметры: text ( str
) – Текст сообщения
-
image
(image_path, text='', **kwargs)[исходный код]¶ Показывает изображение во всплывающем окне
Параметры:
-
EmailSender¶
-
class
EmailSender
(account, mailing_list, subject=None, max_size=None)[исходный код]¶ Класс для отправки уведомлений, изображений и файлов на почту
Примечание
По умолчанию тема сообщений соответствует шаблону
{server_name} -> {script_name}
Совет
При отправке изображения с текстом предпочтительней использовать метод
EmailSender.image()
с необязательным аргументомtext
чемEmailSender.text()
с необазательным аргументомattachments
Параметры: - account (
str
) – E-Mail аккаунт trassir. Проверяется методомPokaYoke.check_email_account()
- mailing_list (
str
) – Список email адресов для отправки писем разделенный запятыми. Проверяется и парсится в список методомPokaYoke.parse_emails()
- subject (
str
, optional) – Общая тема для сообщений. По умолчаниюNone
- max_size (
int
, optional) – Максимальный размер вложения, байт. По умолчанию 25 * 1024 * 1024
Examples
>>> sender = EmailSender("MyAccount", "my_mail@google.com") >>> sender.text("Hello World!")
>>> sender.image(r"manual/en/cloud-devices-16.png")
>>> sender.files([r"manual/en/cloud.html", r"manual/en/cloud.png"])
-
text
(text, subject=None, attachments=None, **kwargs)[исходный код]¶ Отправка текстового сообщения
Параметры:
-
image
(image_path, text='', subject=None, **kwargs)[исходный код]¶ Отправка изображения
Параметры:
-
files
(file_paths, text='', subject=None, callback=None, **kwargs)[исходный код]¶ Отправка файлов
Примечание
Если отправляется несколько файлов они могут быть разделены на несколько сообщений, основываясь на максимальном размере вложений.
Параметры:
- account (
TelegramSender¶
-
class
TelegramSender
(telegram_ids=None)[исходный код]¶ Работа с телеграм ботом @trassirbot
Предупреждение
Cкрипт должен быть запущен на сервере Trassir.На Клиенте скрипт вызовет ошибкуServerKeyError
Параметры: telegram_ids ( str
) – Id пользователей, через запятую.Examples
>>> # Можно указать id для рассылки при инициализации >>> # класса, для всех уведомлений >>> sender = TelegramSender("123456789") >>> sender.text("Hello World!")
>>> sender.image(r"manual/en/cloud-devices-16.png")
>>> sender.files([r"manual/en/cloud.html", r"manual/en/cloud.png"])
>>> # Или можно опередовать telegram id при вызове методов >>> sender = TelegramSender() >>> sender.text("Hello World!", tg_users=[123456789])
>>> sender.image(r"manual/en/cloud-devices-16.png", tg_users=[123456789])
>>> sender.files([r"manual/en/cloud.html", r"manual/en/cloud.png"], tg_users=[123456789])
-
text
(text, tg_users=None, **kwargs)[исходный код]¶ Отправка текстового сообщения
Параметры:
-
image
(image_path, text='', tg_users=None, remove=False, **kwargs)[исходный код]¶ Отправка изображения
Параметры: - image_path (
str
| List[str
]) – Полный путь до изображения или список путей - text (
str
, optional) – Текст сообщения. По умолчанию""
- tg_users (List[
int
], optional) – Список id пользователей telegram для отправки отдельных сообщений. По умолчаниюNone
- remove (bool, optional) – Удалить файл после отправки или нет. По умолчанию
False
- image_path (
-
files
(file_paths, text='', tg_users=None, remove=False, **kwargs)[исходный код]¶ Отправка файлов
Параметры: - file_paths (
str
|list
) – Путь до файла или список файлов для отправки - text (
str
, optional) – Текст сообщения. По умолчанию""
- tg_users (List[
int
], optional) – Список id пользователей telegram для отправки отдельных сообщений. По умолчаниюNone
- remove (bool, optional) – Удалить файл после отправки или нет. По умолчанию
False
- file_paths (
-
SMSCSender¶
-
class
SMSCSender
(login, password, phones, translit=True)[исходный код]¶ Класс для отправки сообщений с помощью сервиса smsc.ru
См.также
Примечание
Номера проверяются методомPokaYoke.check_phones()
Также при первом запуске скрипт проверяет данные авторизацииПредупреждение
По умолчанию сервис smsc.ru отправляет сообщения от своего имени SMSC.RU. При этом отправка на номера Мегафон/Йота недоступна т.к. имя SMSC.RU заблокировано оператором.Мы настоятельно НЕ рекомендуем использовать стандартное имя SMSC.RU.Для отправки смс от вашего буквенного имени необходимо его создать в разделе - https://smsc.ru/senders/ и зарегистрировать для операторов в колонке Действия по кнопке Изменить (после заключения договора согласно инструкции - https://smsc.ru/contract/info/ ) а также приложить гарантийное письмо на МТС в личный кабинет http://smsc.ru/documents/ и отправить на почту inna@smsc.ruПараметры: Raises: SMSCSenderError
– При любых ошибках с отправкой сообщенияExamples
>>> sender = SMSCSender("login", "password", "79999999999") >>> sender.text("Hello World!")
-
text
(text, **kwargs)[исходный код]¶ Отправка текстового сообщения
Параметры: text ( str
) – Текст сообщения.
-
FTPSender¶
-
class
FTPSender
(host_ip, port=21, user='anonymous', passwd='', work_dir=None, callback=None, queue_maxlen=1000)[исходный код]¶ Класс для отправки файлов на ftp сервер
При инициализации проверят подключение к ftp серверу. Файлы отправляет по очереди. Максимальный размер очереди можно изменить. Во время выполнения передает текущий прогресс отправки файла в callback функцию.
Примечание
- Помимо прогресса в функцию callback может вернуться код ошибки.
- -1 Файл не существует.
- -2 Ошибка отправки на ftp, файл будет повторно отправлен.
- -3 Неизвестная ошибка.
Параметры: - host_ip (
str
) – Адрес ftp сервера. - port (
int
, optional) – Порт ftp сервера. По умолчаниюport=21
- user (
str
, optional) – Имя пользователя. По умолчанию"anonymous"
- passwd (
str
, optional) – Пароль пользователя. По умолчаниюpasswd=""
- work_dir (
str
, optional) – Директория на сервре для сохранения файлов. По умолчаниюNone
- callback (
function
, optional) – Callable function. По умолчаниюNone
- queue_maxlen (
int
, optional) – Максимальная длина очереди на отправку. По умолчаниюqueue_maxlen=1000
Examples
>>> # noinspection PyUnresolvedReferences >>> def callback(file_path, progress, error): ... # Пример callback функции, которая отображает ... # текущий прогресс в счетчике запуска скрипта ... # Args: ... # file_path (str): Путь до файла ... # progress (int): Текущий прогресс передачи файла, % ... # error (str | Exception): Ошибка при отправке файла, если есть ... host.stats()["run_count"] = progress ... if error: ... host.error(error) ... ... if progress == 100: ... host.timeout(3000, lambda: os.remove(BaseUtils.win_encode_path(file_path))) >>> >>> sender = FTPSender("172.20.0.10", 21, "trassir", "12345", work_dir="/test_dir/", callback=callback) >>> sender.files(r"D:/Shots/export_video.avi")
-
files
(file_paths, *args, **kwargs)[исходный код]¶ Отправка файлов
Примечание
Можно указать отдельный путь на ftp сервере для каждого файла. Для этого список файлов на отправку должен быть приведен к виду
[(shot_path, ftp_path), ...]
При этом так же будет учитываться глобальная папкаwork_dir
заданная при инициализации класса.Параметры: file_paths ( str
|list
) – Путь до файла или список файлов для отправки
SoundPlayer¶
-
class
SoundPlayer
(sound_file)[исходный код]¶ Класс для проигрывания выбранной мелодии.
Можно указать один из стандартных зуков или указать полный путь до своего файла.
Примечание
Список стандартных файлов
"SNES-startup.wav"
"alarm.wav"
"bell.wav"
"boxing-bell-1.wav"
"boxing-bell-3.wav"
"cardlock-open.wav"
"chime.wav"
"chip001.wav"
"chip019.wav"
"chip069.wav"
"cordless-phone-ring.wav"
"countdown.wav"
"dialtone.wav"
"ding.wav"
"horn-beep.wav"
"phone-beep.wav"
"police2.wav"
"ship-on-fog.wav"
"ships-bell.wav"
"spin-up.wav"
"tada1.wav"
"tape-slow9.wav"
Параметры: sound_file ( str
) – Имя файла с расширением-
play
()[исходный код]¶ Проигрывает выбранный файл
Examples
>>> player = SoundPlayer("alarm.wav") >>> player.play()
-