from contextlib import contextmanager from datetime import datetime from extensions.ext_database import db from models.model import Message def filter_none_values(data: dict): new_data = {} for key, value in data.items(): if value is None: continue if isinstance(value, datetime): new_data[key] = value.isoformat() else: new_data[key] = value return new_data def get_message_data(message_id): return db.session.query(Message).filter(Message.id == message_id).first() @contextmanager def measure_time(): timing_info = {"start": datetime.now(), "end": None} try: yield timing_info finally: timing_info["end"] = datetime.now() def replace_text_with_content(data): if isinstance(data, dict): new_data = {} for key, value in data.items(): if key == "text": new_data["content"] = value else: new_data[key] = replace_text_with_content(value) return new_data elif isinstance(data, list): return [replace_text_with_content(item) for item in data] else: return data