You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.1 KiB

import argparse
import requests
import json
from apixu.client import ApixuClient
def get_loc():
response = requests.get('http://ip-api.com/json/')
data = json.loads(response.content)
return data['city'], data['countryCode']
class ungleichWeather(object):
def __init__(self, parser, parents):
self.parser = parser
self.parser['weather'] = self.parser['sub'].add_parser(
'weather',
help="Weather Enquiries",
parents=[parents])
self.parser['weather'].set_defaults(func=ungleichWeather.forecast_weather)
def forecast_weather(args):
_city, _country_code = get_loc()
print("Weather for {}\n".format(_city))
client = ApixuClient("cc33a1e3237a4b78b3174104190206")
forecast = client.forecast(q=f'{ _city},{_country_code}', days=7)
print(f"{'Date':^12}|{'Min Temp':^10}|{'Max Temp':^10}|{'Condition':^15}")
print(f"{'*'*47:^47}")
for day in forecast['forecast']['forecastday']:
print(f"{day['date']:^12}|{day['day']['mintemp_c']:^10}|{day['day']['maxtemp_c']:^10}|{day['day']['condition']['text']:^15}")