From c6aef69cafdceb6894a52dba2df1f18e68319fa2 Mon Sep 17 00:00:00 2001 From: Macbook Date: Sat, 20 Dec 2025 13:37:21 +0300 Subject: [PATCH] fix scheduler, add logging for grt free slots --- app.py | 2 ++ app_context.py | 7 +++++-- extensions.py | 2 ++ medods_handler.py | 7 +++++++ 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 extensions.py diff --git a/app.py b/app.py index 128911c..bb94fe4 100644 --- a/app.py +++ b/app.py @@ -11,6 +11,8 @@ import os app = Flask(__name__) app.config.from_object(Config) +flask_app = app + db.init_app(app) os.makedirs("logs", exist_ok=True) diff --git a/app_context.py b/app_context.py index a091f13..ffe0882 100644 --- a/app_context.py +++ b/app_context.py @@ -1,9 +1,12 @@ -from flask import current_app +from extensions import flask_app def with_app_context(func): def wrapper(*args, **kwargs): - with current_app.app_context(): + if flask_app is None: + raise RuntimeError("Flask app is not initialized") + + with flask_app.app_context(): return func(*args, **kwargs) return wrapper diff --git a/extensions.py b/extensions.py new file mode 100644 index 0000000..f2d17d3 --- /dev/null +++ b/extensions.py @@ -0,0 +1,2 @@ +# extensions.py +flask_app = None diff --git a/medods_handler.py b/medods_handler.py index 2c37508..158bd50 100644 --- a/medods_handler.py +++ b/medods_handler.py @@ -112,15 +112,20 @@ def getFreeSlots(vkPost) -> dict: url = medodsApi.url + requestParams.url_path + logger.info(url) + logger.info(json) response = send_request( requestParams.method, url, json, ) if not response: + logger.error("Ответ не получен") return {} slotsDataFull = response.json() + logger.info(slotsDataFull) if len(slotsDataFull.keys()) == 0: + logger.error("Нет свободных приемов") return {} firstKey = list(slotsDataFull.keys())[0] slotsData = {"date": firstKey, "slots": slotsDataFull.get(firstKey)} @@ -134,10 +139,12 @@ def setDynamicText(): from app import logger try: + logger.info("Получение информации о посте") vkPost = VkPost.query.first() if not vkPost: logger.error("Информация для размещения поста не найдена") return vkPost + logger.info("Получение информации о свободных приемах") freeSlots = getFreeSlots(vkPost) if len(freeSlots.keys()) == 0: logger.error("Нет свободных приемов")