msg.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from typing import Optional
  2. from sql.msg import read_msg_list, get_msg_count, create_msg, read_msg, get_user_msg_count, delete_msg
  3. import object.user
  4. def load_message_list(limit: Optional[int] = None, offset: Optional[int] = None, show_secret: bool = False):
  5. ret = []
  6. for i in read_msg_list(limit=limit, offset=offset, show_secret=show_secret):
  7. ret.append(Message(i))
  8. return ret
  9. class _Message:
  10. @staticmethod
  11. def get_msg_count(auth: "object.user" = None):
  12. if auth is None:
  13. return get_msg_count()
  14. return get_user_msg_count(auth.id)
  15. @staticmethod
  16. def create(auth: "object.user.User", content, secret: bool = False):
  17. ret = create_msg(auth.id, content, secret)
  18. if ret is not None:
  19. return Message(ret)
  20. return None
  21. class Message(_Message):
  22. def __init__(self, msg_id):
  23. self.id = msg_id
  24. @property
  25. def info(self):
  26. return read_msg(self.id)
  27. @property
  28. def auth(self):
  29. return object.user.User(self.info[0])
  30. @property
  31. def content(self):
  32. return self.info[1]
  33. @property
  34. def update_time(self):
  35. return self.info[2]
  36. @property
  37. def secret(self):
  38. return self.info[3]
  39. @property
  40. def is_delete(self):
  41. return not self.auth.is_authenticated and len(self.content) != 0
  42. def delete(self):
  43. return delete_msg(self.id)