ntfy ntfy trae notificación a su caparazón. Puede proporcionar automáticamente notificaciones de escritorio cuando terminen los comandos de ejecución de larga duración o puede enviar notificaciones push a su teléfono cuando termina un comando específico. ¿Confundido? Este video demuestra parte de esta funcionalidad:
$ 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 La técnica de instalación en QuickStart es el método sugerido de instalación. Se puede instalar en un VirtualEnv, pero con algunas advertencias: las notificaciones de Linux requieren: --system-site-packages para las notificaciones VirtualEnv y OS X no funcionan en absoluto.
? Nota: Las notificaciones de escritorio de Linux requieren enlaces de Python DBUS. Vea aquí para más información.
ntfy tiene soporte para enviar automáticamente notificaciones cuando los comandos de ejecución largos terminan en Bash y ZSH. En Bash emula la funcionalidad de ZSH PREEXEC y PrECMD con Rcaloras/Bash-PreExec. Para habilitarlo, agregue lo siguiente a su .bashrc o .zshrc :
eval " $( ntfy shell-integration ) " Por defecto, solo enviará notificaciones para comandos que duren más de 10 segundos y si el terminal está enfocado. El enfoque terminal funciona en X11 (Linux) y con Terminal.App e ITERM2 en macOS. Ambas opciones se pueden configurar a través de las opciones --longer-than - --foreground-too .
Para evitar notificaciones innecesarias al ejecutar programas interactivos, los programas enumerados en AUTO_NTFY_DONE_IGNORE no generan notificaciones. Por ejemplo:
export AUTO_NTFY_DONE_IGNORE= " vim screen meld "ntfy tiene algunas características que requieren dependencias adicionales.ntfy done -p $PID requiere la instalación como 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] Para instalar múltiples extras, separado con comas: por ejemplo, pip install ntfy[pid,emoji] .
ntfy ntfy está configurado con un archivo YAML almacenado en ~/.ntfy.yml o en ubicaciones específicas de plataforma estándar:
~/.config/ntfy/ntfy.yml~/Library/Application Support/ntfy/ntfy.ymlC:Users<User>AppDataLocaldschepntfy.ymlLa tecla Backends especifica qué retrocede usar de forma predeterminada. Cada backend tiene su propia configuración, almacenada en una clave de su propio nombre. Por ejemplo:
---
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] "Si desea configuraciones de Mulitple para el mismo tipo de backend, puede especificar cualquier nombre y luego especificar el backend con una clave de backend. Por ejemplo:
---
pushover :
user_key : hunter2
cellphone :
backend : pushover
user_key : hunter2 Vea los backends a continuación para ver los backends y opciones disponibles. A partir de V2.6.0 ntfy también es compatible con los backends de terceros
pushoveruser_keysoundpriorityexpireretrycallbackapi_token : use su propio token de aplicacióndevice : apunte a un dispositivo, si se omite, la notificación se envía a todos los dispositivosurlurl_titlehtmlpushbulletaccess_token : su token de acceso de pushbullet, creado en https://www.pushbullet.com/#settings/accountdevice_iden : un identificador de dispositivo, si se omite, se envía una notificación a todos los dispositivosemail : envíe una notificación al usuario de Pushbullet con el correo electrónico especificado o envíe un correo electrónico si no son un usuario de Pushulletsimplepushkey : su tecla SimplePush, creada al instalar la aplicación Android (no se requiere registro) en https://simplepush.ioevent : establece el tono de llamada y el patrón de vibración para las notificaciones entrantes (se puede definir en la aplicación SimplePush)xmppjidpasswordrecipienthostname (si no de Jid)portpath_to_certsmtype Requiere extras, instale así: pip install ntfy[xmpp] .
Para verificar los certificados SSL ofrecidos por un servidor: PATH_TO_CERTS = "PATH/TO/CA/CERT"
Sin la biblioteca DNSPYTHON instalada, deberá especificar el nombre de host del servidor si no coincide con el JID.
Especificar puerto si no es 5222. Nota: ignorado sin nombre de host especificado
Nota: Google Hangouts no es compatible con XMPP desde 2017
telegram Requiere extras, instale así: pip install ntfy[telegram] .
Requiere que ntfy se instale como ntfy[telegram] . Este backend está configurado la primera vez que intentará usarlo: ntfy -b telegram send "Telegram configured for ntfy" .
pushjetsecret : el token secreto del servicio PushJet, creado con http://docs.pushjet.io/docs/creating-a-new-serviceendpoint - punto final de API Pushjets personalizadolevel : el nivel de importancia de 1 (bajo) a 5 (alto)linknotificowebhook : el enlace de webhook, creado en https://n.tkte.ch/Plain Text al crear el webhook)slack Requiere extras, instale así: pip install ntfy[slack] .
token : el token secreto de servicio Slack, ya sea un token de usuario heredado creado en https://api.slack.com/custom-integrations/legacy-tokens o un token obtenido creando una aplicación en https://api.slack.com/apps?new_app=1 con chat:write:bot y enlace a un espacio de trabajo.recipient : el canal Slack o el usuario para enviar notificaciones. Si usa el símbolo # el mensaje se envía a un canal Slack y si usa el símbolo @ el mensaje se envía a un usuario de Slack.slack_webhookurl : la URL del webhook entranteuser : el canal Slack o el usuario para enviar notificaciones ainsta Requiere extras, instale como este pip install ntfy[instapush] .
Instapush no admite el título de notificación. Envía notificaciones basadas en plantillas, por lo que primero debe configurar sus eventos en el tablero. El backend se llama Insta debido a la homonimia con el envoltorio de Instapush Python
appid : la ID de aplicaciónsecret : el secreto de la aplicaciónevent_name : el evento de Instapush que se utilizarátrackers : la variedad de trazadores para usarNota en los rastreadores: los rastreadores son marcadores de posición para eventos (una especie de plantilla de notificación). Si definió más de un rastreador en su evento, tendrá que proporcionar más mensajes. En este momento, la única forma de hacerlo es separar cada mensaje con un carácter de colon (:). También puede escapar del carácter del separador: Ejemplo:
ntfy -b insta send " message1:message2 "
ntfy -b insta send " message1:message2:with:colons "prowlapi_keyprovider_keypriorityurllinuxFunciona a través de DBUS, funciona con la mayoría de los des lomo, KDE, XFCE y con libnotify.
Se deben instalar las siguientes dependientes.
$ sudo apt install python-dbus # on ubuntu/debianDeberá instalar algunas fuentes que admitan emojis (en Debian Fonts-Symbola o Gentoo Media-Fonts/Symbola).
icon : especifica la ruta al icono de notificación, cadena vacía sin icono.urgency : especifica el nivel de urgencia (bajo, normal, crítico).transient : omita el historial (exp: la bandeja de mensajes gnomo) (verdadero, falso).soundfile : especifica el archivo de sonido de notificación (por ejemplo, /usr/share/sounds/notif.wav).timeout : especifica el nivel de tiempo de vencimiento de notificación (-1 - Sistema predeterminado, 0 - Nunca caduce).win32 Usa pywin32 .
darwin Requiere que ntfy se instale a nivel mundial (no en VirtualEnv).
systemlog Utiliza el módulo syslog Core Python, que no está disponible en las plataformas de Windows.
prio - Nivel de prioridad de Syslog. El valor predeterminado está ALERT . Los valores posibles son:
facility - Instalación syslog. El valor predeterminado es LOCAL5 . Los valores posibles son:
fmt - Formato del mensaje que se enviará al registrador del sistema. El título y el mensaje se especifican utilizando los siguientes marcadores de posición:
{title}{message} El valor predeterminado es [{title}] {message} .
termux Requiere que la aplicación se instale desde la tienda de Play y la utilidad CLI se instale con apt install termux-api .
pushalotauth_token : su token de autenticación privado, que se encuentra aquí https://pushalot.com/manager/authorizationssource - fuente de la notificaciónttl - Mensaje Expire el tiempo en minutos (tiempo para vivir)url : URL incluir en las notificacionesurl_title - Título de URL visible (ignorado si no se especifica URL)image - URL de imagen incluida en las notificacionesimportant - Marcas Notificaciones como importantessilent - Mark como silenciorocketchat Requiere extras, instale así: pip install ntfy[rocketchat] .
url - URL de su instancia de cohete.username - Nombre de usuario de inicio de sesiónpassword - Iniciar sesión contraseñaroom - habitación/nombre de canal para publicar enmatrix Requiere extras, instale así: pip install ntfy[matrix] .
url - URL de su instancia de HomeRerverroomId - habitación para publicar enuserId - Iniciar sesión UserDidpassword - Iniciar sesión contraseñatoken - Token de acceso Debe especificar token , o userId y password .
ntfy_webpush El soporte de WebPush es provisto por un módulo NTFY externo, instale así: pip install ntfy ntfy-webpush .
subscription_info : un objeto de inscripción a pulsaciónprivate_key : la ruta al archivo de clave privada o cualquier otra cosa que funcione con Pywebpush.Para obtener más información, consulte Ntfy-Webpush <https://github.com/dschep/ntfy-webpush> `_
Para usar o implementar sus propios backends, especifique la ruta completa del módulo como su backend. El módulo debe contener un módulo con una función llamada notify con la siguiente firma:
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
"""
passEl título es configurable con la clave de título en la configuración. Ejemplo:
---
title : Customized Titlepython setup.py test