ntfy ntfy apporte une notification à votre coquille. Il peut fournir automatiquement des notifications de bureau lorsque les commandes en cours d'exécution sont terminées ou peuvent envoyer des notifications push à votre téléphone lorsque une commande spécifique se termine. Confus? Cette vidéo démontre une partie de cette fonctionnalité:
$ 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 technique d'installation dans le startart est la méthode d'installation suggérée. Il peut être installé dans un VirtualEnv, mais avec quelques mises en garde: les notifications Linux nécessitent --system-site-packages pour les notifications VirtualEnv et OS X ne fonctionnent pas du tout.
? Remarque: les notifications de bureau Linux nécessitent des liaisons DBU Python. Voir ici pour plus d'informations.
ntfy prend la prise en charge de l'envoi automatique des notifications lorsque les commandes à longue course se terminent en bash et zsh. Dans Bash, il émule les fonctionnalités PREEXEC et PREMD de ZSH avec RCALORAS / BASH-PREEXEC. Pour l'activer, ajoutez ce qui suit à votre .bashrc ou .zshrc :
eval " $( ntfy shell-integration ) " Par défaut, il n'enverra que des notifications pour les commandes qui durent plus de 10 secondes et si le terminal est concentré. Le terminal Focus fonctionne sur X11 (Linux) et avec Terminal.App et Iter2 sur macOS. Les deux options peuvent être configurées via les options --longer-than --foreground-too .
Pour éviter les notifications inutiles lors de l'exécution de programmes interactifs, les programmes répertoriés dans AUTO_NTFY_DONE_IGNORE ne génèrent pas de notifications. Par exemple:
export AUTO_NTFY_DONE_IGNORE= " vim screen meld "ntfy a quelques fonctionnalités qui nécessitent des dépendances supplémentaires.ntfy done -p $PID nécessite une installation en tant 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] Pour installer plusieurs extras, séparez-vous avec des virgules: par exemple, pip install ntfy[pid,emoji] .
ntfy ntfy est configuré avec un fichier YAML stocké sur ~/.ntfy.yml ou dans des emplacements spécifiques à la plate-forme standard:
~/.config/ntfy/ntfy.yml~/Library/Application Support/ntfy/ntfy.ymlC:Users<User>AppDataLocaldschepntfy.ymlLa touche Backends spécifie les backends à utiliser par défaut. Chaque backend a sa propre configuration, stockée dans une clé de son propre nom. Par exemple:
---
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 vous souhaitez des configurations de Mulitple pour le même type de backend, vous pouvez spécifier n'importe quel nom, puis spécifier le backend avec une touche backend. Par exemple:
---
pushover :
user_key : hunter2
cellphone :
backend : pushover
user_key : hunter2 Voir les backends ci-dessous pour les backends et les options disponibles. Depuis la v2.6.0 ntfy prend également en charge les backends tiers
pushoveruser_keysoundpriorityexpireretrycallbackapi_token - utilisez votre propre jeton d'applicationdevice - cibler un appareil, s'il est omis, la notification est envoyée à tous les appareilsurlurl_titlehtmlpushbulletaccess_token - Votre jeton d'accès PushBullet, créé à https://www.pushbullet.com/#settings/accountdevice_iden - un identifiant de périphérique, s'il est omis, la notification est envoyée à tous les appareilsemail - Envoyez la notification à l'utilisateur de Pushbullet avec l'e-mail spécifié ou envoyez un e-mail s'il n'est pas un utilisateur de pousséesimplepushkey - Votre touche SimplePush, créée en installant l'application Android (aucune inscription requise) sur https://simplepush.ioevent - Définit la sonnerie et le modèle de vibration pour les notifications entrantes (peut être définie dans l'application SimplePush)xmppjidpasswordrecipienthostname (sinon de jid)portpath_to_certsmtype Nécessite des extras, installez-vous comme ceci: pip install ntfy[xmpp] .
Pour vérifier les certificats SSL offerts par un serveur: path_to_certs = "path / to / ca / cert"
Sans la bibliothèque DNSpython installée, vous devrez spécifier le nom d'hôte du serveur s'il ne correspond pas au jid.
Spécifiez le port si autre que 5222. Remarque: ignoré sans nom d'hôte spécifié
Remarque: Google Hangouts ne prend pas en charge XMPP depuis 2017
telegram Nécessite des extras, installez-vous comme ceci: pip install ntfy[telegram] .
Nécessite que ntfy soit installé sous le nom ntfy[telegram] . Ce backend est configuré la première fois que vous essaierez de l'utiliser: ntfy -b telegram send "Telegram configured for ntfy" .
pushjetsecret - The Pushjet Service Secret Token, créé avec http://docs.pushjet.io/docs/creating-a-new-serviceendpoint - API Pushjet personnalisé Point de terminaisonlevel - Le niveau d'importance de 1 (bas) à 5 (haut)linknotificowebhook - le lien webhook, créé sur https://n.tkte.ch/Plain Text lors de la création du webhook)slack Nécessite des extras, installez-vous comme ceci: pip install ntfy[slack] .
token - The Slack Service Secret Token, soit un token utilisateur hérité créé sur https://api.slack.com/custom-integrations/legacy-tokens ou un jeton obtenu en créant une application sur https://api.slack.com/apps?new_app=1 avec chat:write:bot Scope et libelking it à un espace de travail.recipient - Le canal ou l'utilisateur Slack pour envoyer des notifications. Si vous utilisez le symbole # le message est envoyé à un canal Slack et si vous utilisez le symbole @ le message est envoyé à un utilisateur Slack.slack_webhookurl - L'URL du WEBHOOK entrantuser - le canal Slack ou l'utilisateur pour envoyer des notifications àinsta Nécessite des extras, installer comme ce pip install ntfy[instapush] .
Instapush ne prend pas en charge le titre de notification. Il envoie d'abord des notifications axées sur les modèles, vous devez donc d'abord configurer vos événements sur le tableau de bord. Le backend s'appelle Insta en raison de l'homonymie avec l'emballage Instapush Python
appid - l'ID de l'applicationsecret - Le secret de la demandeevent_name - l'événement Instapush à utilisertrackers - La gamme de trous lesRemarque sur les trackers: les trackers sont des espaces réservés pour les événements (une sorte de modèle de notification). Si vous avez défini plus d'un tracker de votre événement, vous devrez fournir plus de messages. Pour le moment, la seule façon de le faire est de séparer chaque message avec un côlon (:) le caractère. Vous pouvez également échapper au caractère du séparateur: Exemple:
ntfy -b insta send " message1:message2 "
ntfy -b insta send " message1:message2:with:colons "prowlapi_keyprovider_keypriorityurllinuxFonctionne via DBUS, fonctionne avec la plupart des DES comme Gnome, KDE, XFCE et avec libnotify.
Les dépendances suivantes doivent être installées.
$ sudo apt install python-dbus # on ubuntu/debianVous devrez installer une police qui prend en charge les emojis (dans Debian Fonts-Symbola ou Gentoo Media-Fontts / Symbola).
icon - Spécifie le chemin d'accès à l'icône de notification, chaîne vide pour aucune icône.urgency - spécifie le niveau d'urgence (faible, normal, critique).transient - sautez l'historique (exp: le plateau de message GNOME) (vrai, faux).soundfile - Spécifie le fichier son de notification (par exemple /usr/share/sounds/notif.wav).timeout - Spécifie le niveau de temps d'expiration de la notification (-1 - par défaut du système, 0 - Jamais expiré).win32 Utilise pywin32 .
darwin Nécessite que ntfy soit installé globalement (pas dans un virtualenv).
systemlog Utilise le module syslog Core Python, qui n'est pas disponible sur les plates-formes Windows.
prio - Niveau de priorité syslog. La valeur par défaut est ALERT . Les valeurs possibles sont:
facility - Syslog Facility. La valeur par défaut est LOCAL5 . Les valeurs possibles sont:
fmt - Format du message à envoyer à l'enregistreur système. Le titre et le message sont spécifiés à l'aide des espaces réservés suivants:
{title}{message} La valeur par défaut est [{title}] {message} .
termux Exige que l'application soit installée à partir du Play Store et l'installation de l'utilitaire CLI avec apt install termux-api .
pushalotauth_token - Votre jeton privé Pushalot Auth, trouvé ici https://pushalot.com/manager/authorizationssource - Source de la notificationttl - Le message expire le temps en quelques minutes (temps pour vivre)url - URL à inclure dans les notificationsurl_title - Titre URL visible (ignoré si aucune URL spécifiée)image - URL de l'image incluse dans les notificationsimportant - Marque les notifications comme importantessilent - Marque les notifications comme silencieusesrocketchat Nécessite des extras, installez-vous comme ceci: pip install ntfy[rocketchat] .
url - URL de votre fusée.username - Nom d'utilisateur de connexionpassword - Mot de passe de connexionroom - Nom de chambre / canal pour publiermatrix Nécessite des extras, installez-vous comme ceci: pip install ntfy[matrix] .
url - URL de votre instance HomeServerroomId - place pour publieruserId - Connexion UserIdpassword - Mot de passe de connexiontoken - jeton d'accès Vous devez spécifier token , soit userId et password .
ntfy_webpush La prise en charge de WebPush est fournie par un module NTFY externe, installez-vous comme ceci: pip install ntfy ntfy-webpush .
subscription_info - un objet PushSubscriptionprivate_key - Le chemin vers le fichier de clé privée ou tout ce qui fonctionne avec pywebpush.Pour plus d'informations, voir ntfy-webpush <https://github.com/dschep/ntfy-webpush> `_
Pour utiliser ou implémenter vos propres backends, spécifiez le chemin complet du module comme backend. Le module doit contenir un module avec une fonction appelée notify avec la signature suivante:
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
"""
passLe titre est configurable avec la touche de titre dans la configuration. Exemple:
---
title : Customized Titlepython setup.py test