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