ntfy ntfy приносит уведомление вашей оболочке. Он может автоматически предоставлять уведомления на рабочем столе, когда заканчиваются долгие команды, или он может отправлять push -уведомления на ваш телефон, когда конкретная команда завершается. Смущенный? Это видео демонстрирует некоторые из этой функции:
$ sudo pip install ntfy
$ ntfy send test
# send a notification when the command `sleep 10` finishes
# this sends the message '"sleep 10" succeeded in 0:10 minutes'
$ ntfy done sleep 10
$ ntfy -b pushover -o user_key t0k3n send ' Pushover test! '
$ ntfy -t ' ntfy ' send " Here's a custom notification title! "
$ echo -e ' backends: ["pushover"]npushover: {"user_key": "t0k3n"} ' > ~ /.ntfy.yml
$ ntfy send " Pushover via config file! "
$ ntfy done --pid 6379 # pid extra
$ ntfy send " :tada: ntfy supports emoji! :100: " # emoji extra
# Enable shell integration
$ echo ' eval "$(ntfy shell-integration)" ' >> ~ /.bashrc Техника установки в QuickStart - это предлагаемый метод установки. Он может быть установлен в VirtualEnv, но с некоторыми предостережениями: уведомления Linux требуют --system-site-packages для уведомлений VirtualENV и OS X вообще не работают.
? Примечание. Уведомления Linux для рабочего стола требуют привязки Python DBUS. Смотрите здесь для получения дополнительной информации.
ntfy обладает поддержкой автоматической отправки уведомлений, когда долгие команды заканчиваются в Bash и ZSH. В Bash он эмулирует функциональность ZSH PREEXEC и PRECMD с rcaloras/bash-preexec. Чтобы позволить ему добавить следующее к вашему .bashrc или .zshrc :
eval " $( ntfy shell-integration ) " По умолчанию он отправит уведомления только для команд, которые длится более 10 секунд, и если терминал будет сфокусирован. Терминальная фокус работает на x11 (linux) и с Terminal.App и iTerm2 на macOS. Оба параметра могут быть настроены через опции --longer-than и --foreground-too .
Чтобы избежать ненужных уведомлений при запуске интерактивных программ, программы, перечисленные в AUTO_NTFY_DONE_IGNORE , не генерируют уведомления. Например:
export AUTO_NTFY_DONE_IGNORE= " vim screen meld "ntfy есть несколько функций, которые требуют дополнительных зависимостей.ntfy done -p $PID требует установки в качестве pip install ntfy[pid]pip install ntfy[emoji]pip install ntfy[xmpp]pip install ntfy[telegram]pip install ntfy[instapush]pip install ntfy[slack]pip install ntfy[rocketchat] Чтобы установить несколько дополнительных дополнений, отделяйте с запятыми: например, pip install ntfy[pid,emoji] .
ntfy ntfy настроен с файлом YAML, хранящимся по адресу ~/.ntfy.yml или в стандартных местах платформы:
~/.config/ntfy/ntfy.yml~/Library/Application Support/ntfy/ntfy.ymlC:Users<User>AppDataLocaldschepntfy.ymlКлюч Backends указывает, какие бэкэнды использовать по умолчанию. Каждый бэкэнд имеет свою собственную конфигурацию, хранящуюся в ключе своего собственного имени. Например:
---
backends :
- pushover
pushover :
user_key : hunter2
pushbullet :
access_token : hunter2
simplepush :
key : hunter2
slack :
token : slacktoken
recipient : " #slackchannel "
xmpp :
jid : " [email protected] "
password : " xxxx "
mtype : " chat "
recipient : " [email protected] "Если вам нужны конфигурации Mulitple для того же типа бэкэнда, вы можете указать любое имя, а затем указать бэкэнд с ключом Backend. Например:
---
pushover :
user_key : hunter2
cellphone :
backend : pushover
user_key : hunter2 Смотрите Backends ниже для доступных бэкэндов и опций. По состоянию на v2.6.0 ntfy также поддерживает сторонние бэкэнды
pushoveruser_keysoundpriorityexpireretrycallbackapi_token - Используйте свой собственный токен приложенияdevice - Нацеливаться на устройство, если его опущены, уведомление отправляется на все устройстваurlurl_titlehtmlpushbulletaccess_token - ваш токен доступа к Pushbullet, созданный по адресу https://www.pushbullet.com/#settings/accountdevice_iden - идентификатор устройства, если указано, уведомление отправляется на все устройстваemail - отправьте уведомление пользователю PushBullet с указанным электронным письмом или отправьте электронное письмо, если они не являются пользователем Pushulletsimplepushkey - ваш ключ SimplePush, созданный путем установки приложения Android (регистрация не требуется) по адресу https://simplepush.ioevent - устанавливает рингтон и шаблон вибрации для входящих уведомлений (можно определить в приложении SimplePush)xmppjidpasswordrecipienthostname (если не от Джид)portpath_to_certsmtype Требуются дополнения, установите как следующее: pip install ntfy[xmpp] .
Чтобы проверить сертификаты SSL, предлагаемые сервером: path_to_certs = "path/to/ca/cert"
Без установленной библиотеки Dnspython вам нужно будет указать имя хоста сервера, если он не соответствует JID.
Укажите порт, если кроме 5222. Примечание: игнорируется без указанного имени хоста
Примечание: Google Hangouts не поддерживает XMPP с 2017 года
telegram Требуются дополнения, установите так: pip install ntfy[telegram] .
Требуется, чтобы ntfy был установлен как ntfy[telegram] . Этот бэкэнд настроен в первый раз, когда вы попытаетесь его использовать: ntfy -b telegram send "Telegram configured for ntfy" .
pushjetsecret -секретный токен Service Service, созданный с http://docs.pushjet.io/docs/creating-a-new-serviceendpoint - пользовательская конечная точка Pushjet APIlevel - уровень важности от 1 (низкий) до 5 (высокий)linknotificowebhook - ссылка WebHook, созданная по адресу https://n.tkte.ch/Plain Text службу при создании веб -крюка)slack Требуются дополнения, установите как следующее: pip install ntfy[slack] .
token -Slack Service Secret Token, либо устаревший токен пользователя, созданный по адресу https://api.slack.com/custom-integrations/legacy-tokens, либо токен, полученный путем создания приложения по адресу https://api.slack.com/apps?new_app=1 с chat:write:bot и соединение с рабочим пространством.recipient - канал Slack или пользователь для отправки уведомлений. Если вы используете символ # , сообщение отправляется на слабый канал, и если вы используете символ @ , сообщение отправляет пользователю Slack.slack_webhookurl - URL входящего веб -крючкаuser - канал Slack или пользователь для отправки уведомлений наinsta Требуются дополнения, установите, как эта pip install ntfy[instapush] .
Instapush не поддерживает название уведомления. Он отправляет уведомления, управляемые шаблонами, поэтому вам нужно сначала настроить события на приборной панели. Бэкэнд называется Insta из -за омонимии с оберткой Python Instapush
appid - идентификатор приложенияsecret - секрет заявкиevent_name - событие Instapush, которое будет использованоtrackers - массив традиторов для использованияПримечание на трекерах: трекеры являются заполнителями для событий (своего рода шаблон уведомлений). Если вы определили более одного трекера в своем мероприятии, вам придется предоставить больше сообщений. На данный момент единственный способ сделать это - отделить каждое сообщение с толстой кишкой (:) персонаж. Вы также можете избежать персонажа сепаратора: пример:
ntfy -b insta send " message1:message2 "
ntfy -b insta send " message1:message2:with:colons "prowlapi_keyprovider_keypriorityurllinuxРаботает через DBU, работает с большинством DES, таких как GNOME, KDE, XFCE и Libnotify.
Следующие зависимости должны быть установлены.
$ sudo apt install python-dbus # on ubuntu/debianВам нужно будет установить шрифт, который поддерживает смайлики (в Debian Fonts-Symbolo или Gentoo Media-Fonts/Symbola).
icon - Указывает путь к значке уведомления, пустой строку без значка.urgency - указывает уровень срочности (низкий, нормальный, критический).transient - пропустите историю (Exp: лоток для сообщений Gnome) (TRUE, FALSE).soundfile - указывает звуковой файл уведомления (EG /USR/Share/sounds/notif.wav).timeout - определяет уровень истечения срока действия уведомления (-1 - Системная дефолта, 0 - никогда не истекает).win32 Использует pywin32 .
darwin Требуется, чтобы ntfy был установлен во всем мире (не в виртуальном).
systemlog Использует модуль Python Core syslog , который недоступен на платформах Windows.
prio - уровень приоритета системного журнала. По умолчанию ALERT . Возможные значения:
facility - системное журнал. По умолчанию LOCAL5 . Возможные значения:
fmt - формат сообщения, которое будет отправлено в системный регистратор. Название и сообщение указаны с использованием следующих заполнителей:
{title}{message} По умолчанию [{title}] {message} .
termux Требуется, чтобы приложение было установлено из магазина Play Store, а утилита CLI будет установлена с помощью apt install termux-api .
pushalotauth_token - ваш личный токен Pushalot auth, найденный здесь https://pushalot.com/manager/authorizationssource - источник уведомленияttl - Сообщение истекает время за считанные минуты (время для жизни)url - URL включить в уведомленияurl_title - Видимый заголовок URL (игнорируется, если не указан URL -адрес)image - URL изображения, включенное в уведомленияimportant - Уведомления о отметках как важныеsilentrocketchat Требуются дополнения, установите как следующее: pip install ntfy[rocketchat] .
url - URL вашего экземпляра Rocket.chatusername - имя пользователя входа в системуpassword - пароль входа в системуroom - название комнаты/канала, чтобы отправиться вmatrix Требуются дополнения, установите как следующее: pip install ntfy[matrix] .
url - URL вашего экземпляра HomeServerroomId - место для публикацииuserId - login useridидpassword - пароль входа в системуtoken - токен доступа Вы должны указать token , либо userId и password .
ntfy_webpush Поддержка WebPush обеспечивается внешним модулем NTFY, установите как следующее: pip install ntfy ntfy-webpush .
subscription_info - объект pushsubscriptionprivate_key - путь к личному файлу ключа или что -либо еще, что работает с Pywebpush.Для получения дополнительной информации см. Ntfy-webpush <https://github.com/dschep/ntfy-webpush> `_ _
Чтобы использовать или реализовать свои собственные бэкэнды, укажите полный путь модуля в качестве бэкэнда. Модуль должен содержать модуль с функцией, вызванной notify со следующей подписью:
def notify ( title , message , ** kwargs ):
"""
kwargs contains retcode if using ntfy done or ntfy shell-integration
and all options in your backend's section of the config
"""
passНазвание настраивается с ключом заголовка в конфигурации. Пример:
---
title : Customized Titlepython setup.py test