Conky 和 ​​Wunderground 天气

Conky 和 ​​Wunderground 天气

我正在编辑我的问题以便澄清...对于造成的混淆,我深感抱歉...Conky 语法已随着最新版本而改变(我认为最新版本的 Conky 用户已经意识到了这一点)。

我的问题澄清了:

我创建了一个 xml 文件,从 Wunderground.com 获取天气信息。

我希望找到一种简单的方法从 xml 文件中提取特定信息以在 Conky 中显示(包括天气图标)。

到目前为止,我找到的大多数信息都不能满足我的需求,我无法根据找到的信息拼凑出自己的解决方案,因为这些信息似乎过于复杂。我希望使用的方法不需要大量额外的程序和/或脚本编写。

例子:

  1. 我使用“curl -shttp://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml-o ~/path/weather.xml” 使用 Wunderground.com 创建我的 xml 文件。

  2. 在 xml 文件中,有当前天气图标的路径(比如说:“http://icons.wxug.com/i/c/k/cloudy.gif“)

  3. xml 文件中包含我想要显示的特定数据,例如当前温度(xml 文件显示“<'temp_f'>'68.9'<'/temp_f'>'”... 注意:我使用“<”,否则我的帖子将不会显示标签)。因此,我想取 68.9 并显示它(或将其四舍五入为 69)。

最后,使用上述示例,我的 Conky 将显示“多云”图标和 69F(或 68.9F)。然后我可以(我希望很容易)以类似的方式提取和显示其他信息。

提前感谢您提供的任何帮助。

答案1

第1部分:

为了直接从网址中提取信息,您可以使用以下命令:

curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'

...或者,您也可以从下载的 xml 文件中提取信息:

curl 'file:///home/path/weather.xml' | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'

您可以更换

'/<temp_f>/' {print "Current Temperature:"$3"°F"}

与您想要显示的任何其他标签和信息。

第2部分:

为了提取图标 URL,然后让图标显示在 Conky 中,您需要将 URL 提取到以下文件中:

curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<icon_url>/ {print $3}' >~/path/image

然后您需要下载该图标,给它一个通用名称,然后将其移动到您想要的文件夹:

wget -O weather.gif -i ~/path/image

mv ~/weather.gif ~/path/

使用上述步骤创建一个 sh 脚本(我们称之为“weather.sh”),并将其放置在您想要的位置。

然后你可以在“.conkyrc”中放置如下命令:

${execi 300 sh ~/path/weather.sh}

${image ~/path/weather.gif -p 10,40 -s 32x32}

在“image”命令中,“-p”= 位置,“-s”= 图像的像素大小。更改坐标和大小以满足您的目的。

这应该比我为 Conky 找到的许多天气脚本等简单得多。

相关内容