最近迷上了用Rainmeter,官网https://www.rainmeter.net,
一款占用很小的桌面美化软件,了解了一下,后来百度到知乎老哥的文章
[桌面美化之 windows10 - Yoki] 传送门:https://zhuanlan.zhihu.com/p/102859469
下载到了口碑很好的 simple clean魔改版 - 无妄云烟@酷安 [点击下载,提取码:29r5]
原主题很炫酷,内容也很多,大约包含下面这些(图片来自原贴,若侵删)

其中的天气插件已经失效,于是决定自己动手修复一下
接口分析
配置文件用webParse.dll的插件,从weather.com动态抓取对应的天气
原本的接口是在配置文件的32行
1
| http://wxdata.weather.com/weather/local/#Location#?cc=*&unit=m&dayf=1
|
其中 #Location# 是存在皮肤目录的变量文件中的
但是访问这个接口,提示已经在2020年01月15日停止了…所以导致了失效
原来是更新了接口,我又试了试weacher.com现在使用的接口,原来他停止了城市代码
改用了每个城市的编码,比如我所在的西安市莲湖区,现在的访问地址是:
1
| https://weather.com/zh-CN/weather/today/l/7e1166b88281aca3bfadc891829b5ac82206d9b7a85b0d84ae4874c0fba4cceb
|
看了看代码,其实就是可能被抓烦了,于是改了接口吧,查看原代码,找到对应的位置
更新规则
更新URL和对应的正则如下:
1 2
| Url = http://weather.com/zh-CN/weather/today/l/xxxx RegExp="(?si).<span\sdata\-testid=\"TemperatureValue\".*?>(.*?)<span.*?<svg\sset=\"weather\"\sskycode=\"(.*?)\""
|
然后把对应的图标和文字位置标注好:
1 2 3 4 5 6 7 8 9 10 11
| [MeasureWeatherTemp] Measure=Plugin Plugin=WebParser Url=[MeasureWeather] StringIndex=1
[MeasureWeatherIcon] Measure=Plugin Plugin=WebParser Url=[MeasureWeather] StringIndex=2
|
上面表示的是文字,下面的是图标,是正则对应的获取值的序号
当然,成品如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| [Rainmeter] Update=1000 Author=- HipHopium- BackgroundMode=2 SolidColor=0,0,0,1
[Metadata] Name = 简单天气 Version = 1.0.0 Author = Xafyi License = 知识共享协议 署名-非商业性使用-以相同方式共享 4.0 Information=基于weather.com网站的天气修复版本,图标依然用eather.com的,自己用的时候,只要去weather.com搜索自己的地区,然后替换配置文件中的 URL后面的地址就可以用啦~
[Variables] ;通用文件夹中的变量 @include=#@#Variables.inc @include2=#@#Language\#Language#.inc
;你本地的天气访问地址 weatherUrl = http://weather.com/zh-CN/weather/today/l/7e1166b88281aca3bfadc891829b5ac82206d9b7a85b0d84ae4874c0fba4cceb
;------------------------------------------------------------- ;-------------------------------------------------------------
[StyleWeather] StringAlign=Center FontColor=#FontColor# FontFace=#FontFace# AntiAlias=1
;------------------------------------------------------------- ;-------------------------------------------------------------
[MeasureWeather] Measure=Plugin Plugin=Plugins\WebParser.dll ;Url=http://wxdata.weather.com/weather/local/#Location#?cc=*&unit=#Unit#&dayf=1 Url=#weatherUrl# ;RegExp="(?siU).*<cc>.*<tmp>(.*)</tmp>.*<t>(.*)</t>.*<icon>(.*)</icon>" RegExp="(?si).<span\sdata\-testid=\"TemperatureValue\".*?>(.*?)<span.*?<svg\sset=\"weather\"\sskycode=\"(.*?)\"" UpdateRate=1800
[MeasureWeatherTemp] Measure=Plugin Plugin=WebParser Url=[MeasureWeather] StringIndex=1
[MeasureWeatherIcon] Measure=Plugin Plugin=WebParser Url=[MeasureWeather] StringIndex=2
;------------------------------------------------------------- ;-------------------------------------------------------------
[WeatherIcon] Meter=Image MeasureName=MeasureWeatherIcon ImagePath=#@#WeatherIcons X=0 Y=0 W=100 H=100 AntiAlias=1 ImageTint=#FontColor#
|
成品下载
你如果觉得复杂,可以来这里拿,下载地址: https://github.com/afyi/rainmeter_weather
对了,有一个重要的事情,配置文件用记事本编辑,而且保存的时候要用ansi,不要用utf8,他不支持utf8…
嗯,ENJOY~