Arthals

Arthals

bilibili
github

回望那個暑假,我玩出來的第一個「應用程式」

前言#

本文全文 Copy 自我的 Github 主頁,算是我寫的第一個功能完整可用的應用,故而拿來填充自己的第一篇 "編程應用" 分類。

創作這個應用的靈感可以參見後文的功能說明,現在再回頭看,當初哪個抓著 8 月末尾巴,一天 24 小時除了吃飯睡覺就是做這個應用的自己,居然仍可以看到那種沒由來的熱切。

我對於這種應用自己的技術、玩各種輪子的興趣的無限熱衷,大概也就是從 19 年,哪個串聯起寒冬的末尾、蟬鳴的盛夏、深秋的伊始的漫漫長假而起的。

希望自己能永遠保有這份難能可貴的 "玩心" 吧。

header

作者#

作者主頁:zhuozhiyongde(Arthals)

項目地址:Alfred_HeWeather_Workflow

源碼作者主頁:skefy(Leon)

源碼項目地址:alfred_workflow_weather

功能說明#

查詢災害預警、空氣質量指數(AQI)、實況天氣、未來三天的預測天氣
本 Alfred Workflow 使用和風天氣( https://dev.heweather.com/ )API,僅供教育於參考之用,不得用於商業用途。

本 Alfred Workflow 源碼來自 @skefy (Leon)/alfred_workflow_weather

因為原作者初始設置 base_url 為商業版 API,個人使用需修改源代碼,較為不便,且和風天氣 API 已經更新至 v7,而原作者並未同步更新,所以我以源碼為基礎,對於原項目進行了 90% 以上的重構。

除了上述變更之外,我還進行了如下修改:

  • 新增災害預警查詢,當有多條災害預警時,自動返回去重後合併的並列字串

  • 新增AQI查詢

  • 修改了條目布局,為各個條目新增了更多的信息,如日出日落、降水量、體感溫度,且仿照 @jason0x43/alfred-weather的布局,引入了 unicode 圖標,更為簡潔和直觀。

  • 在環境變量中增添了 adm 和 location 參數,精準的定位城市以獲得城市 ID,同時也是因為原有自動定位的接口已經過時,且請求 auto_ip 的話無法精確定位到區縣一級,故捨棄了自動定位功能

  • 你仍然可以通過關鍵詞+空格+其他城市名獲取其他城市的天氣狀況,如果所查詢城市不在中國境內,不會返回災害預警和 AQI 信息。

  • 考慮到大多數人使用的是個人版 / 開發者版 API,我將 base_url 裡的api變更為了devapi

  • 增添了報錯提示,根據最新版的 v7 API 返回的狀態碼自動提示報錯內容。

  • 變更了原有圖標為和風天氣新版 icon,更加美觀。

    有關此項,你可以從@heweather / WeatherIcon 下載和風天氣設計的其他版本 icon 並且自行替換./res/icon-heweather 文件夾中的圖標

  • 對於返回結果加入了quicklookurl參數,對於每項結果,你都可以在選中結果的同時按住或者+Y預覽 API 返回的fxLink自適應網頁來獲取更為詳盡的信息。

  • 增添了date_valid()函數以比較接口獲得的三日預報和當日日期,原因是我寫代碼寫到 5 點的時候偶然發現該接口尚未更新數據,導致 11 號早上 5 點請求返回得到了 10 ~ 12 號的信息,而原作者並未對此進行糾正,會自動從今日開始顯示為 11 ~ 13 號的信息。

默認 keyword: rt#

必要參數#

  • api_key:你的 WEB API key,普通用戶每日前 1000 次請求免費,開發者版本前 16700 次請求免費,如有更多需求,請選購商業版或高性能版 API,根據需求更換 main.py 第 65 行 base_url 中的devapiapi

    開發者版本 API 可以獲得未來 24h 的逐小時預測,但是由於我自己尚未認證,該部分的開發暫時擱置。

  • adm:所選區縣的上級省市範圍,用於防止重名城市,如北京市朝陽區和遼寧省朝陽市。

  • location:請選擇具體地區的區縣一級規劃,如海淀區 / 漢陽縣。

使用說明#

  1. 確保擁有 Alfred 的 Powerpack 功能

  2. 安裝該 workflow

  3. 和風天氣 註冊,申請 api_key

  4. 註冊流程:

    a. 前往和風天氣進行帳號註冊

    b. 註冊完畢後,前往控制台 →應用管理→創建應用→免費開發版→隨意填寫一個應用名稱→選擇 Key 類型為 WEB API→跟隨提示完成註冊

    c. 你的 API Key 可以在控制台 - 應用管理處看到了

  5. 設置 api_key環境參數

    建議先到某個地方複製一遍,檢查是否帶著制表符 / 回車符複製進去了,這樣的話會報錯。

  6. 設置 adm, location環境參數,可以以中文輸入

Step-1.png

Step-2.png

效果預覽#

Arthals-HeWeather.png

Arthals-HeWeather2.png


詳細說明:

Arthals-HeWeather-explain.png

授權#

本項目以 GNU General Public License v3.0 開源

城市查詢、空氣查詢、實況天氣、預測天氣 API 均來自和風天氣 ®

和風天氣 ® 是和風天氣公司的註冊商標。

天氣 icon 來自@heweather/WeatherIcon by 和風天氣

預警 icon 來自 Freepik from www.flaticon.com

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。