我正在編輯我的問題以進行澄清...對於任何混亂,我深表歉意...Conky 語法已隨最新版本而更改(我假設最新版本 Conky 的用戶已經意識到這一點)。
我的問題得到澄清:
我創建了一個 xml 文件,從 Wunderground.com 獲取天氣資訊。
我更願意找到一種簡單的方法來從 xml 檔案中提取特定資訊以在 Conky 中顯示(包括天氣圖示)。
到目前為止,我發現的大多數資訊都無法滿足我的需要,而且我無法根據我發現的資訊拼湊出自己的解決方案,因為這些資訊似乎不必要地複雜。我希望所使用的方法不需要大量額外的程序和/或腳本體操。
例子:
我使用“curl -shttp://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml-o ~/path/weather.xml" 使用 Wunderground.com 建立我的 xml 檔。
xml 檔案中是目前天氣圖示的路徑(讓我們說:“http://icons.wxug.com/i/c/k/cloudy.gif”)
xml 檔案中是我想要顯示的特定數據,例如當前溫度(xml 檔案顯示 '<'temp_f'>'68.9'<'/temp_f'>'"... 注意:我使用 '<'否則我的帖子將不會顯示標籤)因此,我想採用68.9 並顯示它(或將其舍入為69)。
最後,使用上面的範例,我的 Conky 將顯示一個「多雲」圖示和 69F(或 68.9F)。然後我可以(我希望很容易)以類似的方式提取和顯示其他資訊。
預先感謝您提供的任何幫助。
答案1
第1部分:
為了直接從 web url 中提取訊息,您可以使用以下命令:
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 找到的許多天氣腳本等簡單得多。