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 เทคนิคการติดตั้งใน QuickStart เป็นวิธีการติดตั้งที่แนะนำ มันสามารถติดตั้งใน virtualenv ได้ แต่ด้วยคำเตือนบางอย่าง: การแจ้งเตือน Linux จำเป็นต้องใช้ --system-site-packages สำหรับ VirtualEnV และ OS X การแจ้งเตือนไม่ทำงานเลย
- หมายเหตุ: การแจ้งเตือนเดสก์ท็อป Linux ต้องมีการผูก Python DBUS ดูที่นี่สำหรับข้อมูลเพิ่มเติม
ntfy มีการสนับสนุนสำหรับการส่งการแจ้งเตือน โดยอัตโนมัติ เมื่อคำสั่งที่ใช้งานยาวนานใน Bash และ ZSH ใน Bash It จำลองฟังก์ชั่น preexec ของ ZSH และ precmd ด้วย rcaloras/bash-preexec เพื่อเปิดใช้งานการเพิ่มสิ่งต่อไปนี้ใน .bashrc หรือ .zshrc :
eval " $( ntfy shell-integration ) " โดยค่าเริ่มต้นจะส่งการแจ้งเตือนสำหรับคำสั่งที่ใช้งานได้นานกว่า 10 วินาทีเท่านั้นและหากเทอร์มินัลมุ่งเน้น Terminal Focus ทำงานบน X11 (Linux) และกับ Terminal.app และ Iterm2 บน MacOS ตัวเลือกทั้งสองสามารถกำหนดค่าได้ผ่านตัวเลือก --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 ได้รับการกำหนดค่าด้วยไฟล์ YAML ที่เก็บไว้ที่ ~/.ntfy.yml หรือในตำแหน่งเฉพาะแพลตฟอร์มมาตรฐาน:
~/.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 configs สำหรับประเภทแบ็กเอนด์เดียวกันคุณสามารถระบุชื่อใด ๆ แล้วระบุแบ็กเอนด์ด้วยคีย์แบ็กเอนด์ ตัวอย่างเช่น:
---
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/accountdevice_iden - ตัวระบุอุปกรณ์หากถูกละเว้นการแจ้งเตือนจะถูกส่งไปยังอุปกรณ์ทั้งหมดemail - ส่งการแจ้งเตือนไปยังผู้ใช้ Pushbullet ด้วยอีเมลที่ระบุหรือส่งอีเมลหากไม่ใช่ผู้ใช้ Pushulletsimplepushkey - คีย์ SimplePush ของคุณสร้างขึ้นโดยการติดตั้งแอพ Android (ไม่จำเป็นต้องลงทะเบียน) ที่ https://simplepush.ioevent - ตั้งค่าเสียงเรียกเข้าและรูปแบบการสั่นสะเทือนสำหรับการแจ้งเตือนที่เข้ามา (สามารถกำหนดได้ในแอพ SimplePush)xmppjidpasswordrecipienthostname (ถ้าไม่มาจาก JID)portpath_to_certsmtype ต้องมีความพิเศษติดตั้งเช่นนี้: pip install ntfy[xmpp]
ในการตรวจสอบใบรับรอง SSL ที่เสนอโดยเซิร์ฟเวอร์: path_to_certs = "path/to/ca/cert"
หากไม่มีการติดตั้งไลบรารี DNSpython คุณจะต้องระบุชื่อโฮสต์เซิร์ฟเวอร์หากไม่ตรงกับ JID
ระบุพอร์ตหากนอกเหนือจาก 5222 หมายเหตุ: ละเว้นโดยไม่ระบุชื่อโฮสต์ที่ระบุ
หมายเหตุ: Google Hangouts ไม่รองรับ XMPP ตั้งแต่ปี 2560
telegram ต้องมีความพิเศษติดตั้งเช่นนี้: pip install ntfy[telegram]
ต้องติดตั้ง ntfy เป็น ntfy[telegram] แบ็กเอนด์นี้ได้รับการกำหนดค่าเป็นครั้งแรกที่คุณจะลองใช้: ntfy -b telegram send "Telegram configured for ntfy"
pushjetsecret -The Pushjet Service Secret Token สร้างขึ้นด้วย http://docs.pushjet.io/docs/creating-a-new-serviceendpoint - จุดสิ้นสุดของพุชเจ็ท API แบบกำหนดเองlevel - ระดับความสำคัญจาก 1 (ต่ำ) ถึง 5 (สูง)linknotificowebhook - ลิงค์ WebHook สร้างขึ้นที่ https://n.tkte.ch/Plain Text เมื่อสร้าง webhook)slack ต้องมีความพิเศษติดตั้งเช่นนี้: pip install ntfy[slack]
token -โทเค็นความลับของบริการหย่อนไม่ว่าจะเป็นโทเค็นผู้ chat:write:bot รุ่นเก่าที่สร้างขึ้นที่ https://api.slack.com/custom-integrations/legacy-tokens หรือโทเค็นที่ได้รับจากการสร้างแอพที่ https://api.slack.com/appsrecipient - ช่อง Slack หรือผู้ใช้เพื่อส่งการแจ้งเตือนไปที่ หากคุณใช้สัญลักษณ์ # ข้อความจะส่งไปยังช่อง Slack และหากคุณใช้สัญลักษณ์ @ ข้อความจะส่งข้อความไปยังผู้ใช้ Slackslack_webhookurl - URL ของ webhook ที่เข้ามาuser - ช่อง Slack หรือผู้ใช้เพื่อส่งการแจ้งเตือนไปยังinsta ต้องมีความพิเศษติดตั้งเช่น pip install ntfy[instapush]
Instapush ไม่รองรับชื่อการแจ้งเตือน มันส่งการแจ้งเตือนที่ขับเคลื่อนด้วยเทมเพลตดังนั้นคุณต้องตั้งค่ากิจกรรมของคุณบนแดชบอร์ดก่อน แบ็กเอนด์เรียกว่า Insta เนื่องจาก homonymy กับ wrapper instapush python
appid - รหัสแอปพลิเคชันsecret - แอปพลิเคชันลับevent_name - เหตุการณ์ Instapush ที่จะใช้trackers - อาร์เรย์ของร้านค้าที่จะใช้หมายเหตุเกี่ยวกับตัวติดตาม: ตัวติดตามเป็นตัวยึดตำแหน่งสำหรับกิจกรรม (ประเภทของเทมเพลตการแจ้งเตือน) หากคุณกำหนดตัวติดตามมากกว่าหนึ่งตัวในกรณีของคุณคุณจะต้องให้ข้อความเพิ่มเติม ในขณะนี้วิธีเดียวที่จะทำเช่นนั้นคือการแยกแต่ละข้อความด้วยลำไส้ใหญ่ (:) ตัวละคร นอกจากนี้คุณยังสามารถหลบหนีอักขระตัวคั่น: ตัวอย่าง:
ntfy -b insta send " message1:message2 "
ntfy -b insta send " message1:message2:with:colons "prowlapi_keyprovider_keypriorityurllinuxทำงานผ่าน DBUS ทำงานร่วมกับ DES ส่วนใหญ่เช่น Gnome, KDE, XFCE และกับ Libnotify
ควรติดตั้งการพึ่งพาต่อไปนี้
$ sudo apt install python-dbus # on ubuntu/debianคุณจะต้องติดตั้งแบบอักษรที่รองรับอิโมจิ (ใน Debian Fonts-Symbola หรือ Gentoo Media-Fonts/Symbola)
icon - ระบุเส้นทางไปยังไอคอนการแจ้งเตือนสตริงว่างสำหรับไอคอนไม่มีurgency - ระบุระดับความเร่งด่วน (ต่ำปกติวิกฤต)transient - ข้ามประวัติ (exp: ถาดข้อความ GNOME) (จริง, เท็จ)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 Store และ Utility CLI ได้รับการติดตั้งด้วย apt install termux-api
pushalotauth_token - โทเค็น Auth Private Pushalot ของคุณพบที่นี่ https://pushalot.com/manager/authorizationssource - แหล่งที่มาของการแจ้งเตือนttl - ข้อความหมดเวลาในนาที (เวลาในการอยู่)url - URL เพื่อรวมไว้ในการแจ้งเตือนurl_title - ชื่อ URL ที่มองเห็นได้ (ไม่สนใจหากไม่ได้ระบุ URL)image - URL ของรูปภาพที่รวมอยู่ในการแจ้งเตือนimportant - การแจ้งเตือนทำเครื่องหมายเป็นสิ่งสำคัญsilent - การแจ้งเตือนมาร์คเป็นเงียบrocketchat ต้องมีความพิเศษติดตั้งเช่นนี้: pip install ntfy[rocketchat]
url - URL ของอินสแตนซ์ rocket.chat ของคุณusername - เข้าสู่ระบบชื่อผู้ใช้password - รหัสผ่านเข้าสู่ระบบroom - ห้อง/ช่องชื่อโพสต์ในmatrix ต้องมีความพิเศษติดตั้งเช่นนี้: pip install ntfy[matrix]
url - URL ของอินสแตนซ์ผู้ให้บริการบ้านของคุณroomId - ห้องที่จะโพสต์ในuserId - เข้าสู่ระบบ USERIDpassword - รหัสผ่านเข้าสู่ระบบtoken - โทเค็นการเข้าถึง คุณต้องระบุ token หรือ userId และ password
ntfy_webpush การสนับสนุน WebPush ได้รับการพิสูจน์โดยโมดูล NTFY ภายนอกติดตั้งเช่นนี้: pip install ntfy ntfy-webpush
subscription_info - วัตถุ pushsubscriptionprivate_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