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通知需要 - 虛擬的--system-site-packages和OS X通知根本不起作用。
?注意: Linux桌面通知需要Python DBU綁定。請參閱此處以獲取更多信息。
ntfy支持在Bash和ZSH中長期運行命令完成時自動發送通知。在Bash中,它使用RCALORAS/BASH-PREEXEC模擬ZSH的preexec和PRECMD功能。為了使其添加以下內容到您的.bashrc或.zshrc :
eval " $( ntfy shell-integration ) "默認情況下,它將僅發送持續時間超過10秒的命令的通知,以及終端是否集中。終端焦點在X11(Linux)和MacOS上的terminal.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您的PushBullet訪問令牌,在https://www.pushbullet.com/#settings/account上創建device_iden設備標識符(如果省略),將通知發送到所有設備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 Hangouts自2017年以來不支持XMPP
telegram需要額外的安裝: pip install ntfy[telegram] 。
要求將ntfy安裝為ntfy[telegram] 。首次嘗試使用它時,對此後端進行了配置: ntfy -b telegram send "Telegram configured for ntfy" 。
pushjetsecret - 用http://docs.pushjet.io/docs/creating-a-a-new-service創建的Pushjet服務秘密令牌endpoint - 自定義的推桿API端點level - 重要性水平從1(低)到5(高)linknotificowebhook -Webhook鏈接,在https://n.tkte.ch/上創建Plain Text服務)slack需要額外的安裝: pip install ntfy[slack] 。
token - The Slack service secret token, either a legacy user token created at https://api.slack.com/custom-integrations/legacy-tokens or a token obtained by creating an app at https://api.slack.com/apps?new_app=1 with chat:write:bot scope and linking it to a workspace.recipient - 將通知發送通知的Slack頻道或用戶。如果使用#符號,則將消息發送到Slack頻道,如果使用@符號,則消息將發送給Slack用戶。slack_webhookurl傳入Webhook的URLuser - 將通知發送到的Slack Channel或用戶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_keypriorityurllinux通過DBUS工作,與Gnome,KDE,XFCE以及Libnotify一樣。
應安裝以下依賴項。
$ sudo apt install python-dbus # on ubuntu/debian您將需要安裝一些支持表情符號的字體(在Debian Fonts-Symbola或Gentoo Media-Fonts/Symerna中)。
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商店安裝該應用程序,並使用apt install termux-api安裝CLI實用程序。
pushalotauth_token您的私人Pusealot auth Token,此處找到https://pushalot.com/manager/authorizationssource - 通知的來源ttl消息在幾分鐘內到期時間(生存時間)url在通知中包含的URLurl_title可見的URL標題(如果未指定URL,則忽略)image - 通知中包含的圖像的URLimportant - 標記通知很重要silent - 標記通知為沈默rocketchat需要額外的安裝: pip install ntfy[rocketchat] 。
url您的火箭的URL。username - 登錄用戶名password - 登錄密碼room - 會在matrix需要附加功能,這樣安裝: pip install ntfy[matrix] 。
url您的HomeServer實例的URLroomId張貼的空間userId登錄用戶IDpassword - 登錄密碼token - 訪問令牌您必須指定token或userId和password 。
ntfy_webpush WebPush支持由外部NTFY模塊提供,以下安裝: pip install ntfy ntfy-webpush 。
subscription_info pushSubscription對象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標題可與配置中的標題鍵配置。例子:
---
title : Customized Titlepython setup.py test