From b9341d97073d99f07f5cb7286fc0bc5db44728e0 Mon Sep 17 00:00:00 2001 From: Kellermann Date: Tue, 31 May 2022 09:23:43 +0200 Subject: [PATCH] Daily reminder to play --- source/daily_challenge.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/source/daily_challenge.py b/source/daily_challenge.py index 5386f25..37dec12 100644 --- a/source/daily_challenge.py +++ b/source/daily_challenge.py @@ -20,6 +20,7 @@ from db import User, session, Product, Score CHALLENGE_READY = "0 8 * * *" CHALLENGE_OVER = "0 22 * * *" +USER_REMINDER = "0 19 * * *" GET_NEW_PRODUCT = "0 0 * * *" def start_challenges(): @@ -31,6 +32,8 @@ def start_challenges(): new_product_split = GET_NEW_PRODUCT.split(" ") + reminder_split = USER_REMINDER.split(" ") + my_scheduler = BackgroundScheduler() # Sending the current event at the given crontags @@ -60,12 +63,34 @@ def start_challenges(): , month= new_product_split[3]\ , day=new_product_split[2]) + my_scheduler.add_job(remind_users, 'cron'\ + ,day_of_week = reminder_split[4] \ + , hour= reminder_split[1] \ + , minute = reminder_split[0]\ + , month= reminder_split[3]\ + , day=reminder_split[2]) + my_scheduler.start() time.sleep( 3600 ) my_scheduler.shutdown() start_challenges() +def remind_users(): + all_users = pandas.DataFrame(session.query(User.telegram_id).all()) + guessed_today = False + + for user in all_users: + guessed_today = False + user_guesses = session.query(Score).filter(Score.telegram_id == user).all() + for guesses in user_guesses: + if guesses.date.date() == dt.datetime.now().date(): + guessed_today = True + break + if not guessed_today: + bot.send_message(chat_id=int(user), text="REMINDER: You haven't guessed today!\n"\ + "There are 3 Hours left. Good Luck :)") + def set_todays_product(): """Get a random product from the database