diff --git a/plugins/other/weather_ b/plugins/other/weather_ new file mode 100755 index 00000000..7671f157 --- /dev/null +++ b/plugins/other/weather_ @@ -0,0 +1,59 @@ +#!/usr/bin/python + +import re +import sys +import urllib + +url = 'http://www.weather.com/weather/today/%s' + +re_tmp = re.compile('realTemp: "(\d+)"') +re_hum = re.compile('relativeHumidity: "(\d+)"') +re_loc = re.compile('locName: "([\w ]+)"') + +code = sys.argv[0][(sys.argv[0].rfind('_') + 1):] + +if code == None: sys.exit(1) + +if len(sys.argv) == 2 and sys.argv[1] == "autoconf": + print "yes" +elif len(sys.argv) == 2 and sys.argv[1] == "config": + u = urllib.urlopen(url % code) + txt = u.read() + u.close() + + LOC_list = re_loc.findall(txt) + + if len(LOC_list): + LOC = LOC_list[0] + else: + LOC = "Unknown" + + print 'graph_title Weather in %s' % LOC + print 'graph_vlabel Temperature and Humidity' + print 'graph_category sensors' + + print 'temperature.label Temperature' + print 'humidity.label Humidity' + + print 'graph_args --base 1000 -l 0' +else: + u = urllib.urlopen(url % code) + txt = u.read() + u.close() + + TMP_F_list = re_tmp.findall(txt) + HUM_list = re_hum.findall(txt) + + if len(HUM_list): + HUM = HUM_list[0] + else: + HUM = 0 + + if len(TMP_F_list): + TMP_F = TMP_F_list[0] + TMP_C = (int(TMP_F) - 32) * 5/9 + else: + TMP_C = 0 + + print 'temperature.value %s' % TMP_C + print 'humidity.value %s' % HUM