diff --git a/daemon.py b/daemon.py index f8b1af6b..98506e52 100644 --- a/daemon.py +++ b/daemon.py @@ -82,7 +82,7 @@ import os import sys # maximum number of posts to list in outbox feed -maxPostsInFeed=20 +maxPostsInFeed=4 # number of follows/followers per page followsPerPage=12 @@ -944,8 +944,14 @@ class PubServer(BaseHTTPRequestHandler): if inboxFeed: if 'text/html' in self.headers['Accept']: nickname=self.path.replace('/users/','').replace('/inbox','') + pageNumber=1 if '?page=' in nickname: + pageNumber=nickname.split('?page=')[1] nickname=nickname.split('?page=')[0] + if pageNumber.isdigit(): + pageNumber=int(pageNumber) + else: + pageNumber=1 if 'page=' not in self.path: # if no page was specified then show the first inboxFeed=personBoxJson(self.server.baseDir, \ @@ -956,7 +962,8 @@ class PubServer(BaseHTTPRequestHandler): maxPostsInFeed, 'inbox', \ True,self.server.ocapAlways) self._set_headers('text/html',cookie) - self.wfile.write(htmlInbox(self.server.session, \ + self.wfile.write(htmlInbox(pageNumber,maxPostsInFeed, \ + self.server.session, \ self.server.baseDir, \ self.server.cachedWebfingers, \ self.server.personCache, \ @@ -990,8 +997,14 @@ class PubServer(BaseHTTPRequestHandler): if outboxFeed: if 'text/html' in self.headers['Accept']: nickname=self.path.replace('/users/','').replace('/outbox','') + pageNumber=1 if '?page=' in nickname: + pageNumber=nickname.split('?page=')[1] nickname=nickname.split('?page=')[0] + if pageNumber.isdigit(): + pageNumber=int(pageNumber) + else: + pageNumber=1 if 'page=' not in self.path: # if a page wasn't specified then show the first one outboxFeed=personBoxJson(self.server.baseDir,self.server.domain, \ @@ -1002,7 +1015,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.ocapAlways) self._set_headers('text/html',cookie) - self.wfile.write(htmlOutbox(self.server.session, \ + self.wfile.write(htmlOutbox(pageNumber,maxPostsInFeed, \ + self.server.session, \ self.server.baseDir, \ self.server.cachedWebfingers, \ self.server.personCache, \ diff --git a/epicyon-profile.css b/epicyon-profile.css index a60ab40b..4c6d636c 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -22,6 +22,10 @@ body, html { display: none; } +.pageicon { + width: 5%; +} + .timeline-banner { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("banner.png"); height: 10%; diff --git a/img/icons/pagedown.png b/img/icons/pagedown.png new file mode 100644 index 00000000..b6b8c166 Binary files /dev/null and b/img/icons/pagedown.png differ diff --git a/img/icons/pageup.png b/img/icons/pageup.png new file mode 100644 index 00000000..cadf06c5 Binary files /dev/null and b/img/icons/pageup.png differ diff --git a/webinterface.py b/webinterface.py index 0aac9c99..7bdf5884 100644 --- a/webinterface.py +++ b/webinterface.py @@ -597,7 +597,8 @@ def individualPostAsHtml(baseDir: str, \ contentStr+footerStr+ \ '\n' -def htmlTimeline(session,baseDir: str,wfRequest: {},personCache: {}, \ +def htmlTimeline(pageNumber: int,itemsPerPage: int,session,baseDir: str, \ + wfRequest: {},personCache: {}, \ nickname: str,domain: str,port: int,timelineJson: {}, \ boxName: str) -> str: """Show the timeline as html @@ -642,25 +643,33 @@ def htmlTimeline(session,baseDir: str,wfRequest: {},personCache: {}, \ followApprovals+ \ '' tlStr+='' + if pageNumber>1: + tlStr+='