Я редактирую свой вопрос для уточнения... Извините за любую путаницу... Синтаксис Conky изменился в последней версии (я предполагал, что пользователи последней версии Conky знают об этом).
Моя проблема прояснена:
Я создаю XML-файл, который берет информацию о погоде с Wunderground.com.
Я бы предпочел найти простой способ извлечения определенной информации из XML-файла для отображения в Conky (включая значок погоды).
Большая часть информации, которую я нашел до сих пор, не делает то, что мне нужно, и я не могу слепить собственное решение из того, что нашел, потому что информация кажется неоправданно сложной. Я хочу, чтобы используемый метод не требовал множества дополнительных программ и/или скриптовой гимнастики.
Пример:
Я использую "curl -s"http://api.wunderground.com/api/[ключ]/условия/q/TX/[мойгород].xml-o ~/path/weather.xml" для создания моего XML-файла с помощью Wunderground.com.
В 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:
Чтобы извлечь информацию непосредственно из веб-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.