utils.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from contextlib import contextmanager
  2. from datetime import datetime
  3. from extensions.ext_database import db
  4. from models.model import Message
  5. def filter_none_values(data: dict):
  6. new_data = {}
  7. for key, value in data.items():
  8. if value is None:
  9. continue
  10. if isinstance(value, datetime):
  11. new_data[key] = value.isoformat()
  12. else:
  13. new_data[key] = value
  14. return new_data
  15. def get_message_data(message_id):
  16. return db.session.query(Message).filter(Message.id == message_id).first()
  17. @contextmanager
  18. def measure_time():
  19. timing_info = {"start": datetime.now(), "end": None}
  20. try:
  21. yield timing_info
  22. finally:
  23. timing_info["end"] = datetime.now()
  24. def replace_text_with_content(data):
  25. if isinstance(data, dict):
  26. new_data = {}
  27. for key, value in data.items():
  28. if key == "text":
  29. new_data["content"] = value
  30. else:
  31. new_data[key] = replace_text_with_content(value)
  32. return new_data
  33. elif isinstance(data, list):
  34. return [replace_text_with_content(item) for item in data]
  35. else:
  36. return data