From 3fb39d344d135355a3d7721d5de6489a264d0643 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 25 Jan 2015 02:23:07 -0800 Subject: [PATCH] Added refresh with "r", something is going on with the cursor blink. --- rtv/content_generators.py | 33 ++++++++++++++++++++++++--------- rtv/subreddit.py | 2 ++ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/rtv/content_generators.py b/rtv/content_generators.py index 56b0347..1c4e3fc 100644 --- a/rtv/content_generators.py +++ b/rtv/content_generators.py @@ -83,7 +83,7 @@ class SubredditGenerator(object): list for repeat access. """ - def __init__(self, reddit_session, subreddit=None): + def __init__(self, reddit_session, subreddit='front'): """ params: session (praw.Reddit): Active reddit connection @@ -92,14 +92,12 @@ class SubredditGenerator(object): self.r = reddit_session self.r.config.decode_html_entities = True - if subreddit is None: - self._submissions = self.r.get_front_page(limit=None) - self.display_name = 'Front Page' - else: - self._submissions = self.r.get_subreddit(subreddit, limit=None) - self.display_name = self._submissions.display_name + self.subreddit = None + self.display_name = None + self._submissions = None + self._submission_data = None - self._submission_data = [] + self.reset(subreddit=subreddit) @staticmethod def strip_praw_submission(sub): @@ -151,4 +149,21 @@ class SubredditGenerator(object): while True: yield self.get(index, n_cols) - index += step \ No newline at end of file + index += step + + def reset(self, subreddit=None): + """ + Clear the internal list and fetch a new submission generator. Switch + to the specified subreddit if one is given. + """ + + # Fall back to the internal value if nothing is passed in. + self.subreddit = subreddit or self.subreddit + self._submission_data = [] + + if self.subreddit == 'front': + self._submissions = self.r.get_front_page(limit=None) + self.display_name = 'Front Page' + else: + self._submissions = self.r.get_subreddit(self.subreddit, limit=None) + self.display_name = self._submissions.display_name \ No newline at end of file diff --git a/rtv/subreddit.py b/rtv/subreddit.py index 69e4a8a..b4c4866 100644 --- a/rtv/subreddit.py +++ b/rtv/subreddit.py @@ -40,6 +40,8 @@ class SubredditViewer(BaseViewer): # Refresh page elif cmd in (curses.KEY_F5, ord('r')): + self.content.reset() + self.stdscr.clear() self.draw() # Quit