utils.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. for key, value in data.items():
  7. if value is None:
  8. continue
  9. if isinstance(value, datetime):
  10. data[key] = value.isoformat()
  11. return {key: value for key, value in data.items() if value is not None}
  12. def get_message_data(message_id):
  13. return db.session.query(Message).filter(Message.id == message_id).first()
  14. @contextmanager
  15. def measure_time():
  16. timing_info = {'start': datetime.now(), 'end': None}
  17. try:
  18. yield timing_info
  19. finally:
  20. timing_info['end'] = datetime.now()
  21. def replace_text_with_content(data):
  22. if isinstance(data, dict):
  23. new_data = {}
  24. for key, value in data.items():
  25. if key == 'text':
  26. new_data['content'] = value
  27. else:
  28. new_data[key] = replace_text_with_content(value)
  29. return new_data
  30. elif isinstance(data, list):
  31. return [replace_text_with_content(item) for item in data]
  32. else:
  33. return data