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