天気予報を取得するスクリプト
tmuxのstatuslineに天気予報を表示したいなと思って作ったスクリプトです。
google先生のWeather APIを使って取得して表示するだけのスクリプト
天気が良い日はすぐに海に行けるようになって幸せが実現しました。
参考にしました。
weather.rb
require 'open-uri'
require 'rexml/document'
CACHE = "/tmp/ustatus.rb.cache"
if File.exist?(CACHE) && (Time.now - File::Stat.new(CACHE).mtime) <= 2000
print File.read(CACHE)
exit
end
url = URI.parse('http://www.google.com/ig/api?weather=naha,okinawa&hl=ja')
res = url.read('r:binary').encode("UTF-8", invalid: :replace, undef: :replace)
rss = REXML::Document.new(res)
condition = rss.elements['//weather/current_conditions/condition/@data'].value.strip
wind_condition = rss.elements['//weather/current_conditions/wind_condition/@data'].value.strip
wind, windy, tani = *wind_condition.split(':').last.split(' ')
temp_c = rss.elements['//weather/current_conditions/temp_c/@data'].value.strip + 'C'
msg = [condition, temp_c, wind, windy + tani].join(' ')
if msg.nil?
File.delete CACHE
else
open(CACHE, 'w'){|io| io.print msg}
print msg
end
- 沖縄/那覇の天気予報を日本語で取ってきます。
- 天気予報は30分に一回更新だったと思うのでキャッシュ時間を2000sにしました。(適当)
- なんとなくREXMLを使っています。
- @umitterのなごり
- 温度の単位は℃を使うとstatuslineが崩れたのでCにしてます。
Author And Source
この問題について(天気予報を取得するスクリプト), 我々は、より多くの情報をここで見つけました https://qiita.com/nefo-mi@github/items/04d2c773d4ee429cc295著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .