Compare commits

...

2 Commits

View File

@ -1,3 +1,4 @@
from collections.abc import Iterable
from datetime import date, datetime, timedelta, timezone
from functools import reduce
import hashlib
@ -77,8 +78,25 @@ class IcalModule:
elif "SA" in rrule["BYDAY"]:
weekday = 5
start = next_weekday(today, weekday).replace(hour=start.hour, minute=start.minute, second=start.second, microsecond=start.microsecond)
end = next_weekday(today, weekday).replace(hour=end.hour, minute=end.minute, second=end.second, microsecond=end.microsecond)
diff = end - start
if isinstance(start, datetime):
start = next_weekday(today, weekday).replace(hour=start.hour, minute=start.minute, second=start.second, microsecond=start.microsecond)
else:
start = next_weekday(todayd, weekday)
end = start + diff
exclusions = []
if "EXDATE" in component:
exdates = component.decoded("EXDATE")
if isinstance(exdates, Iterable):
for exdate in exdates:
exclusions.append(exdate.dts[0].dt)
else:
exclusions.append(exdates.dts[0].dt)
while start in exclusions:
start += timedelta(days=7)
component["DTSTART"] = vDDDTypes(start)
component["DTEND"] = vDDDTypes(end)