Конки и Wunderground Погода

Я редактирую свой вопрос для пояснения... Прошу прощения за путаницу... Синтаксис Conky изменился с последней версией (я предположил, что пользователи последней версии Conky знали об этом).

Моя проблема прояснилась:

Я создаю XML-файл, который получает информацию о погоде от Wunderground.com.

Я бы предпочел найти простой способ извлечь конкретную информацию из XML-файла для отображения в Conky (включая значок погоды).

Большая часть информации, которую я нашел до сих пор, не делает то, что мне нужно, и я не могу собрать свое собственное решение из того, что я нашел, потому что информация кажется излишне сложной. Я хочу, чтобы используемый метод не требовал много дополнительных программ и / или скриптовой гимнастики.

Пример:

  1. Я использую "curl -s http://api.wunderground.com/api/%5Bkey%5D/conditions/q/TX/%5Bmycity%5D.xml -o ~ / path / weather.xml", чтобы создать мой XML-файл с использованием Wunderground.com.

  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.

Другие вопросы по тегам