archive.py 1.7 KB

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