Minor refactoring, tweaked color schemes.

This commit is contained in:
Michael Lazar
2015-02-05 22:59:08 -08:00
parent 31529a9770
commit f5391e088d
5 changed files with 36 additions and 26 deletions

View File

@@ -29,7 +29,6 @@ def main():
with curses_session() as stdscr:
if args.link:
# Go directly to submission
page = SubmissionPage(stdscr, reddit, url=args.link)
page.loop()

View File

@@ -167,13 +167,12 @@ class SubmissionContent(BaseContent):
self.indent_size = indent_size
self.max_indent_level = max_indent_level
self._loader = loader
self._submission = submission
self._submission_data = self.strip_praw_submission(submission)
self.name = self._submission_data['permalink']
with self._loader():
comments = self.flatten_comments(submission.comments)
self._comment_data = [self.strip_praw_comment(c) for c in comments]
self._submission_data = None
self._comment_data = None
self.name = None
self.reset()
@classmethod
def from_url(
@@ -195,10 +194,11 @@ class SubmissionContent(BaseContent):
def reset(self):
with self._loader():
self._submission.refresh()
self._submission_data = self.strip_praw_submission(submission)
self._submission_data = self.strip_praw_submission(self._submission)
self.name = self._submission_data['permalink']
comments = self.flatten_comments(submission.comments)
comments = self.flatten_comments(self._submission.comments)
self._comment_data = [self.strip_praw_comment(c) for c in comments]
def get(self, index, n_cols=70):

View File

@@ -41,7 +41,7 @@ class SubmissionPage(BasePage):
self.refresh_content()
# Show / hide a comment tree
elif cmd == ord(' '):
elif cmd in (curses.KEY_RIGHT, ord(' ')):
self.toggle_comment()
elif cmd == curses.KEY_RESIZE:
@@ -126,10 +126,10 @@ class SubmissionPage(BasePage):
n_rows, n_cols = win.getmaxyx()
n_cols -= 1
win.addnstr(0, 1, data['body'], n_cols-1)
text = '{body}'.format(**data)
win.addnstr(0, 1, text, n_cols-1)
text = ' [{count}]'.format(**data)
attr = curses.A_BOLD
win.addnstr(text, n_cols - win.getyx()[1], attr)
win.addnstr(text, n_cols - win.getyx()[1], curses.A_BOLD)
attr = Color.get_level(data['level'])
for y in range(n_rows):
@@ -147,21 +147,26 @@ class SubmissionPage(BasePage):
return
for row, text in enumerate(data['split_title'], start=1):
win.addnstr(row, 1, text, n_cols)
win.addnstr(row, 1, text, n_cols, curses.A_BOLD)
text = '{} {} {}'.format(data['author'], data['created'], data['subreddit'])
row = len(data['split_title']) + 1
win.addnstr(row, 1, text, n_cols)
attr = curses.A_BOLD | Color.GREEN
text = '{author}'.format(**data)
win.addnstr(row, 1, text, n_cols, attr)
text = ' {created} {subreddit}'.format(**data)
win.addnstr(text, n_cols - win.getyx()[1])
row = len(data['split_title']) + 2
win.addnstr(row, 1, data['url'], n_cols)
attr = curses.A_UNDERLINE | Color.BLUE
text = '{url}'.format(**data)
win.addnstr(row, 1, text, n_cols, attr)
offset = len(data['split_title']) + 3
for row, text in enumerate(data['split_text'], start=offset):
win.addnstr(row, 1, text, n_cols)
text = '{} {}'.format(data['score'], data['comments'])
row = len(data['split_title']) + len(data['split_text']) + 3
win.addnstr(row, 1, text, n_cols)
text = '{} {}'.format(data['score'], data['comments'])
win.addnstr(row, 1, text, n_cols, curses.A_BOLD)
win.border()

View File

@@ -99,7 +99,7 @@ class SubredditPage(BasePage):
def draw_item(win, data, inverted=False):
n_rows, n_cols = win.getmaxyx()
n_cols -= 2 # Leave space for the cursor in the first column
n_cols -= 1 # Leave space for the cursor in the first column
# Handle the case where the window is not large enough to fit the data.
valid_rows = range(0, n_rows)
@@ -114,12 +114,17 @@ class SubredditPage(BasePage):
row = n_title + offset
if row in valid_rows:
attr = curses.A_UNDERLINE | Color.BLUE
win.addnstr(row, 1, '{url}'.format(**data), n_cols, attr)
text = '{url}'.format(**data)
win.addnstr(row, 1, text, n_cols-1, attr)
row = n_title + offset + 1
if row in valid_rows:
win.addnstr(row, 1, '{created} {comments} {score}'.format(**data), n_cols)
text = '{created} {comments} {score}'.format(**data)
win.addnstr(row, 1, text, n_cols-1)
row = n_title + offset + 2
if row in valid_rows:
win.addnstr(row, 1, '{author} {subreddit}'.format(**data), n_cols)
text = '{author}'.format(**data)
win.addnstr(row, 1, text, n_cols-1, curses.A_BOLD)
text = ' {subreddit}'.format(**data)
win.addnstr(text, n_cols - win.getyx()[1], Color.YELLOW)

View File

@@ -16,6 +16,7 @@ class Color(object):
'BLUE': (curses.COLOR_BLUE, -1),
'MAGENTA': (curses.COLOR_MAGENTA, -1),
'CYAN': (curses.COLOR_CYAN, -1),
'WHITE': (curses.COLOR_WHITE, -1),
}
@classmethod