add reminder functionality
This commit is contained in:
@@ -15,16 +15,18 @@ import caldav
|
|||||||
|
|
||||||
class CaldavHandler:
|
class CaldavHandler:
|
||||||
def get_config(self, path):
|
def get_config(self, path):
|
||||||
with open("./config.json") as f:
|
with open(path) as f:
|
||||||
return json.load(f)
|
return json.load(f)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._config_path = "./config.json"
|
self._config_path = "./config.json"
|
||||||
|
self._event_reminder_path = "./event_reminders.json"
|
||||||
|
|
||||||
if not exists(self._config_path):
|
if not exists(self._config_path):
|
||||||
print("No config file found. Aborting.")
|
print("No config file found. Aborting.")
|
||||||
|
|
||||||
self._config = self.get_config(self._config_path)
|
self._config = self.get_config(self._config_path)
|
||||||
|
self._event_reminder_config = self.get_config(self._event_reminder_path)
|
||||||
self._caldavclient = caldav.DAVClient(self._config["caldav"]["url"],
|
self._caldavclient = caldav.DAVClient(self._config["caldav"]["url"],
|
||||||
username=self._config["caldav"]["username"],
|
username=self._config["caldav"]["username"],
|
||||||
password=self._config["caldav"]["password"])
|
password=self._config["caldav"]["password"])
|
||||||
@@ -99,6 +101,45 @@ class CaldavHandler:
|
|||||||
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=7))
|
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=7))
|
||||||
return self.send_events(events, 7)
|
return self.send_events(events, 7)
|
||||||
|
|
||||||
|
def time_to_remind(self, event_name, days_to_remind):
|
||||||
|
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=days_to_remind + 1))
|
||||||
|
datetime_to_remind = datetime.date.today() + datetime.timedelta(days=days_to_remind)
|
||||||
|
|
||||||
|
datetime_to_remind = datetime_to_remind.strftime("%x")
|
||||||
|
print(datetime_to_remind)
|
||||||
|
|
||||||
|
#create a map where each day is a key and list of events are the values
|
||||||
|
event_map = self.get_event_map(events, days_to_remind + 1)
|
||||||
|
|
||||||
|
print(datetime_to_remind)
|
||||||
|
print(event_map)
|
||||||
|
if datetime_to_remind not in event_map:
|
||||||
|
return False
|
||||||
|
|
||||||
|
for event_name in event_map[datetime_to_remind]:
|
||||||
|
print("found event!")
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def send_reminders(self):
|
||||||
|
print(self._event_reminder_config)
|
||||||
|
|
||||||
|
result = []
|
||||||
|
for event_name in self._event_reminder_config:
|
||||||
|
print("iterating event configs")
|
||||||
|
print(event_name)
|
||||||
|
days = self._event_reminder_config[event_name]["days"]
|
||||||
|
print(days)
|
||||||
|
if not self.time_to_remind(event_name, days):
|
||||||
|
continue
|
||||||
|
reminder_message = self._event_reminder_config[event_name]["message"]
|
||||||
|
result.append(reminder_message)
|
||||||
|
print(reminder_message)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def print_today(self):
|
def print_today(self):
|
||||||
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=1))
|
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=1))
|
||||||
|
#self.send_reminders()
|
||||||
return self.send_events(events, 1)
|
return self.send_events(events, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user