archive.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from collections import namedtuple
  2. from sql.archive import (read_archive,
  3. create_archive,
  4. get_archive_list,
  5. get_blog_archive,
  6. delete_archive,
  7. add_blog_to_archive,
  8. sub_blog_from_archive)
  9. class _Archive:
  10. archive_tuple = namedtuple('Archive', 'name describe')
  11. @staticmethod
  12. def get_archive_list():
  13. return get_archive_list()
  14. @staticmethod
  15. def get_blog_archive(blog_id: int):
  16. archive_list = []
  17. for i in get_blog_archive(blog_id):
  18. archive_list.append(Archive(i))
  19. return archive_list
  20. @staticmethod
  21. def create(name, describe):
  22. ret = create_archive(name, describe)
  23. if ret is None:
  24. return None
  25. return Archive(ret)
  26. class Archive(_Archive):
  27. def __init__(self, archive_id):
  28. self.id = archive_id
  29. @property
  30. def info(self):
  31. return Archive.archive_tuple(*read_archive(self.id))
  32. @property
  33. def name(self):
  34. return self.info.name
  35. @property
  36. def describe(self):
  37. return self.info.describe
  38. def is_delete(self):
  39. return len(self.name) != 0
  40. def delete(self):
  41. return delete_archive(self.id)
  42. def add_blog(self, blog_id: int):
  43. add_blog_to_archive(blog_id, self.id)
  44. def sub_blog(self, blog_id: int):
  45. sub_blog_from_archive(blog_id, self.id)