added changes from #194

This commit is contained in:
Ace 2023-02-14 22:58:32 +01:00 committed by GitHub
parent 420ab16ac8
commit d072e86599
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -132,8 +132,15 @@ class Weather(inkycal_module):
lunations = dec("0.20439731") + (days * dec("0.03386319269"))
position = lunations % dec(1)
index = math.floor((position * dec(8)) + dec("0.5"))
return {0: '\uf095', 1: '\uf099', 2: '\uf09c', 3: '\uf0a0',
4: '\uf0a3', 5: '\uf0a7', 6: '\uf0aa', 7: '\uf0ae'}[int(index) & 7]
return {
0: '\uf095',
1: '\uf099',
2: '\uf09c',
3: '\uf0a0',
4: '\uf0a3',
5: '\uf0a7',
6: '\uf0aa',
7: '\uf0ae'}[int(index) & 7]
def is_negative(temp):
"""Check if temp is below freezing point of water (0°C/30°F)
@ -148,12 +155,24 @@ class Weather(inkycal_module):
# Lookup-table for weather icons and weather codes
weathericons = {
'01d': '\uf00d', '02d': '\uf002', '03d': '\uf013',
'04d': '\uf012', '09d': '\uf01a ', '10d': '\uf019',
'11d': '\uf01e', '13d': '\uf01b', '50d': '\uf014',
'01n': '\uf02e', '02n': '\uf013', '03n': '\uf013',
'04n': '\uf013', '09n': '\uf037', '10n': '\uf036',
'11n': '\uf03b', '13n': '\uf038', '50n': '\uf023'
'01d': '\uf00d',
'02d': '\uf002',
'03d': '\uf013',
'04d': '\uf012',
'09d': '\uf01a',
'10d': '\uf019',
'11d': '\uf01e',
'13d': '\uf01b',
'50d': '\uf014',
'01n': '\uf02e',
'02n': '\uf013',
'03n': '\uf013',
'04n': '\uf013',
'09n': '\uf037',
'10n': '\uf036',
'11n': '\uf03b',
'13n': '\uf038',
'50n': '\uf023'
}
def draw_icon(image, xy, box_size, icon, rotation=None):
@ -163,6 +182,43 @@ class Weather(inkycal_module):
box_size = size of text-box -> (width,height)
icon = icon-unicode, looks this up in weathericons dictionary
"""
icon_size_correction = {
'\uf00d': 10 / 60,
'\uf02e': 51 / 150,
'\uf019': 21 / 60,
'\uf01b': 21 / 60,
'\uf0b5': 51 / 150,
'\uf050': 25 / 60,
'\uf013': 51 / 150,
'\uf002': 0,
'\uf031': 29 / 100,
'\uf015': 21 / 60,
'\uf01e': 52 / 150,
'\uf056': 51 / 150,
'\uf053': 14 / 150,
'\uf012': 51 / 150,
'\uf01a': 51 / 150,
'\uf014': 51 / 150,
'\uf037': 42 / 150,
'\uf036': 42 / 150,
'\uf03b': 42 / 150,
'\uf038': 42 / 150,
'\uf023': 35 / 150,
'\uf07a': 35 / 150,
'\uf051': 18 / 150,
'\uf052': 18 / 150,
'\uf0aa': 0,
'\uf095': 0,
'\uf099': 0,
'\uf09c': 0,
'\uf0a0': 0,
'\uf0a3': 0,
'\uf0a7': 0,
'\uf0aa': 0,
'\uf0ae': 0
}
x, y = xy
box_width, box_height = box_size
text = icon
@ -183,7 +239,7 @@ class Weather(inkycal_module):
# Align text to desired position
x = int((box_width / 2) - (text_width / 2))
y = int((box_height / 2) - (text_height / 2))
y = int((box_height / 2) - (text_height / 2) - (icon_size_correction[icon] * size) / 2)
# Draw the text in the text-box
draw = ImageDraw.Draw(image)