utils.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. print(f"Execution time: {timing_info['end'] - timing_info['start']}")
  22. def replace_text_with_content(data):
  23. if isinstance(data, dict):
  24. new_data = {}
  25. for key, value in data.items():
  26. if key == 'text':
  27. new_data['content'] = value
  28. else:
  29. new_data[key] = replace_text_with_content(value)
  30. return new_data
  31. elif isinstance(data, list):
  32. return [replace_text_with_content(item) for item in data]
  33. else:
  34. return data