Estoy editando mi pregunta para aclararla... Lamento cualquier confusión... La sintaxis de Conky ha cambiado con la última versión (supuse que los usuarios de la última versión de Conky lo sabían).
Mi problema aclarado:
Creo un archivo xml que toma información meteorológica de Wunderground.com.
Preferiría encontrar una manera sencilla de extraer información específica del archivo xml para mostrarla en Conky (incluido el ícono del clima).
La mayor parte de la información que he encontrado hasta ahora no hace lo que necesito y no puedo improvisar mi propia solución a partir de lo que encontré porque la información parece innecesariamente compleja. Quiero que el método utilizado no requiera muchos programas adicionales y/o gimnasia de secuencias de comandos.
Ejemplo:
Yo uso "curl -shttp://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml-o ~/path/weather.xml" para crear mi archivo xml usando Wunderground.com.
Dentro del archivo xml está la ruta al ícono del clima actual (digamos: "http://icons.wxug.com/i/c/k/cloudy.gif")
Dentro del archivo xml hay datos específicos que quiero mostrar, como la temperatura actual (los archivos xml muestran '<'temp_f'>'68.9'<'/temp_f'>'"... Nota: estoy usando '<' de lo contrario, mi publicación no mostrará la etiqueta). Por lo tanto, me gustaría tomar el 68,9 y mostrarlo (o redondearlo a 69).
Al final, usando el ejemplo anterior, mi Conky mostraría un ícono "Nublado" y 69F (o 68.9F). Entonces podría (espero que fácilmente) extraer y mostrar otra información de manera similar.
Gracias de antemano por cualquier ayuda que pueda ofrecer.
Respuesta1
Parte 1:
Para extraer la información directamente de la URL web, utilizaría el siguiente comando:
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"}'
...o, alternativamente, puedes extraer la información de un archivo xml descargado:
curl 'file:///home/path/weather.xml' | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'
puedes reemplazar
'/<temp_f>/' {print "Current Temperature:"$3"°F"}
con cualquier otra etiqueta e información que desee mostrar.
Parte 2:
Para extraer la URL del icono y luego hacer que se muestre en Conky, deberá extraer la URL a un archivo de la siguiente manera:
curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<icon_url>/ {print $3}' >~/path/image
Luego deberás descargar el ícono, darle un nombre genérico y luego moverlo a la carpeta que desees:
wget -O weather.gif -i ~/path/image
mv ~/weather.gif ~/path/
Cree un script sh (lo llamaremos "weather.sh") con los pasos anteriores y colóquelo donde desee.
Luego colocarías comandos en tu ".conkyrc" como este:
${execi 300 sh ~/path/weather.sh}
${image ~/path/weather.gif -p 10,40 -s 32x32}
En el comando "imagen", "-p" = la posición y "-s" = el tamaño de píxel de la imagen. Cambie las coordenadas y el tamaño para adaptarlo a su propósito.
Esto debería ser mucho más simple que muchos de los scripts meteorológicos, etc. que encontré para Conky.