Refactored page initialization, content initialization, and loading.

This commit is contained in:
Michael Lazar
2015-02-01 02:02:22 -08:00
parent 66dd4c5bd4
commit b8794e3599
6 changed files with 91 additions and 80 deletions

View File

@@ -1,15 +1,22 @@
import praw
import textwrap
import curses
import sys
from page import BasePage
from submission import SubmissionPage
from content import SubmissionContent
from utils import curses_session, text_input
from content import SubredditContent
from utils import LoadScreen, text_input
class SubredditPage(BasePage):
def __init__(self, stdscr, reddit, name):
self.reddit = reddit
self.name = name
self.loader = LoadScreen(stdscr)
content = SubredditContent.from_name(reddit, name, self.loader)
super(SubredditPage, self).__init__(stdscr, content)
def loop(self):
self.draw()
@@ -47,11 +54,12 @@ class SubredditPage(BasePage):
else:
curses.beep()
def refresh_content(self, subreddit=None):
def refresh_content(self, name=None):
self.nav.page_index, self.nav.cursor_index = 0, 0
self.nav.inverted = False
self.content.reset(subreddit=subreddit)
self.name = name if name else self.name
self.content = SubredditContent.from_name(self.reddit, self.name, self.loader)
self.stdscr.clear()
self.draw()
@@ -67,26 +75,15 @@ class SubredditPage(BasePage):
if out is None:
self.draw()
else:
self.refresh_content(subreddit=out)
self.refresh_content(name=out)
def open_submission(self):
"Select the current submission to view posts"
submission = self.content.get(self.nav.absolute_index)['object']
content = SubmissionContent(submission, loader=self.content.loader)
page = SubmissionPage(self.stdscr, content)
page = SubmissionPage(self.stdscr, self.reddit, submission=submission)
page.loop()
def draw(self):
n_rows, n_cols = self.stdscr.getmaxyx()
self._header_window = self.stdscr.derwin(1, n_cols, 0, 0)
self._content_window = self.stdscr.derwin(1, 0)
self.draw_header()
self.draw_content()
self.add_cursor()
@staticmethod
def draw_item(win, data, inverted=False):