| 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 |
|
|