由discord webhook推播地震速報,使用python編寫,打包為exe後可直接被「地牛Wake Up!」觸發
graph LR
start[地震發生] --> input[地牛wakeup!被觸發]
input -- 觸發*exe.cmd.bat. --> conditionA{看自己選擇\n傳入變數:強度時間}
conditionA -- 分支:split\n傳入變數: 強度時間 --> conditionC{earthquick.bat}
conditionA -- 分支:packed\n傳入變數: 強度時間 --> conditionB{discord_notify.exe} -- webhook post--> send[discord傳訊息]
conditionC -- 觸發\n傳入變數: 強度時間 --> conditionD{discord_notify.py} -- webhook post--> send[discord傳訊息]
send[discord傳訊息] --> stop[程式結束]
- 你也可以自己修改sourcefile後再編譯成exe
- 路徑不可以有中文
- 路徑不可以有中文
- 需和exe在同一目錄
- 首次使用先打開discord_notify.exe,windows defender會提示不要打開,按下信任發行者後將會跳出命令提示字元的介面,此時同一個資料夾下會多一個discord_notify.ini檔案
- 點擊discord_notify.ini,用自己習慣的編輯器打開,會看到下方的樣子
[DEFAULT]
1.網址說明 = 請複製discord webhook網址進去,無須加雙引號
webhookurl = https://discord.com/api/webhooks/1000000000000000000/abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789000000
2.延遲說明 = 請輸入在程式結束後視窗保留的時間,預設為5秒鐘,無須加雙引號
sleep_time = 5
3.地區說明 = 請輸入在地震訊息發出後,需要被顯示的地區,預設不顯示,為NULL,無須加雙引號
area = NULL
-
把
https://discord.com/api/webhooks/1000000000000000000/abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789000000
變成自己的webhook網址 -
延遲指的是啟動discord_notify.exe後,該視窗存在的時間,若看的到print出來的訊息就可以看到會有倒數的秒數
-
地區是指原訊息是
警告:地區預計震度5強級地震 預計到達時間:20秒
若設成
area = 台北
即變成警告:台北地區預計震度5強級 地震預計到達時間:20秒
Earthquake icons created by Freepik - Flaticon
遵守flaticon.com 的License summary: For commercial and personal projects
由auto-py-to-exe 打包 discord_notify.exe
- 看不到ini檔怎麼辦
把discord_notify.exe執行一次後,如果當前目錄沒有ini檔即會再次生成ini檔,可以在裡面調整webhook網址、顯示地區、視窗關閉秒數
- 為什麼按下測試後只會跳出CMD的介面,不會顯示東西
地牛wakeup!中測試按鈕似乎會讓執行的東西都看不到print,如果有debug的需求可以透過tests資料夾的四個測試,直接點開cmd即可
注意regenerate_ini_file_test.cmd會將ini刪除
- 為什麼不直接用windows自帶的curl寫在cmd就好
因為curl傳中文字訊息出去會變亂碼,試過改編碼
chcp 65001
依然無解
- 為什麼看不到編輯頻道的選項
因為你沒有該伺服器管理頻道的權限