en/ProgrammingRobotsCourse/GettingWwwInfo: forecast.py

File forecast.py, 1.3 KB (added by xrambous, 3 months ago)
Line 
1#! /usr/bin/python
2# coding: utf-8
3import sys
4import requests
5from datetime import datetime
6
7
8def main():
9    import argparse
10    parser = argparse.ArgumentParser(description='Get forecast for city.')
11    parser.add_argument('-c', '--city', type=str,
12                        required=True,
13                        help='City name')
14    parser.add_argument('-o', '--output', type=argparse.FileType('w'),
15                        required=False, default=sys.stdout,
16                        help='Output')
17
18    args = parser.parse_args()
19
20    url = "http://api.openweathermap.org/data/2.5/weather"
21
22    params = {'q': '{}'.format(args.city),
23              'APPID': '9edd6639ac418ac7e04b9fb9c7d19ffb',
24              'units': 'metric',
25              'lang': 'cz'}
26
27    r = requests.get(url=url, params=params)
28    data = r.json()
29
30    sunset = datetime.utcfromtimestamp(int(data['sys']['sunset'])).strftime('%H:%M:%S')
31
32    output = 'Ve městě {} je {} a {} stupňů. '.format(data['name'], data['weather'][0]['description'].encode('utf-8'), data['main']['temp'])
33    output += 'Vlhkost ovzduší je {} procent. '.format(data['main']['humidity'])
34    output += 'Rychlost větru je {} kilometrů za hodinu. '.format(data['wind']['speed'])
35    output += 'Slunce dnes zapadá v {}. '.format(sunset)
36
37    args.output.write(output)
38
39
40if __name__ == "__main__":
41    main()