archive.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from sql import db
  2. from typing import Optional
  3. def create_archive(name: str, describe: str):
  4. """ 创建新归档 """
  5. name = name.replace("'", "''")
  6. describe = describe.replace("'", "''")
  7. cur = db.insert(table="archive",
  8. columns=["Name", "DescribeText"],
  9. values=f"'{name}', '{describe}'")
  10. if cur is None or cur.rowcount == 0:
  11. return False
  12. return True
  13. def read_archive(blog_id: int):
  14. """ 获取文章的归档 """
  15. cur = db.search(columns=["ArchiveID", "ArchiveName", "DescribeText"], table="blog_archive_with_name",
  16. where=f"BlogID={blog_id}")
  17. if cur is None or cur.rowcount == 0:
  18. return []
  19. return cur.fetchall()
  20. def delete_archive(archive_id: int):
  21. cur = db.delete(table="blog_archive", where=f"ArchiveID={archive_id}")
  22. if cur is None:
  23. return False
  24. cur = db.delete(table="archive", where=f"ID={archive_id}")
  25. if cur is None or cur.rowcount == 0:
  26. return False
  27. return True
  28. def get_archive_list(limit: Optional[int] = None, offset: Optional[int] = None):
  29. """ 获取归档列表 """
  30. cur = db.search(columns=["ID", "Name", "DescribeText", "Count"], table="archive_with_count",
  31. limit=limit,
  32. offset=offset)
  33. if cur is None or cur.rowcount == 0:
  34. return []
  35. return cur.fetchall()
  36. def get_archive_name_by_id(archive_id: int):
  37. """ 获取归档 ID """
  38. cur = db.search(columns=["Name", "DescribeText"], table="archive",
  39. where=f"ID={archive_id}")
  40. if cur is None or cur.rowcount == 0:
  41. return None, None
  42. return cur.fetchone()