add reminder functionality
This commit is contained in:
@@ -15,16 +15,18 @@ import caldav
|
||||
|
||||
class CaldavHandler:
|
||||
def get_config(self, path):
|
||||
with open("./config.json") as f:
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
||||
|
||||
def __init__(self):
|
||||
self._config_path = "./config.json"
|
||||
self._event_reminder_path = "./event_reminders.json"
|
||||
|
||||
if not exists(self._config_path):
|
||||
print("No config file found. Aborting.")
|
||||
|
||||
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"],
|
||||
username=self._config["caldav"]["username"],
|
||||
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))
|
||||
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):
|
||||
events = self.get_events(datetime.date.today(), datetime.date.today() + datetime.timedelta(days=1))
|
||||
#self.send_reminders()
|
||||
return self.send_events(events, 1)
|
||||
|
||||
Reference in New Issue
Block a user