From f315adea703193deb7419355dc084e903dbfde1e Mon Sep 17 00:00:00 2001 From: root Date: Sat, 15 Jan 2022 14:46:26 +0000 Subject: Development --- weather.py | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'weather.py') diff --git a/weather.py b/weather.py index e46fac8..f33cbac 100644 --- a/weather.py +++ b/weather.py @@ -1,9 +1,45 @@ -class weather: +from abc import ABC, abstractmethod +import requests + +# Abstract class for weather +class weather(ABC): def __init__(self): self.temp = 0 + + @abstractmethod def get_temp(self): - #update temp + # update temp pass + def temperature(self): self.get_temp() return self.temp + + +# inheriting weather class +class weather_met_no(weather): + def __init__(self): + # constant for location in (latitude, longitude form + self.LOCATION = (51.52866, -0.35508) + # constant for api request when getting data + # uses Norweigen Meterological Institute api + # -- todo : reference + self.CALL = "https://api.met.no/weatherapi/locationforecast/2.0/compact?lat={}&lon={}".format( + self.LOCATION[0], self.LOCATION[1] + ) + # acceptable header for the API + # https://stackoverflow.com/questions/10606133/sending-user-agent-using-requests-library-in-python + # https://api.met.no/doc/FAQ + self.HEADERS = {"User-Agent": "TopologicalMap"} + super.init(self) + + def get_temperature(self): + # https://docs.python-requests.org/en/latest/ + try: + data = requests.get( + self.CALL, headers=self.HEADERS + ).json()['properties']['timeseries'][0]['data'] + return data['instant']['details']['air_temperature'] + # data['next_1_hours']['summary']['symbol_code'] + except: + return -1 -- cgit v1.2.3