Arthals

Arthals

bilibili
github

回望那个暑假,我玩出来的第一个“应用”

写在前面#

本文全文 Copy 自我的 Github 主页,算是我写的第一个功能完整可用的应用,故而拿来填充自己的第一篇 “编程应用” 分类。

创作这个应用的灵感可以参见后文的功能说明,现在再回头看,当初哪个抓着 8 月末尾巴,一天 24 小时除了吃饭睡觉就是做这个应用的自己,居然仍可以看到那种没由来的热切。

我对于这种应用自己的技术、玩各种轮子的兴趣的无限热衷,大概也就是从 19 年,哪个串联起寒冬的末尾、蝉鸣的盛夏、深秋的伊始的漫漫长假而起的。

希望自己能永远葆有这份难能可贵的 “玩心” 吧。

header

Author#

作者主页: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

  • 增添了报错提示,根据最新版的 v7API 返回的状态码自动提示报错内容。

  • 变更了原有图标为和风天气新版 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

License#

本项目以 GNU General Public License v3.0 开源

城市查询、空气查询、实况天气、预测天气 API 均来自和风天气 ®

和风天气 ® 是和风天气公司的注册商标。

天气 icon 来自@heweather/WeatherIcon by 和风天气

预警 icon 来自 Freepik from www.flaticon.com

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。