From 3f54ab362e0674ede70466a76b3246599a59925f Mon Sep 17 00:00:00 2001 From: kalipso Date: Mon, 13 Feb 2023 16:07:35 +0100 Subject: [PATCH] add bad event reminder functions --- event_reminders.json | 15 +++++++++++ my_project_name/caldav_handler.py | 11 +++++--- my_project_name/main.py | 44 +++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 event_reminders.json diff --git a/event_reminders.json b/event_reminders.json new file mode 100644 index 0000000..5b2e132 --- /dev/null +++ b/event_reminders.json @@ -0,0 +1,15 @@ +{ + "Orga & Finanzen Plenum": { + "days": 1, + "message": "hey there everyoneπŸ¦“ hope you are all. okayπŸ’– who is able to attend plenary tomorrow? please give thumbs up or down to know πŸ‘ŽπŸ½πŸ‘πŸ½" + }, + "Open Library": { + "days": 1, + "message": "Who is able to attend open library on tuesday? please give thumbs up or down to know πŸ‘ŽπŸ½πŸ‘πŸ½. Also fill out the pad please <3" + }, + "Malo Gesamtplenum": { + "days": 3, + "message": "Who is able to attend Gesamtplenum?? please give thumbs up or down to know πŸ‘ŽπŸ½πŸ‘πŸ½." + } +} + diff --git a/my_project_name/caldav_handler.py b/my_project_name/caldav_handler.py index fb86be8..319515e 100644 --- a/my_project_name/caldav_handler.py +++ b/my_project_name/caldav_handler.py @@ -116,9 +116,14 @@ class CaldavHandler: if datetime_to_remind not in event_map: return False - for event_name in event_map[datetime_to_remind]: - print("found event!") - return True + for real_event_name in event_map[datetime_to_remind]: + print("real_ev_name:") + print(real_event_name) + print("ev_name") + print(event_name) + if event_name in real_event_name: + print("found event!") + return True return False diff --git a/my_project_name/main.py b/my_project_name/main.py index e2570d5..c921dc2 100644 --- a/my_project_name/main.py +++ b/my_project_name/main.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import asyncio import logging +import threading import sys from time import sleep @@ -16,12 +17,40 @@ from nio import ( UnknownEvent, ) +from my_project_name.chat_functions import react_to_event, send_text_to_room +from my_project_name.caldav_handler import CaldavHandler + from my_project_name.callbacks import Callbacks from my_project_name.config import Config from my_project_name.storage import Storage logger = logging.getLogger(__name__) +from datetime import datetime, time + +def is_time_between(begin_time, end_time, check_time=None): + # If check time is not given, default to current UTC time + check_time = check_time or datetime.utcnow().time() + if begin_time < end_time: + return check_time >= begin_time and check_time <= end_time + else: # crosses midnight + return check_time >= begin_time or check_time <= end_time + +async def foo(client): + ShouldSendReminder = True + while True: + await client.sync() + if is_time_between(time(10,00), time(11,10)): + if ShouldSendReminder: + handler = CaldavHandler() + messages = handler.send_reminders() + for message in messages: + await send_text_to_room(client, "!aRFGSGKGeaBxiEfDMC:matrix.org", message) + ShouldSendReminder = False + else: + ShouldSendReminder = True + sleep(20) + async def main(): """The first function that is run when starting the bot""" @@ -103,6 +132,21 @@ async def main(): # Login succeeded! logger.info(f"Logged in as {config.user_id}") + await client.join("!aRFGSGKGeaBxiEfDMC:matrix.org") + print("joined room") + sleep(5) + await client.sync() + print(client.rooms) + + #await client.room_send( + # # Watch out! If you join an old room you'll see lots of old messages + # room_id="!zKwFlsxXpmVhBMdOBa:matrix.org", + # message_type="m.room.message", + # content={"msgtype": "m.text", "body": "Hello world!"}, + # ) + #t = threading.Thread(target = foo, args =(client, )) + #t.start() + await foo(client) await client.sync_forever(timeout=30000, full_state=True) except (ClientConnectionError, ServerDisconnectedError):