Adapting modules for new web-ui (do not use yet)
This commit is contained in:
@@ -81,42 +81,74 @@ class Weather(inkycal_module):
|
||||
|
||||
}
|
||||
|
||||
def __init__(self, section_size, section_config):
|
||||
def __init__(self, config):
|
||||
"""Initialize inkycal_weather module"""
|
||||
|
||||
super().__init__(section_size, section_config)
|
||||
super().__init__(config)
|
||||
|
||||
# Module specific parameters
|
||||
config = config['config']
|
||||
|
||||
# Check if all required parameters are present
|
||||
for param in self.requires:
|
||||
if not param in section_config:
|
||||
if not param in config:
|
||||
raise Exception('config is missing {}'.format(param))
|
||||
|
||||
# required parameters
|
||||
self.location = self.config['location']
|
||||
self.api_key = self.config['api_key']
|
||||
self.location = config['location']
|
||||
self.api_key = config['api_key']
|
||||
|
||||
# optional parameters
|
||||
self.round_temperature = self.config['round_temperature']
|
||||
self.round_windspeed = self.config['round_windspeed']
|
||||
self.forecast_interval = self.config['forecast_interval']
|
||||
self.units = self.config['units']
|
||||
self.hour_format = self.config['hour_format']
|
||||
self.use_beaufort = self.config['use_beaufort']
|
||||
self.round_temperature = bool(config['round_temperature'])
|
||||
self.round_windspeed = bool(config['round_windspeed'])
|
||||
self.forecast_interval = config['forecast_interval']
|
||||
self.units = config['units']
|
||||
self.hour_format = int(config['hour_format'])
|
||||
self.use_beaufort = bool(config['use_beaufort'])
|
||||
|
||||
# additional configuration
|
||||
self.owm = pyowm.OWM(self.api_key)
|
||||
self.timezone = get_system_tz()
|
||||
self.locale = sys_locale()[0]
|
||||
self.weatherfont = ImageFont.truetype(fonts['weathericons-regular-webfont'],
|
||||
size = self.fontsize)
|
||||
self.weatherfont = ImageFont.truetype(
|
||||
fonts['weathericons-regular-webfont'], size = self.fontsize)
|
||||
|
||||
#self.owm = pyowm.OWM(self.config['api_key'])
|
||||
# give an OK message
|
||||
print('{0} loaded'.format(filename))
|
||||
|
||||
|
||||
def _validate(self):
|
||||
|
||||
if not isinstance(self.location, str):
|
||||
print(f'location should be -> Manchester, USA, not {self.location}')
|
||||
|
||||
if not isinstance(self.api_key, str):
|
||||
print(f'api_key should be a string, not {self.api_key}')
|
||||
|
||||
if not isinstance(self.round_temperature, bool):
|
||||
print(f'round_temperature should be a boolean, not {self.round_temperature}')
|
||||
|
||||
if not isinstance(self.round_windspeed, bool):
|
||||
print(f'round_windspeed should be a boolean, not {self.round_windspeed}')
|
||||
|
||||
if not isinstance(self.forecast_interval, int):
|
||||
print(f'forecast_interval should be a boolean, not {self.forecast_interval}')
|
||||
|
||||
if not isinstance(self.units, str):
|
||||
print(f'units should be a boolean, not {self.units}')
|
||||
|
||||
if not isinstance(self.hour_format, int):
|
||||
print(f'hour_format should be a int, not {self.hour_format}')
|
||||
|
||||
if not isinstance(self.use_beaufort, bool):
|
||||
print(f'use_beaufort should be a int, not {self.use_beaufort}')
|
||||
|
||||
|
||||
def generate_image(self):
|
||||
"""Generate image for this module"""
|
||||
|
||||
# Define new image size with respect to padding
|
||||
im_width = int(self.width - (2 * self.padding_x))
|
||||
im_height = int(self.height - (2 * self.padding_y))
|
||||
im_width = int(self.width - (2 * self.padding_left))
|
||||
im_height = int(self.height - (2 * self.padding_top))
|
||||
im_size = im_width, im_height
|
||||
logger.info('image size: {} x {} px'.format(im_width, im_height))
|
||||
|
||||
@@ -338,6 +370,10 @@ class Weather(inkycal_module):
|
||||
|
||||
elif self.forecast_interval == 'daily':
|
||||
|
||||
###
|
||||
logger.debug("daily")
|
||||
|
||||
|
||||
def calculate_forecast(days_from_today):
|
||||
"""Get temperature range and most frequent icon code for forecast
|
||||
days_from_today should be int from 1-4: e.g. 2 -> 2 days from today
|
||||
@@ -352,7 +388,6 @@ class Weather(inkycal_module):
|
||||
# Get forecasts for each time-object
|
||||
forecasts = [forecast.get_weather_at(_.datetime) for _ in time_range]
|
||||
|
||||
|
||||
# Get all temperatures for this day
|
||||
daily_temp = [round(_.get_temperature(unit=temp_unit)['temp'],
|
||||
ndigits=dec_temp) for _ in forecasts]
|
||||
@@ -418,7 +453,6 @@ class Weather(inkycal_module):
|
||||
moonphase = get_moon_phase()
|
||||
|
||||
# Fill weather details in col 1 (current weather icon)
|
||||
# write(im_black, (col_width, row_height), now_str, text_now_pos, font = font)
|
||||
draw_icon(im_colour, weather_icon_pos, (icon_large, icon_large),
|
||||
weathericons[weather_icon])
|
||||
|
||||
@@ -481,4 +515,4 @@ class Weather(inkycal_module):
|
||||
return im_black, im_colour
|
||||
|
||||
if __name__ == '__main__':
|
||||
print('running {0} in standalone mode'.format(filename))
|
||||
print('running {0} in standalone mode'.format(filename))
|
Reference in New Issue
Block a user