From e2d506e62971194cdefdc6dcda09a199bd8b7067 Mon Sep 17 00:00:00 2001 From: Florian Kellermann Date: Mon, 9 May 2022 16:01:03 +0200 Subject: [PATCH] New status, still need to get all_users to work --- requirements.txt | 3 +- source/bot.py | 5 +-- source/daily_challenge.py | 77 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 source/daily_challenge.py diff --git a/requirements.txt b/requirements.txt index f51e33a..ce133da 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,5 @@ APScheduler~=3.9.1 SQLAlchemy~=1.4.36 pymysql==1.0.2 requests~=2.27.1 -beautifulsoup4~=4.11.1 \ No newline at end of file +beautifulsoup4~=4.11.1 +pandas~=1.4.1 \ No newline at end of file diff --git a/source/bot.py b/source/bot.py index 43cd6fc..17db72e 100644 --- a/source/bot.py +++ b/source/bot.py @@ -23,9 +23,8 @@ from random import randrange from db import User, session, Product from fetcher import * -from source.db import Score +from db import Score -# from apscheduler.schedulers.background import BackgroundScheduler load_dotenv(dotenv_path='.env') # load environment variables @@ -370,7 +369,7 @@ def query_text(inline_query): def main_loop(): - # nur zum ärgern + # nur zum ärgern -> sympathisch :D """main loop for bot Args: diff --git a/source/daily_challenge.py b/source/daily_challenge.py new file mode 100644 index 0000000..18aea85 --- /dev/null +++ b/source/daily_challenge.py @@ -0,0 +1,77 @@ +""" +script for sending daily challenges +""" +__author__ = "Florian Kellermann, Linus Eickhoff, Florian Kaiser" +__date__ = "09.05.2022" +__version__ = "0.0.1" +__license__ = "None" + + +import sys +from apscheduler.schedulers.background import BackgroundScheduler +import time + +from bot import bot +from db import User, session, Product +import pandas + + +CHALLENGE_READY = "0 10 * * *" +CHALLENGE_OVER = "0 20 * * *" + +def start_challenges(): + """Start the daily challenges, read the crontag codes and send messages + """ + ready_split = CHALLENGE_READY.split(" ") + + over_split = CHALLENGE_OVER.split(" ") + + my_scheduler = BackgroundScheduler() + + my_scheduler.add_job(send_current_event, 'cron'\ + ,day_of_week = ready_split[4] , hour= ready_split[1] , minute = ready_split[0], month= ready_split[3] , day=ready_split[2]\ + ,args = ("start", )) + + my_scheduler.add_job(send_current_event, 'cron'\ + ,day_of_week = over_split[4] , hour= over_split[1] , minute = over_split[0], month= over_split[3] , day=over_split[2]\ + ,args = ("over", )) + + my_scheduler.start() + + time.sleep( 3600 ) + my_scheduler.shutdown() + start_challenges() + + + +def send_current_event(str_event): + """Sending the current event at the given crontabs + + Args: + str_event (String): event to send + """ + all_users = pandas.DataFrame(session.query(User).all()) + + user_ids = all_users.query["telegram_id"] + + for element in all_users: + print("tbd") + + if str_event == "start": + print("tbd") + elif str_event == "over": + print("tbd") + else: + sys.exit(-1) + + +if __name__ == "__main__": + try: + test = pandas.DataFrame(session.query(User).all()) + print(test) + start_challenges() + sys.exit(-1) + except KeyboardInterrupt: + print("Ending") + sys.exit(-1) + \ No newline at end of file