Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CuacaError(Exception):pass
- class Cuaca:
- def load(self,kota):
- import e32socket,e32
- # sign up di openweathermap.org untuk mendapatkan API key (kalo kamu pake opera, setelah signup akan masuk ke halaman yg menampilkan key api tapi dalam inputbox yg read-only (utk lihat kode yg lengkap, lihat source hal nya)
- key = 'f094936f8d89xxxxxx'
- url='api.openweathermap.org/data/2.5/weather?q=%s&units=metric&appid=%s' %(kota,key)
- host,url=url.split('/',1)
- try:
- soc=e32socket.socket(e32socket.AF_INET, e32socket.SOCK_STREAM,0,None)
- soc.connect((e32socket.gethostbyname(host), 80))
- print 'Updating data...'
- soc.send('GET /%s HTTP/1.0\r\nHost: %s\r\nUser-agent: UNTRUSTED 1.0\r\n\r\n'%(url, host))
- st=soc.recv(1024).split('\r\n')
- for x in xrange(len(st)):
- if not st[x] or st[x].isspace():break
- st=['\r\n'.join(st[x+1:])]
- while 1:
- e32.ao_sleep(0)
- x=soc.recv(1024)
- if not x:break
- st.append(x)
- data=eval(''.join(st))
- if isinstance(data, dict):
- print 'City:', data['name']
- print 'Cond:', data['weather'][0]['main']
- print 'Temp:', data['main']['temp']
- else:
- print 'Tidak ada data'
- except (soc.error,soc.gaiaerror), (se,sg):
- raise CuacaError('Kesalahan koneksi')
- if __name__=='__main__':
- w=Cuaca()
- try:
- w.load('jakarta')
- except Exception,err:
- print err
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement