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

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

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

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

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

Пример:

  1. Я использую "curl -s http://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].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 отобразит иконку "Cloudy" и 69F (или 68.9F). Затем я мог (легко надеюсь) извлечь и отобразить другую информацию аналогичным образом.

Заранее благодарю за любую помощь, которую вы можете предложить.

1 ответ1

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .