web-dev-qa-db-ja.com

Conkyに天気を表示させるにはどうすればよいですか?

天候を表示するためにconkyを取得するために奮闘してきました、それをインストールしたところ、yahooがconkyテーマが使用していたAPIのURLを廃止したことがわかりました( http://weather.yahooapis.com/ predictrss?w = 1103816&u = c )、私はURLをaccuweatherとopenweatherのものに変更し、何もしないようにしました。私はこれがどのように機能するのかまったく理解していません、そしてそれを適切に機能させるための手がかりがありません、これがコードです:

_##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}#\&locCode\=$LOCCOD" -o #~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep #"yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | #grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}#${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o #"code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image #~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla
_

ところで、私はインターネットで私を助けることができるものは何も見つかりませんでした...事前に感謝します:)

Edit1:conkyテーマがcache/weather.xmlに保存するAPIです http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568 ゆっくりです仕組みを理解する

Edit2:これはコードが今どのように見えるかであり、天気部分全体にコメントしようとするいくつかのミスタイプに気づきました。 conkyがxmlを読み取る方法がわかりません(自分でxmlを読み取る方法はわかりませんが、xml:Pのいくつかのガイドで解決できると思います)

_##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" -o ~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep "weather:description" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla
_

Edit3:それで、 @ WinEunuuchs2Unix@ steeldriver のおかげで、ようやく動作しました。これは、コードが最後のコードで使用したい人を最終的にどのように探すかです:

_##Weather

${voffset -80}${offset 435}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].main.temp' | awk '{printf("%.0f\n", $1)}'}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 24}${font}${color1}
${execi 1300 cp -f .iconos/$(curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].weather[].icon').png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,20 -s 60x60}
${offset 420}${voffset -115}${font ITC Avant Garde Gothic Pro:bold:size=14} Sevilla
_

基本的には、curlを使用してopenweatherのURLからjsonを読み取り、jqを使用して、出力される温度について_.list[0].weather[].icon_および_.list[0].main.temp_の値を検索します2桁の10進数の値をawk '{printf("%.0f\n", $1)}'を使用して個人の好みに合わせて切り出しました。残りのコードは、どこに、どのようにしたいのかを理解するための単なる慣習的な方法です。自分で使用したい場合は、都市のSevillaを変更し、_curl -s "...your location api url..."_を変更してください。APIのURLに別のサイトを使用している場合は、jqを変更する必要があります。新しいjsonデータに合わせる。また、これからすべてのアイコンを含むフォルダを作成する必要があることにも注意してください icon list または独自のアイコンを使用しますが、同じ名前(01d.png、02d.png、...)を使用することを忘れないでくださいまた、この_${execi 1300 cp -f .iconos/$(curl -s "http:/..._を編集し、_.iconos/_をフォルダのディレクトリに置き換えることを忘れないでください。

ここ conkyテーマを試してみたい場合

3
Wonky

天気は情報が多すぎて、すでにかなり満杯の私のコンキディスプレイに押し込めません。代わりに、私はそれを ターミナルスプラッシュスクリーン

terminal splash screen.png

Conkyから呼び出すことができる同じ情報をコマンドラインから取得できます。

$ curl wttr.in/Edmonton?0 --silent --max-time 3

Weather report: Edmonton

     \   /     Clear
      .-.      7..8 °C        
   ― (   ) ―   → 6 km/h       
      `-’      10 km          
     /   \     0.0 mm         

wttr.inの都市名を取得するには、以下を参照してください。


Conkyで画像を表示する

今日の天気の写真をdarksky.netから保存し、${image}コマンドを使用してそれをコンクで表示しました。

Weather in conky.png

関連するconkyコマンドは次のとおりです。

#------------+
# Brightness |
#------------+
${color orange}${voffset 2}${hr 1}
${color1}${goto 5}Rise: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunrise} ${goto 155}${color1}Set: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunset} ${alignr}${color1}Level: ${color green}${execpi 10 cat /sys/class/backlight/intel_backlight/brightness}







#------------+
# Image      |
#------------+
${image /home/rick/Pictures/Weather.png -p 0,1080 -s 400x120}
  • 参照用に直前のセクションを含めました
  • 空のウィンドウが画像に収まるように高くするために、すべての空白行に注意してください
  • ${image}コマンドの詳細については、 Conkyの変数 を参照してください。
3

免責事項:これをどこで手に入れたのか覚えていません。

小さなスクリプトweather.sh

#!/bin/sh
#AccuWeather (r) RSS weather tool for conky
#
#USAGE: weather.sh <locationcode>
#
#(c) Michael Seiler 2007

METRIC=0 #Should be 0 or 1; 0 for F, 1 for C

if [ -z $1 ]; then
    echo
    echo "USAGE: weather.sh <locationcode>"
    echo
    exit 0;
fi

curl -s http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}\&locCode\=$1 | Perl -ne 'if (/Currently/) {chomp;/\<title\>Currently: (.*)?\<\/title\>/; print "$1"; }'

次に、.conkyrcに

${exec [location of script]/weather.sh [Zip code]}

最終結果は

enter image description here

1
Organic Marble