GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

dschep

ntfy – 🖥️ 📱 🔔 オンデマンドで通知を送信し、コマンドが終了したときに通知を送信するユーティリティ

投稿日:

🖥️ 📱 🔔 オンデマンドで通知を送信し、コマンドが終了したときに通知を送信するユーティリティ。 http://ntfy.rtfd.io

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)"' >> ~/.bashrc

インストール

クイックスタートのインストール方法は、推奨されるインストール方法です。 これはvirtualenvにインストールすることができますが、Linuxの通知では、virtualenvのOSS通知とOS Xの通知がまったく動作しません。

シェルの統合

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オプションで設定--foreground-tooます。

対話型プログラムの実行時に不要な通知を避けるため、 AUTO_NTFY_DONE_IGNOREリストされているプログラムは通知を生成しません。 例えば:

export AUTO_NTFY_DONE_IGNORE="vim screen meld"

エクストラ

ntfyは余分な依存関係が必要ないくつかの機能があります。
  • ntfy done -p $PIDpip install ntfy[pid]としてpip install ntfy[pid]必要がありpip install ntfy[pid]
  • emjoiをサポートするには、 pip install ntfy[emoji]
  • XMPPをサポートするには、 pip install ntfy[xmpp]
  • テレグラムのサポートにはpip install ntfy[telegram]
  • Instapushのサポートには、 pip install ntfy[instapush]
  • スラックサポートには、 pip install ntfy[slack]
  • Rocket.Chatのサポートでは、 pip install ntfy[rocketchat]

複数のエキストラをインストールするには、コンマで区切ります(例: pip install ntfy[pid,emjoi]

ntfy設定

ntfyは、 ~/.ntfy.yml格納されたYAMLファイル、または標準的なプラットフォーム固有の場所に設定されています:

  • Linux – ~/.config/ntfy/ntfy.yml
  • ~/Library/Application Support/ntfy/ntfy.yml
  • Windows – C:\Users\<User>\AppData\Local\dschep\ntfy.yml

バックエンド

バックエンドキーは、デフォルトで使用するバックエンドを指定します。 各バックエンドは独自の設定を持ち、独自の名前のキーに格納されています。 例えば:

---
backends:
    - pushover
pushover:
    user_key: hunter2
pushbullet:
    access_token: hunter2
simplepush:
    key: hunter2
slack:
    token: slacktoken
    recipient: "#slackchannel"
xmpp:
     jid: "user@gmail.com"
     password: "xxxx"
     mtype: "chat"
     recipient: "me@jit.si"

同じバックエンド・タイプに複数の構成が必要な場合は、任意の名前を指定してバックエンド・キーを指定してバックエンドを指定できます。 例えば:

---
pushover:
    user_key: hunter2
cellphone:
    backend: pushover
    user_key: hunter2

利用可能なバックエンドとオプションについては、以下のバックエンドを参照してください。 v2.6.0からntfyサードパーティのバックエンドもサポートしています

プッシュオーバーpushover

必要なパラメータ:
  • user_key
オプションのパラメータ:
  • sound
  • priority
  • expire
  • retry
  • callback
  • api_token – 独自のアプリケーショントークンを使用する
  • devicedeviceターゲットにする。省略された場合、すべてのデバイスに通知が送信される
  • url
  • url_title
  • html

プッシュプルpushbullet

必要なパラメータ:
  • access_token – あなたのPushbulletアクセストークンは、 https: //www.pushbullet.com/#settings/accountで作成されます。
オプションのパラメータ:
  • device_idendevice_idenされた場合、すべてのデバイスに通知が送信されるデバイス識別子
  • email – 指定された電子メールでプルブレムユーザーに通知を送信するか、プウレットユーザーでない場合に電子メールを送信する

Simplepushsimplepush

必要なパラメータ:
オプションのパラメータ:
  • event – 着信通知の着信音と振動のパターンを設定します(simplepushアプリで定義できます)

XMPP – xmpp

パラメータが必要です:
  • jid
  • password
  • recipient
オプションのパラメータ
  • hostname (jidからではない場合)
  • port
  • path_to_certs
  • mtype (Googleハングアウトでは「チャット」が必要)

extrasが必要ですpip install ntfy[xmpp]ようにインストールしてpip install ntfy[xmpp]

サーバーによって提供されるSSL証明書を確認するには:path_to_certs = “path / to / ca /​​ cert”

dnspythonライブラリをインストールしていない場合は、jidと一致しない場合はサーバのホスト名を指定する必要があります。

たとえば、Googleトークを使用するには、以下を使用する必要があります:hostname = ‘talk.google.com’

5222以外の場合はポートを指定してください。注:指定されたホスト名なしでは無視されます。

電報telegram

次のようにextrasが必要です: pip install ntfy[telegram]

ntfyntfy[telegram]としてインストールする必要があります。 このバックエンドは、初めて使用するときにntfy -b telegram send "Telegram configured for ntfy"

プッシュジェットpushjet

必要なパラメータ:
オプションのパラメータ:
  • endpoint – カスタムPushjet APIエンドポイント
    (デフォルトはhttps://api.pushjet.io
  • level – 1(低)から5(高)までの重要度レベル。
  • link

Notificonotifico

必要なパラメータ:
  • webhookhttps://n.tkte.ch/で作成されたwebhookリンク
    (Webhookの作成時にPlain Textサービスを選択する)

スラックSlack

次のようにextrasが必要です: pip install ntfy[slack]

必要なパラメータ:
  • token – Slackサービスの秘密トークン。https: //api.slack.com/web#authenticationで作成されます。
  • recipient – 通知を送信するスラックチャネルまたはユーザ。 #記号を使用すると、メッセージはスラックチャンネルに送信され、 @記号を使用すると、メッセージはスラックユーザーに送信されます。

Instapushinsta

このpip install ntfy[instapush]ようにインストールしてpip install ntfy[instapush]

Instapushは通知のタイトルをサポートしていません。 これは、テンプレート駆動の通知を送信するため、まずダッシュボードにイベントを設定する必要があります。 バックエンドはinstapush pythonラッパーと同名であるためinstaと呼ばれます

必要なパラメータ:
  • appid – アプリケーションID
  • secret – アプリケーションの秘密
  • event_name – 使用するinstapushイベント
  • trackers – 使用するtrackersの配列

トラッカーに関する注意:トラッカーは、イベントのプレースホルダー(通知テンプレートの一種)です。 あなたのイベントで複数のトラッカーを定義した場合、より多くのメッセージを提供する必要があります。 現時点では、これを行う唯一の方法は、各メッセージをコロン(:)文字で区切ることです。 セパレータ文字をエスケープすることもできます:例:

ntfy -b insta send "message1:message2"
ntfy -b insta send "message1:message2\:with\:colons"

謀反prowl

オプションのパラメータ:
  • api_key
  • provider_key
  • priority
  • url

Linuxデスクトップ通知linux

dbus経由で動作し、Gnome、KDE、XFCE、libnotifyなどのほとんどのDEで動作します。

次のような依存関係をインストールする必要があります。

$ sudo apt-get install libdbus-glib-1-dev libdbus-1-dev
$ pip install --user dbus-python

emojisをサポートするフォントをいくつかインストールする必要があります(Debianフォント-signaまたはGentoo media-fonts / symbolaにあります)。

オプションのパラメータ:
  • urgency – 緊急度レベル(低、正常、重大)を指定します。
  • transient – 履歴をスキップします(exp:Gnomeメッセージトレイ)(true、false)。
  • soundfile – 通知サウンドファイルを指定します(例:/usr/share/sounds/notif.wav)。

Windowsデスクトップ通知 – win32

pywin32使用しpywin32

Mac OS Xの通知センター – darwin

ntfyをグローバルにインストールする必要がありntfy (virtualenvではなく)。

システムログ – システムログ

syslogコアのPythonモジュールを使用します。これはWindowsプラットフォームでは使用できません。

オプションのパラメータ:
  • prio – Syslogプライオリティレベル。 デフォルトはALERTです。 可能な値は次のとおりです。

    • EMERG
    • アラート
    • CRIT
    • ERR
    • 警告
    • 通知
    • 情報
    • デバッグ
  • facility – Syslogファシリティ。 デフォルトはLOCAL5です。 可能な値は次のとおりです。

    • カーン
    • ユーザー
    • 郵便物
    • デーモン
    • AUTH
    • LPR
    • ニュース
    • UUCP
    • CRON
    • SYSLOG
    • LOCAL0
    • LOCAL1
    • LOCAL2
    • LOCAL3
    • LOCAL4
    • LOCAL5
    • LOCAL6
    • LOCAL7
  • fmt – システム・ロガーに送信されるメッセージの形式。 タイトルとメッセージは、次のプレースホルダを使用して指定します。

    • {title}
    • {message}

    デフォルトは[{title}] {message}です。

Termux:APItermux

アプリをPlayストアからインストールする必要があり、CLIユーティリティはapt install termux-apiます。

プッシュロットpushalot

必要なパラメータ:
  • auth_token – プライベートPushalot認証トークン。https: //pushalot.com/manager/authorizationsにあります
オプションのパラメータ:
  • source – 通知のソース
  • ttl – メッセージの有効期限(分)(有効期間)
  • url – 通知に含めるURL
  • url_title – 表示可能なURLのタイトル(URLが指定されていない場合は無視されます)
  • image – 通知に含まれる画像のURL
  • important – 通知を重要なものとしてマークする
  • silentマークの通知をサイレントとして

Rocket.Chatrocketchat

extrasが必要です。このようにpip install ntfy[rocketchat]pip install ntfy[rocketchat]

必要なパラメータ:
  • url – Rocket.ChatインスタンスのURL
  • username – ログインユーザー名
  • password – ログインパスワード
  • room – 投稿するルーム/チャンネル名

サードパーティのバックエンド

独自のバックエンドを使用または実装するには、モジュールのフルパスをバックエンドとして指定します。 モジュールには、次のシグネチャで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 Title

バックエンドToDo

テスト

python setup.py test

貢献者







-dschep
-, , , , , , ,

執筆者:

dschep

ntfy – 🖥️ 📱 🔔 オンデマンドで通知を送信し、コマンドが終了したときに通知を送信するユーティリティ

投稿日:

(さらに…)







-dschep
-, , , , , , ,

執筆者: