ntfyについてntfyシェルに通知をもたらします。長い実行コマンドが終了したときにデスクトップ通知を自動的に提供するか、特定のコマンドが終了したときにプッシュ通知を携帯電話に送信できます。混乱した?このビデオは、この機能の一部を示しています。
$ 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)" ' >> ~ /.bashrcQuickStartのインストール手法は、提案されたインストール方法です。 VirtualEnvにインストールできますが、いくつかの警告があります。Linux通知が必要です - VirtualenvおよびOS X通知の--system-site-packagesまったく機能しません。
?注: Linuxデスクトップ通知には、Python DBUSバインディングが必要です。詳細については、こちらをご覧ください。
ntfy 、BASHとZSHで長期にわたるコマンドが終了するときに通知を自動的に送信することをサポートしています。 Bashでは、ZshのPreexecおよびPrecmd機能をRcaloras/Bash-Preexecでエミュレートします。それがあなたの.bashrcまたは.zshrcに以下を追加することを有効にするために:
eval " $( ntfy shell-integration ) "デフォルトでは、10秒以上続くコマンドの通知のみを送信します。ターミナルフォーカスは、X11(Linux)、およびMacOSの端子.AppおよびITERM2で動作します。両方のオプションは--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 ~/.ntfy.ymlまたは標準のプラットフォーム固有の場所に保存されているyamlファイルで構成されています。
~/.config/ntfy/ntfy.yml~/Library/Application Support/ntfy/ntfy.ymlC:Users<User>AppDataLocaldschepntfy.ymlバックエンドキーは、デフォルトで使用するバックエンドを指定します。各バックエンドには、独自の名前のキーに保存されている独自の構成があります。例えば:
---
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構成が必要な場合は、任意の名前を指定してから、バックエンドキーを使用してバックエンドを指定できます。例えば:
---
pushover :
user_key : hunter2
cellphone :
backend : pushover
user_key : hunter2利用可能なバックエンドとオプションについては、以下のバックエンドを参照してください。 V2.6.0の時点で、 ntfyサードパーティのバックエンドもサポートしています
pushoveruser_keysoundpriorityexpireretrycallbackapi_token独自のアプリケーショントークンを使用しますdevice - ターゲットデバイス、省略された場合、通知はすべてのデバイスに送信されますurlurl_titlehtmlpushbulletaccess_token -https://www.pushbullet.com/#settings/accountで作成されたPushbullet Access Tokendevice_iden -ofitedのデバイス識別子、すべてのデバイスに通知が送信されますemail - 指定された電子メールでPushBulletユーザーに通知を送信するか、Pushulletユーザーでない場合はメールを送信しますsimplepushkey - https://simplepush.ioにAndroidアプリ(登録は不要)をインストールすることによって作成されたSimplePushキーevent - 着信通知の着信音と振動パターンを設定します(SimplePushアプリで定義できます)xmppjidpasswordrecipienthostname (JIDからではない場合)portpath_to_certsmtypeエクストラが必要です。このようなインストール: pip install ntfy[xmpp] 。
サーバーが提供するSSL証明書を確認するには:path_to_certs = "path/to/ca/cert"
dnspythonライブラリがインストールされていないと、JIDと一致しない場合は、サーバーのホスト名を指定する必要があります。
5222以外の場合はポートを指定します。注:指定されたホスト名なしで無視されます
注:Googleハングアウトは2017年以来XMPPをサポートしていません
telegramエクストラが必要です。このようなインストール: pip install ntfy[telegram] 。
ntfy ntfy[telegram]としてインストールする必要があります。このバックエンドは、初めて使用しようとするときに構成されます。NTFY ntfy -b telegram send "Telegram configured for ntfy" 。
pushjetsecret - http://docs.pushjet.io/docs/creating-a-new-serviceで作成されたプッシュジェットサービスシークレットトークンendpoint - カスタムプッシュジェットAPIエンドポイントlevel - 1(低)から5(高)までの重要性レベルlinknotificowebhook -https://n.tkte.ch/で作成されたWebhookリンクPlain Textサービスを選択してください)slackエクストラが必要です。このようなインストール: pip install ntfy[slack] 。
token - https://api.slack.com/custom-integrations/legacy-tokensで作成されたレガシーユーザートークンのいずれかのSlack Service Secret Tokenまたはhttps://api.slack.com/apps?new_app=1でアプリを作成することで取得したトークンのchat:write:botかのトークンのいずれかです。recipient - 通知を送信するスラックチャネルまたはユーザー。 #シンボルを使用する場合、メッセージはスラックチャネルに送信され、 @シンボルを使用すると、メッセージはスラックユーザーに送信されます。slack_webhookurl着信WebhookのURLuser - 通知を送信するスラックチャネルまたはユーザーinstaエクストラが必要です。このpip install ntfy[instapush]のようにインストールします。
Instapushは通知タイトルをサポートしていません。テンプレート駆動の通知を送信するため、最初にダッシュボードでイベントをセットアップする必要があります。 Instapush Pythonラッパーのある同種のため、バックエンドはInstaと呼ばれます
appidアプリケーションIDsecret - アプリケーションの秘密event_name使用するInstapushイベントtrackers - 使用するトレーカーの配列トラッカーへの注意:トラッカーは、イベントのプレースホルダーです(一種の通知テンプレート)。イベントで複数のトラッカーを定義した場合、より多くのメッセージを提供する必要があります。現時点では、そうする唯一の方法は、各メッセージをコロン(:)文字で分離することです。セパレーターのキャラクターを逃れることもできます:例:
ntfy -b insta send " message1:message2 "
ntfy -b insta send " message1:message2:with:colons "prowlapi_keyprovider_keypriorityurllinuxDBUを介して動作し、Gnome、KDE、XFCEなどのほとんどのDESで動作します。
次の依存関係をインストールする必要があります。
$ sudo apt install python-dbus # on ubuntu/debian絵文字をサポートするフォントをインストールする必要があります(Debian Fonts-SymbolaまたはGentoo Media-Fonts/Sympola)。
icon - 通知アイコンへのパス、アイコンなしの空の文字列を指定します。urgency - 緊急レベル(低、正常、クリティカル)を指定します。transient - 履歴をスキップします(exp:gnomeメッセージトレイ)(true、false)。soundfile通知サウンドファイル(/usr/share/sounds/notif.wav)を指定します。timeout - 通知の有効期限レベルを指定します(-1-システムデフォルト、0-期限切れになりません)。win32 pywin32を使用します。
darwin ntfyグローバルにインストールする必要があります(virtualenvではなく)。
systemlog syslog Core Pythonモジュールを使用しますが、これはWindowsプラットフォームでは使用できません。
prio syslog優先度レベル。デフォルトはALERTです。考えられる値は次のとおりです。
facility - syslog施設。デフォルトはLOCAL5です。考えられる値は次のとおりです。
fmtシステムロガーに送信されるメッセージの形式。タイトルとメッセージは、次のプレースホルダーを使用して指定されています。
{title}{message}デフォルトは[{title}] {message}です。
termuxアプリをPlayストアからインストールする必要があり、CLIユーティリティはapt install termux-apiでインストールされます。
pushalotauth_tokenあなたのプライベートプッシュアロット認証トークン、ここにあるhttps://pushalot.com/manager/authorizationssource - 通知のソースttl数分で時間の期限切れ(ライブまで)url -URL通知に含めるurl_title目に見えるurlタイトル(URLが指定されていない場合は無視)image - 通知に含まれる画像のURLimportant - マーク通知は重要ですsilent - サイレントとして通知をマークしますrocketchatエクストラが必要です。このようなインストール: pip install ntfy[rocketchat] 。
url -rocket.chatインスタンスのURLusername - ログインユーザー名password - パスワードをログインしますroom - 投稿する部屋/チャンネル名matrixエクストラが必要です。このようなインストール: pip install ntfy[matrix] 。
url -HomeserverインスタンスのURLroomId投稿する部屋userId -login useridpassword - パスワードをログインしますtoken - アクセストークンtokenを指定するか、 userIdとpassword指定する必要があります。
ntfy_webpush WebPushサポートは、外部NTFYモジュールによって提供され、このようなインストール: pip install ntfy ntfy-webpush 。
subscription_infoプッシュサブスクリプションオブジェクトprivate_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タイトルは、configのタイトルキーで構成可能です。例:
---
title : Customized Titlepython setup.py test