add paging
This commit is contained in:
parent
3077cb62f8
commit
41d3e07a3f
11
hn.py
11
hn.py
@ -89,10 +89,18 @@ class Client:
|
|||||||
self.cursor_pos -= 1
|
self.cursor_pos -= 1
|
||||||
if self.cursor_pos < 0:
|
if self.cursor_pos < 0:
|
||||||
self.cursor_pos = self.stories_in_a_site-1
|
self.cursor_pos = self.stories_in_a_site-1
|
||||||
|
# scroll up a page (:
|
||||||
|
self.story_pos -= self.stories_in_a_site
|
||||||
|
self.story_pos = 0 if self.story_pos < 0 else self.story_pos
|
||||||
|
|
||||||
elif c == curses.KEY_DOWN:
|
elif c == curses.KEY_DOWN:
|
||||||
self.cursor_pos += 1
|
self.cursor_pos += 1
|
||||||
if self.cursor_pos >= self.stories_in_a_site:
|
if self.cursor_pos >= self.stories_in_a_site:
|
||||||
self.cursor_pos = 0
|
self.cursor_pos = 0
|
||||||
|
# scroll up down a page :)
|
||||||
|
self.story_pos += self.stories_in_a_site
|
||||||
|
self.load_more_if_needed()
|
||||||
|
|
||||||
elif c == ord('c'):
|
elif c == ord('c'):
|
||||||
webbrowser.open(f'https://news.ycombinator.com/item?id={self.loadedstories[self.story_pos + self.cursor_pos].id}')
|
webbrowser.open(f'https://news.ycombinator.com/item?id={self.loadedstories[self.story_pos + self.cursor_pos].id}')
|
||||||
elif c == curses.KEY_ENTER or c == 10:
|
elif c == curses.KEY_ENTER or c == 10:
|
||||||
@ -101,6 +109,9 @@ class Client:
|
|||||||
curses.resize_term(*self.screen.getmaxyx())
|
curses.resize_term(*self.screen.getmaxyx())
|
||||||
self.lines, self.cols = self.screen.getmaxyx()
|
self.lines, self.cols = self.screen.getmaxyx()
|
||||||
self.stories_in_a_site = self.lines - 3
|
self.stories_in_a_site = self.lines - 3
|
||||||
|
self.load_more_if_needed()
|
||||||
|
|
||||||
|
def load_more_if_needed(self):
|
||||||
if len(self.loadedstories) < self.story_pos + self.stories_in_a_site:
|
if len(self.loadedstories) < self.story_pos + self.stories_in_a_site:
|
||||||
# load more
|
# load more
|
||||||
self.load_stories(len(self.loadedstories), self.story_pos + self.stories_in_a_site)
|
self.load_stories(len(self.loadedstories), self.story_pos + self.stories_in_a_site)
|
||||||
|
Loading…
Reference in New Issue
Block a user