First off, I just want to say thanks a lot for your time & patience in helping me to understand this, I really appreciate it.
So I got it to run, but there are still a couple of things I'm not sure about.
(1) Why do all the reminders popup when they haven't reached their scheduled/set time yet?
Ex: If you look at the output, the current time was 11:23 AM but all the reminders popped up even though they were set at 11:25, 11:28, & 11:30.
Is there a way to get it so nothing would have popped up until 11:25 (Then only the "Test 1" reminder should pop up because it's scheduled for 11:25, not the rest of them)?
(2) How do I get the AM/PM to display? I know the "%p" is supposed to do it in:
Thanks again.
My Output from (Test.py -> The code shown below):
So I got it to run, but there are still a couple of things I'm not sure about.
(1) Why do all the reminders popup when they haven't reached their scheduled/set time yet?
Ex: If you look at the output, the current time was 11:23 AM but all the reminders popped up even though they were set at 11:25, 11:28, & 11:30.
Is there a way to get it so nothing would have popped up until 11:25 (Then only the "Test 1" reminder should pop up because it's scheduled for 11:25, not the rest of them)?
(2) How do I get the AM/PM to display? I know the "%p" is supposed to do it in:
"%Y-%m-%d %I:%M %p"
but it doesn't show.Thanks again.
My Output from (Test.py -> The code shown below):
Output:Reminders in Database: ('Test 1', '2022-10-15 11:25:00')
Reminders in Database: ('Test 2', '2022-10-15 11:28:00')
Reminders in Database: ('Test 3', '2022-10-15 11:30:00')
Scheduled Time: ('2022-10-15 11:25:00',)
Scheduled Time: ('2022-10-15 11:28:00',)
Scheduled Time: ('2022-10-15 11:30:00',)
Current Date Time: 2022-10-15 11:23:00
Reminders Popup: ('2022-10-15 11:25:00',): Test 1
Reminders Popup: ('2022-10-15 11:28:00',): Test 2
Reminders Popup: ('2022-10-15 11:30:00',): Test 3
The code I have now (Test.py -> Not link to my main code yet):import sched import time import sqlite3 from BX_External_Functions import checkForReminders, reminderPopup from BX_Constants import MainDatabase, currentdate, currentTime #Create schedule scheduler = sched.scheduler(time.time, time.sleep) #Read in reminders from database #For each reminder, add an event to the schedule (enter/enterabs) connection = sqlite3.connect(MainDatabase) for row in connection.execute("SELECT Reminder, DateTime FROM Reminders"): print("Reminders in Database: ", row) connection.close() print("\n") connection = sqlite3.connect(MainDatabase) for row in connection.execute("SELECT DateTime FROM Reminders"): scheduled_time = row print("Scheduled Time: ", scheduled_time) connection.close() import datetime currentdate = datetime.date.today() from datetime import datetime timeNow = datetime.now() currentTime = timeNow.strftime("%I:%M %p") Current_DateTime = datetime.strptime(f"{currentdate} {currentTime}", "%Y-%m-%d %I:%M %p") print("\nCurrent Date Time: ", Current_DateTime ,"\n") # #If a new reminder is created, add it to the database & add an event to the schedule # scheduler.enterabs() # #Inside Baxter's while True loop, call schedule.run(blocking=False) # print ('Checking for reminders...') # scheduler.run(False) def schedule_reminder(reminder): """Schedule a reminder""" scheduler.enterabs( time=Current_DateTime.timestamp(), priority=1, action=send_reminder, argument=(reminder, scheduled_time)) def send_reminder(Reminder, scheduled_time): """Function called when time to send reminder""" print(f"Reminders Popup: {scheduled_time}: {Reminder}") #Read in reminders from database connection = sqlite3.connect(MainDatabase) for reminder in connection.execute("SELECT Reminder FROM Reminders"): schedule_reminder(*reminder) connection.close() # somewhere later in your main code while True: scheduler.run(False) # do other stuffAnd this is how my Reminders Table/Database is set up:
def createBXDatabase(): #Create a database (BX_Database.db) connection = sqlite3.connect("BX_Database.db") cursor = connection.cursor() #-------------------------------------------- # Reminders Table #-------------------------------------------- remindersTable = """CREATE TABLE IF NOT EXISTS Reminders (ID INTEGER PRIMARY KEY AUTOINCREMENT, Reminder TEXT, DateTime TEXT, DateAdded datetime default current_timestamp);""" #Execute the creation of the table cursor.execute(remindersTable) #Commit the changes connection.commit() #Close the connection connection.close()