diff --git a/rtv/content.py b/rtv/content.py index 21dfbc5..4d68841 100644 --- a/rtv/content.py +++ b/rtv/content.py @@ -188,6 +188,7 @@ class Content(object): data['gold'] = comment.gilded > 0 data['author'] = author data['flair'] = flair + data['hidden'] = False return data diff --git a/rtv/docs.py b/rtv/docs.py index 692487e..1c6beef 100644 --- a/rtv/docs.py +++ b/rtv/docs.py @@ -51,6 +51,7 @@ https://github.com/michael-lazar/rtv ? : Show the help screen q : Quit Q : Force quit + x : Hide/unhide a : Upvote z : Downvote c : Compose a new submission/comment @@ -97,7 +98,7 @@ BANNER_SEARCH = """ """ FOOTER_SUBREDDIT = """ -[?]Help [q]Quit [l]Comments [/]Prompt [u]Login [o]Open [c]Post [a/z]Vote +[?]Help [q]Quit [l]Comments [/]Prompt [u]Login [o]Open [c]Post [a/z]Vote [x] hide/unhide """ FOOTER_SUBMISSION = """ diff --git a/rtv/page.py b/rtv/page.py index c9f24f9..7138727 100644 --- a/rtv/page.py +++ b/rtv/page.py @@ -156,6 +156,23 @@ class Page(object): self.nav.cursor_index = 0 self.nav.inverted = True + @PageController.register(Command('HIDE')) + @logged_in + def hide(self): + data = self.get_selected_item() + if not hasattr(data["object"], 'hide'): + self.term.flash() + elif data['hidden']: + with self.term.loader('Unhiding'): + data['object'].unhide() + if not self.term.loader.exception: + data['hidden'] = False + else: + with self.term.loader('Hiding'): + data['object'].hide() + if not self.term.loader.exception: + data['hidden'] = True + @PageController.register(Command('UPVOTE')) @logged_in def upvote(self): diff --git a/rtv/subreddit_page.py b/rtv/subreddit_page.py index 1e1a142..222a3b8 100644 --- a/rtv/subreddit_page.py +++ b/rtv/subreddit_page.py @@ -346,6 +346,11 @@ class SubredditPage(Page): self.term.add_space(win) self.term.add_line(win, '[saved]', attr=attr) + if data['hidden']: + attr = self.term.attr('Hidden') + self.term.add_space(win) + self.term.add_line(win, '[hidden]', attr=attr) + if data['stickied']: attr = self.term.attr('Stickied') self.term.add_space(win) diff --git a/rtv/templates/rtv.cfg b/rtv/templates/rtv.cfg index 864a6a5..88f0dfe 100644 --- a/rtv/templates/rtv.cfg +++ b/rtv/templates/rtv.cfg @@ -124,6 +124,7 @@ PAGE_UP = m, , PAGE_DOWN = n, , PAGE_TOP = gg PAGE_BOTTOM = G +HIDE = 0x20 UPVOTE = a DOWNVOTE = z LOGIN = u diff --git a/rtv/theme.py b/rtv/theme.py index 0ce8d9e..8b79590 100644 --- a/rtv/theme.py +++ b/rtv/theme.py @@ -95,6 +95,7 @@ class Theme(object): 'NeutralVote': (None, None, curses.A_BOLD), 'NSFW': (curses.COLOR_RED, None, curses.A_BOLD | curses.A_REVERSE), 'Saved': (curses.COLOR_GREEN, None, None), + 'Hidden': (curses.COLOR_GREEN, None, None), 'Score': (None, None, None), 'Separator': (None, None, curses.A_BOLD), 'Stickied': (curses.COLOR_GREEN, None, None), diff --git a/rtv/themes/default.cfg.example b/rtv/themes/default.cfg.example index 07c372a..060e33c 100644 --- a/rtv/themes/default.cfg.example +++ b/rtv/themes/default.cfg.example @@ -34,6 +34,7 @@ MultiredditText = - - - NeutralVote = - - bold NSFW = red - bold+reverse Saved = green - - +Hidden = green - - Score = - - - Separator = - - bold Stickied = green - - @@ -48,4 +49,4 @@ SubmissionTitleSeen = - - - Upvote = green - bold Link = blue - underline LinkSeen = magenta - underline -UserFlair = yellow - bold \ No newline at end of file +UserFlair = yellow - bold diff --git a/rtv/themes/molokai.cfg b/rtv/themes/molokai.cfg index c55d8bb..d8cfe1f 100644 --- a/rtv/themes/molokai.cfg +++ b/rtv/themes/molokai.cfg @@ -57,6 +57,7 @@ MultiredditText = ansi_244 - - NeutralVote = - - bold NSFW = ansi_197 - bold+reverse Saved = ansi_199 - - +Hidden = green - - Score = - - bold Separator = ansi_241 - bold Stickied = ansi_208 - - @@ -71,4 +72,4 @@ SubmissionTitleSeen = - - - Upvote = ansi_154 - bold Link = ansi_67 - underline LinkSeen = ansi_141 - underline -UserFlair = ansi_222 - bold \ No newline at end of file +UserFlair = ansi_222 - bold diff --git a/rtv/themes/papercolor.cfg b/rtv/themes/papercolor.cfg index 7bea410..de8f01c 100644 --- a/rtv/themes/papercolor.cfg +++ b/rtv/themes/papercolor.cfg @@ -55,6 +55,7 @@ MultiredditText = ansi_102 - - NeutralVote = - - bold NSFW = ansi_160 - bold+reverse Saved = ansi_31 - bold +Hidden = green - - Score = - - bold Separator = - - bold Stickied = ansi_166 - bold @@ -69,4 +70,4 @@ SubmissionTitleSeen = - - - Upvote = ansi_28 - bold Link = ansi_24 - underline LinkSeen = ansi_91 - underline -UserFlair = ansi_162 - bold \ No newline at end of file +UserFlair = ansi_162 - bold diff --git a/rtv/themes/solarized-dark.cfg b/rtv/themes/solarized-dark.cfg index 049f951..f6aca18 100644 --- a/rtv/themes/solarized-dark.cfg +++ b/rtv/themes/solarized-dark.cfg @@ -53,6 +53,7 @@ MultiredditText = ansi_240 - - NeutralVote = - - bold NSFW = ansi_160 - bold+reverse Saved = ansi_125 - - +Hidden = green - - Score = - - - Separator = - - bold Stickied = ansi_136 - - @@ -67,4 +68,4 @@ SubmissionTitleSeen = - - - Upvote = ansi_64 - bold Link = ansi_33 - underline LinkSeen = ansi_61 - underline -UserFlair = ansi_136 - bold \ No newline at end of file +UserFlair = ansi_136 - bold diff --git a/rtv/themes/solarized-light.cfg b/rtv/themes/solarized-light.cfg index 057e880..8437326 100644 --- a/rtv/themes/solarized-light.cfg +++ b/rtv/themes/solarized-light.cfg @@ -53,6 +53,7 @@ MultiredditText = ansi_245 - - NeutralVote = - - bold NSFW = ansi_160 - bold+reverse Saved = ansi_125 - bold +Hidden = green - - Score = - - - Separator = - - bold Stickied = ansi_136 - bold @@ -67,4 +68,4 @@ SubmissionTitleSeen = - - - Upvote = ansi_64 - bold Link = ansi_33 - underline LinkSeen = ansi_61 - underline -UserFlair = ansi_136 - bold \ No newline at end of file +UserFlair = ansi_136 - bold