All pastes #949765 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-20 00:57 UTC
rendered paste body
[stijn@lysithea scripts]$ cat gweather.py 
#!/usr/bin/python
# -*- coding: latin-1 -*-

import sys
import urllib
from string import maketrans
#from xml.sax import make_parser, handler
from xml.sax import handler, parseString
class ElementProcesser(handler.ContentHandler):
    
    def startElement(self, name, attrs):
        
        if name == "city":
            print "<separator label='Sint-Niklaas' />"
        elif name == "current_conditions":
            print "<separator label='Huidige toestand' />"
        elif name == "condition":
            print "<item label='Weer: " + attrs["data"] + "' />"
        elif name == "humidity":
            print "<item label='" + attrs["data"] + "' />"
        elif name == "wind_condition":
            print "<item label='" + attrs["data"] + "' />"
        elif name == "day_of_week":
            print "<separator label='" + self.getDayOfWeek(attrs["data"]) + "' />"
            
        #Celsius
        elif name == "temp_c":
            print "<item label='Temperatuur " + attrs["data"] + " C' />"
        elif name == "low":
            print "<item label='Minimum " + attrs["data"] + " C' />"
        elif name == "high":
            print "<item label='Maximum " + attrs["data"] + " C' />"
        
        #Fahrenheit
        #elif name == "temp_c":
        #    print "<item label='Temperatuur " + attrs["data"] + " F' />"
        #elif name == "low":
        #    print "<item label='Minimum " + attrs["data"] + " F' />"
        #elif name == "high":
        #    print "<item label='Maximum " + attrs["data"] + " F' />"
        
        
    def endElement(self, name):
        
        if name == "current_conditions":
            print "<separator label='Voorspelling' />"
        
    
    def startDocument(self):
        print '<openbox_pipe_menu>'
    
    def endDocument(self):
        print '</openbox_pipe_menu>'
    
    def getDayOfWeek(self,day):
        
        #English
        if day == "Mon":
            return "Monday"
        elif day == "Tue":
            return "Tuesday"
        elif day == "Wed":
            return "Wednesday"
        elif day == "Thu":
            return "Thursday"
        elif day == "Sat":
            return "Saturday"
        elif day == "Sun":
            return "Sunday"
        
        else:
            return day

# You should use your local version of google to have the messages in your language and metric system
f = urllib.urlopen("http://www.google.nl/ig/api?weather="+sys.argv[1])
xml = f.read()
f.close()

#Avoid problems with non english characters
trans=maketrans("\xe1\xe9\xed\xf3\xfa","aeiou")
xml = xml.translate(trans)

#parser.parse("http://www.google.nl/ig/api?weather="+sys.argv[1])