Skip to content

Commit a0939cc

Browse files
committed
feat: vis dato for hendelser mer enn 1 uke fram
1 parent f660d00 commit a0939cc

File tree

6 files changed

+114
-30
lines changed

6 files changed

+114
-30
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
__pycache__/*
2+
**/__pycache__/*

.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"python.testing.pytestArgs": [
3+
"tests"
4+
],
5+
"python.testing.unittestEnabled": false,
6+
"python.testing.pytestEnabled": true
7+
}

dateHandling.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import datetime
2+
3+
def isNowInTimePeriod(startTime, endTime, nowTime):
4+
if startTime < endTime:
5+
return nowTime >= startTime and nowTime <= endTime
6+
else:
7+
#Over midnight:
8+
return nowTime >= startTime or nowTime <= endTime
9+
10+
def dayText(event, today=datetime.datetime.today()):
11+
12+
weekday = ['Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag','Lørdag','Søndag']
13+
text = ''
14+
dt = datetime.datetime.fromisoformat(event['start'].get('dateTime', event['start'].get('date')))
15+
# today = datetime.datetime.today()
16+
tomorrow = today + datetime.timedelta(1)
17+
delta = dt - today
18+
19+
if dt.date() == today.date() :
20+
text = text + 'I dag: '
21+
elif dt.date() == tomorrow.date() :
22+
text = text + 'I morgen: '
23+
elif delta.days > 6:
24+
text = text + weekday[dt.weekday()] + ' ' + dt.strftime('%d/%m') + ': '
25+
else :
26+
text = text + weekday[dt.weekday()] + ': '
27+
28+
text = text + event['summary']
29+
30+
if dt.hour > 0:
31+
text = text + dt.strftime(' kl. %H:%M')
32+
33+
return text

middag.py

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,12 @@
1717
from luma.core.legacy.font import proportional, CP437_FONT, TINY_FONT, SINCLAIR_FONT, LCD_FONT
1818
from backports.datetime_fromisoformat import MonkeyPatch
1919
from pathlib import Path
20+
from dateHandling import isNowInTimePeriod, dayText
2021

2122
MonkeyPatch.patch_fromisoformat()
2223
# If modifying these scopes, delete the file token.pickle.
2324
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
2425

25-
def isNowInTimePeriod(startTime, endTime, nowTime):
26-
if startTime < endTime:
27-
return nowTime >= startTime and nowTime <= endTime
28-
else:
29-
#Over midnight:
30-
return nowTime >= startTime or nowTime <= endTime
31-
32-
def dayText(event):
33-
34-
weekday = ['Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag','Lørdag','Søndag']
35-
text = ''
36-
dt = datetime.datetime.fromisoformat(event['start'].get('dateTime', event['start'].get('date')))
37-
today = datetime.datetime.today()
38-
tomorrow = today + datetime.timedelta(1)
39-
40-
if dt.date() == today.date() :
41-
text = text + 'I dag: '
42-
elif dt.date() == tomorrow.date() :
43-
text = text + 'I morgen: '
44-
else :
45-
text = text + weekday[dt.weekday()] + ': '
46-
47-
text = text + event['summary']
48-
49-
if dt.hour > 0:
50-
text = text + dt.strftime(' kl. %H:%M')
51-
52-
return text
5326

5427
def main(argv):
5528
loop = None
@@ -64,7 +37,7 @@ def main(argv):
6437
sys.exit()
6538
elif opt in ("-m", "--mode"):
6639
if arg in ('loop'):
67-
loop = True
40+
loop = True
6841

6942
print (loop)
7043
"""Shows basic usage of the Google Calendar API.
@@ -138,4 +111,4 @@ def main(argv):
138111
time.sleep(2)
139112

140113
if __name__ == '__main__':
141-
main(sys.argv[1:])
114+
main(sys.argv[1:])

tests/__init__.py

Whitespace-only changes.

tests/dateHandling_test.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import datetime
2+
3+
from dateHandling import dayText, isNowInTimePeriod
4+
5+
def test_isNowInTimePeriod():
6+
startTime = datetime.datetime.strptime("2023-10-22T10:12", "%Y-%m-%dT%H:%M")
7+
endTime = datetime.datetime.strptime("2023-10-25T10:12", "%Y-%m-%dT%H:%M")
8+
today = datetime.datetime.strptime("2023-10-23T10:12", "%Y-%m-%dT%H:%M")
9+
before = datetime.datetime.strptime("2023-10-22T10:11", "%Y-%m-%dT%H:%M")
10+
after = datetime.datetime.strptime("2023-10-25T10:13", "%Y-%m-%dT%H:%M")
11+
12+
assert isNowInTimePeriod(startTime, endTime, today) == True
13+
assert isNowInTimePeriod(startTime, endTime, before) == False
14+
assert isNowInTimePeriod(startTime, endTime, after) == False
15+
16+
17+
today = datetime.datetime.strptime("2023-10-23T10:12", "%Y-%m-%dT%H:%M")
18+
19+
def test_dayText_tomorrow():
20+
event = {
21+
'start': {
22+
'date': '2023-10-24'
23+
},
24+
'summary': 'Event summary'
25+
}
26+
27+
assert dayText(event, today) == "I morgen: Event summary"
28+
29+
def test_dayText_today():
30+
event = {
31+
'start': {
32+
'date': '2023-10-23'
33+
},
34+
'summary': 'Event summary'
35+
}
36+
37+
assert dayText(event, today) == "I dag: Event summary"
38+
39+
def test_dayText_today_with_time():
40+
event = {
41+
'start': {
42+
'date': '2023-10-23',
43+
'dateTime': '2023-10-23T10:22:18'
44+
},
45+
'summary': 'Event summary'
46+
}
47+
48+
assert dayText(event, today) == "I dag: Event summary kl. 10:22"
49+
50+
def test_dayText_friday():
51+
event = {
52+
'start': {
53+
'date': '2023-10-27'
54+
},
55+
'summary': 'Event summary'
56+
}
57+
58+
assert dayText(event, today) == "Fredag: Event summary"
59+
60+
def test_dayText_friday_plus_one_week():
61+
event = {
62+
'start': {
63+
'date': '2023-11-03'
64+
},
65+
'summary': 'Event summary'
66+
}
67+
68+
assert dayText(event, today) == "Fredag 03/11: Event summary"
69+

0 commit comments

Comments
 (0)