diff --git a/hatenadir/ds/v2-xx/creator.py b/hatenadir/ds/v2-xx/creator.py index e02253d..e5784b3 100644 --- a/hatenadir/ds/v2-xx/creator.py +++ b/hatenadir/ds/v2-xx/creator.py @@ -3,7 +3,7 @@ from twisted.web import resource from DB import Database from hatena import NotFound, as_text -from reximemo import dsi_url, flipnote_buttons, html_page, make_menu +from reximemo import dsi_text_html, dsi_url, flipnote_buttons, html_page, make_menu, page_number, pagination_buttons class PyResource(resource.Resource): @@ -38,12 +38,17 @@ class CreatorLeaf(resource.Resource): room = Database.get_creator_room(self.room_id) if not room: return NotFound.render(request) - notes = Database.list_creator_flipnotes(self.room_id, limit=50) + total = Database.count_flipnotes(room_id=self.room_id) + page = page_number(request, total) + notes = Database.list_creator_flipnotes(self.room_id, limit=50, offset=(page - 1) * 50) if self.action in {"room.uls", "movies.uls"}: + pager = pagination_buttons(request, f"creator/{self.room_id}/movies.uls", page, total) + prev = [item for item in pager if item["label"].startswith("Previous")] + nxt = [item for item in pager if item["label"].startswith("Next")] request.setHeader(b"content-type", b"text/plain") return make_menu( layout=(2,1), title=room["display_name"], subtitle_top="Creator's Room", - left="Flipnotes", right=str(len(notes)), buttons=flipnote_buttons(request, notes), + left="Flipnotes", right=str(total), buttons=prev + flipnote_buttons(request, notes) + nxt, corner={"label":"Post", "url":dsi_url(request, "ch/1.post")}, ) profile = ( @@ -54,7 +59,7 @@ class CreatorLeaf(resource.Resource): '