Estou editando minha pergunta para esclarecimento... Lamento qualquer confusão... A sintaxe do Conky mudou com a versão mais recente (presumi que os usuários da versão mais recente do Conky estavam cientes disso).
Meu problema esclarecido:
Eu crio um arquivo xml que obtém informações meteorológicas do Wunderground.com.
Eu preferiria encontrar uma maneira simples de extrair informações específicas do arquivo xml para exibir no Conky (incluindo o ícone do clima).
A maior parte das informações que encontrei até agora não faz o que preciso e não consigo montar minha própria solução com base no que encontrei porque as informações parecem desnecessariamente complexas. Quero que o método usado não exija muitos programas extras e/ou ginástica de script.
Exemplo:
Eu uso "curl -shttp://api.wunderground.com/api/[key]/conditions/q/TX/[mycity].xml-o ~/path/weather.xml" para criar meu arquivo xml usando Wunderground.com.
Dentro do arquivo xml está o caminho para o ícone do clima atual (digamos: "http://icons.wxug.com/i/c/k/cloudy.gif")
Dentro do arquivo xml estão dados específicos que desejo exibir, como a temperatura atual (os arquivos xml mostram '<'temp_f'>'68.9'<'/temp_f'>'"... Nota: estou usando '<' caso contrário, minha postagem não mostrará a tag). Portanto, gostaria de pegar 68,9 e exibi-lo (ou arredondá-lo para 69).
No final, usando o exemplo acima, meu Conky mostraria um ícone "Nublado" e 69F (ou 68,9F). Eu poderia então (espero facilmente) extrair e exibir outras informações de maneira semelhante.
Agradecemos antecipadamente por qualquer ajuda que você possa oferecer.
Responder1
Parte 1:
Para extrair as informações diretamente do URL da web você usaria o seguinte 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"}'
...ou, alternativamente, você pode extrair as informações de um arquivo xml baixado:
curl 'file:///home/path/weather.xml' | awk -F'[<|>]' '/<temp_f>/ {print "Current Temperature:"$3"°F"}/<windchill_f>/ {print "Windchill:"$3"°F"}'
Você pode substituir
'/<temp_f>/' {print "Current Temperature:"$3"°F"}
com qualquer outra tag e informação que você deseja exibir.
Parte 2:
Para extrair o URL do ícone e, em seguida, fazer com que o ícone seja exibido no Conky, você precisaria extrair o URL para um arquivo da seguinte maneira:
curl api.wunderground.com/api/[key]/conditions/q/[state]/[mycity].xml | awk -F'[<|>]' '/<icon_url>/ {print $3}' >~/path/image
Em seguida, você precisa baixar o ícone, dar-lhe um nome genérico e movê-lo para a pasta desejada:
wget -O weather.gif -i ~/path/image
mv ~/weather.gif ~/path/
Crie um script sh (vamos chamá-lo de "weather.sh") com as etapas acima e coloque-o onde desejar.
Você então colocaria comandos em seu ".conkyrc" da seguinte forma:
${execi 300 sh ~/path/weather.sh}
${image ~/path/weather.gif -p 10,40 -s 32x32}
No comando “imagem”, “-p” = a posição e “-s” = o tamanho do pixel da imagem. Altere as coordenadas e o tamanho para se adequar ao seu propósito.
Isso deve ser muito mais simples do que muitos dos scripts meteorológicos, etc. que encontrei para Conky.