Added interfaces for additional information and implemented the forecast as icon
This commit is contained in:
parent
8372d78268
commit
b7b4d4f0fd
1 changed files with 31 additions and 2 deletions
|
@ -1,13 +1,17 @@
|
||||||
from PIL import ImageDraw
|
from PIL import ImageDraw, Image
|
||||||
from TextDesign import TextDesign
|
from TextDesign import TextDesign
|
||||||
from settings import week_starts_on
|
from settings import week_starts_on, location
|
||||||
from DesignEntity import DesignEntity
|
from DesignEntity import DesignEntity
|
||||||
|
from datetime import datetime
|
||||||
|
from Assets import weathericons, wpath
|
||||||
|
|
||||||
daynumber_y_size = (1, 0.65)
|
daynumber_y_size = (1, 0.65)
|
||||||
weekday_y_size = (daynumber_y_size[0], 1 - daynumber_y_size[1])
|
weekday_y_size = (daynumber_y_size[0], 1 - daynumber_y_size[1])
|
||||||
weekday_ypos = daynumber_y_size[1]
|
weekday_ypos = daynumber_y_size[1]
|
||||||
daynumber_fontsize = daynumber_y_size[1] * 0.8
|
daynumber_fontsize = daynumber_y_size[1] * 0.8
|
||||||
weekday_fontsize = weekday_y_size[1] * 0.75
|
weekday_fontsize = weekday_y_size[1] * 0.75
|
||||||
|
weathericon_ypos = 0.1
|
||||||
|
weathericon_height = 1 - 2 * weathericon_ypos
|
||||||
|
|
||||||
general_text_color = "black"
|
general_text_color = "black"
|
||||||
highlight_text_color = "red"
|
highlight_text_color = "red"
|
||||||
|
@ -20,6 +24,31 @@ class DayRowDesign (DesignEntity):
|
||||||
self.__init_image__(color=background_color)
|
self.__init_image__(color=background_color)
|
||||||
self.date = date
|
self.date = date
|
||||||
|
|
||||||
|
def add_weather (self, weather):
|
||||||
|
if weather.is_available is False:
|
||||||
|
return
|
||||||
|
self.__draw_forecast__(weather)
|
||||||
|
|
||||||
|
def add_calendar (self, calendar):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def add_rssfeed (self, rss):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def __draw_forecast__ (self, weather):
|
||||||
|
forecast = weather.get_forecast_in_days(self.date.day - datetime.today().day, location)
|
||||||
|
|
||||||
|
if forecast is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
height = int(weathericon_height * self.size[1])
|
||||||
|
size = (height, height)
|
||||||
|
ypos = weathericon_ypos * self.size[1]
|
||||||
|
pos = (self.size[0] - ypos - size[0], ypos)
|
||||||
|
icon = Image.open(wpath + weathericons[forecast.icon] + ".jpeg")
|
||||||
|
resized_icon = icon.resize(size, resample=Image.LANCZOS)
|
||||||
|
self.draw(resized_icon, pos)
|
||||||
|
|
||||||
def __finish_image__ (self):
|
def __finish_image__ (self):
|
||||||
self.__draw_day_number__()
|
self.__draw_day_number__()
|
||||||
self.__draw_weekday__()
|
self.__draw_weekday__()
|
||||||
|
|
Loading…
Reference in a new issue