123456789101112131415161718192021222324252627282930313233343536 |
- from flask import url_for
- from tool.typing import *
- def get_page(url, page: int, count: int):
- if count <= 9:
- page_list = [[f"{i + 1}", url_for(url, page=i + 1)] for i in range(count)]
- elif page <= 5:
- """
- [1][2][3][4][5][6][...][count - 1][count]
- """
- page_list = [[f"{i + 1}", url_for(url, page=i + 1)] for i in range(6)]
- page_list += [None,
- [f"{count - 1}", url_for(url, page=count - 1)],
- [f"{count}", url_for(url, page=count)]]
- elif page >= count - 5:
- """
- [1][2][...][count - 5][count - 4][count - 3][count - 2][count - 1][count]
- """
- page_list: Optional[list] = [["1", url_for(url, page=1)],
- ["2", url_for(url, page=2)],
- None]
- page_list += [[f"{count - 5 + i}", url_for(url, page=count - 5 + i), False] for i in range(6)]
- else:
- """
- [1][2][...][page - 2][page - 1][page][page + 1][page + 2][...][count - 1][count]
- """
- page_list: Optional[list] = [["1", url_for(url, page=1)],
- ["2", url_for(url, page=2)],
- None]
- page_list += [[f"{page - 2 + i}", url_for(url, page=page - 2 + i)] for i in range(5)]
- page_list += [None,
- [f"{count - 1}", url_for(url, page=count - 1)],
- [f"{count}", url_for(url, page=count)]]
- return page_list
|