Merge branch 'nemanjan00-hide'
This commit is contained in:
@@ -45,6 +45,7 @@ In addition to the basic commands, the following actions can be performed when y
|
|||||||
|
|
||||||
:``l`` or ``►``: Enter the selected submission
|
:``l`` or ``►``: Enter the selected submission
|
||||||
:``o`` or ``ENTER``: Open the submission link with your web browser
|
:``o`` or ``ENTER``: Open the submission link with your web browser
|
||||||
|
:``SPACE``: Hide the selected submission
|
||||||
:``p``: Toggle between the front page and the last visited subreddit
|
:``p``: Toggle between the front page and the last visited subreddit
|
||||||
:``f``: Open a prompt to search the current subreddit
|
:``f``: Open a prompt to search the current subreddit
|
||||||
:``/``: Open a prompt to switch subreddits
|
:``/``: Open a prompt to switch subreddits
|
||||||
|
|||||||
@@ -188,6 +188,7 @@ class Content(object):
|
|||||||
data['gold'] = comment.gilded > 0
|
data['gold'] = comment.gilded > 0
|
||||||
data['author'] = author
|
data['author'] = author
|
||||||
data['flair'] = flair
|
data['flair'] = flair
|
||||||
|
data['hidden'] = False
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@@ -229,7 +230,7 @@ class Content(object):
|
|||||||
data['gold'] = sub.gilded > 0
|
data['gold'] = sub.gilded > 0
|
||||||
data['nsfw'] = sub.over_18
|
data['nsfw'] = sub.over_18
|
||||||
data['stickied'] = sub.stickied
|
data['stickied'] = sub.stickied
|
||||||
data['hidden'] = False
|
data['hidden'] = sub.hidden
|
||||||
data['xpost_subreddit'] = None
|
data['xpost_subreddit'] = None
|
||||||
data['index'] = None # This is filled in later by the method caller
|
data['index'] = None # This is filled in later by the method caller
|
||||||
data['saved'] = sub.saved
|
data['saved'] = sub.saved
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ https://github.com/michael-lazar/rtv
|
|||||||
l : View comments, or open comment in pager
|
l : View comments, or open comment in pager
|
||||||
h : Return to subreddit
|
h : Return to subreddit
|
||||||
o : Open the submission or comment url
|
o : Open the submission or comment url
|
||||||
SPACE : Fold or expand the selected comment tree
|
SPACE : Hide a submission, or fold/expand the selected comment tree
|
||||||
b : Display urls with urlview
|
b : Display urls with urlview
|
||||||
y : Copy submission permalink to clipboard
|
y : Copy submission permalink to clipboard
|
||||||
Y : Copy submission link to clipboard
|
Y : Copy submission link to clipboard
|
||||||
|
|||||||
@@ -292,6 +292,21 @@ class SubredditPage(Page):
|
|||||||
self.content = page.selected_subreddit
|
self.content = page.selected_subreddit
|
||||||
self.nav = Navigator(self.content.get)
|
self.nav = Navigator(self.content.get)
|
||||||
|
|
||||||
|
@SubredditController.register(Command('SUBREDDIT_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()
|
||||||
|
data['hidden'] = False
|
||||||
|
else:
|
||||||
|
with self.term.loader('Hiding'):
|
||||||
|
data['object'].hide()
|
||||||
|
data['hidden'] = True
|
||||||
|
|
||||||
def _draw_item(self, win, data, inverted):
|
def _draw_item(self, win, data, inverted):
|
||||||
|
|
||||||
n_rows, n_cols = win.getmaxyx()
|
n_rows, n_cols = win.getmaxyx()
|
||||||
@@ -346,6 +361,11 @@ class SubredditPage(Page):
|
|||||||
self.term.add_space(win)
|
self.term.add_space(win)
|
||||||
self.term.add_line(win, '[saved]', attr=attr)
|
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']:
|
if data['stickied']:
|
||||||
attr = self.term.attr('Stickied')
|
attr = self.term.attr('Stickied')
|
||||||
self.term.add_space(win)
|
self.term.add_space(win)
|
||||||
|
|||||||
@@ -154,6 +154,7 @@ SUBREDDIT_OPEN_IN_BROWSER = o, <LF>, <KEY_ENTER>
|
|||||||
SUBREDDIT_OPEN_SUBSCRIPTIONS = s
|
SUBREDDIT_OPEN_SUBSCRIPTIONS = s
|
||||||
SUBREDDIT_OPEN_MULTIREDDITS = S
|
SUBREDDIT_OPEN_MULTIREDDITS = S
|
||||||
SUBREDDIT_FRONTPAGE = p
|
SUBREDDIT_FRONTPAGE = p
|
||||||
|
SUBREDDIT_HIDE = 0x20
|
||||||
|
|
||||||
; Subscription page
|
; Subscription page
|
||||||
SUBSCRIPTION_SELECT = l, <LF>, <KEY_ENTER>, <KEY_RIGHT>
|
SUBSCRIPTION_SELECT = l, <LF>, <KEY_ENTER>, <KEY_RIGHT>
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ class Theme(object):
|
|||||||
'NeutralVote': (None, None, curses.A_BOLD),
|
'NeutralVote': (None, None, curses.A_BOLD),
|
||||||
'NSFW': (curses.COLOR_RED, None, curses.A_BOLD | curses.A_REVERSE),
|
'NSFW': (curses.COLOR_RED, None, curses.A_BOLD | curses.A_REVERSE),
|
||||||
'Saved': (curses.COLOR_GREEN, None, None),
|
'Saved': (curses.COLOR_GREEN, None, None),
|
||||||
|
'Hidden': (curses.COLOR_YELLOW, None, None),
|
||||||
'Score': (None, None, None),
|
'Score': (None, None, None),
|
||||||
'Separator': (None, None, curses.A_BOLD),
|
'Separator': (None, None, curses.A_BOLD),
|
||||||
'Stickied': (curses.COLOR_GREEN, None, None),
|
'Stickied': (curses.COLOR_GREEN, None, None),
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ MultiredditText = - - -
|
|||||||
NeutralVote = - - bold
|
NeutralVote = - - bold
|
||||||
NSFW = red - bold+reverse
|
NSFW = red - bold+reverse
|
||||||
Saved = green - -
|
Saved = green - -
|
||||||
|
Hidden = yellow - -
|
||||||
Score = - - -
|
Score = - - -
|
||||||
Separator = - - bold
|
Separator = - - bold
|
||||||
Stickied = green - -
|
Stickied = green - -
|
||||||
@@ -48,4 +49,4 @@ SubmissionTitleSeen = - - -
|
|||||||
Upvote = green - bold
|
Upvote = green - bold
|
||||||
Link = blue - underline
|
Link = blue - underline
|
||||||
LinkSeen = magenta - underline
|
LinkSeen = magenta - underline
|
||||||
UserFlair = yellow - bold
|
UserFlair = yellow - bold
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ MultiredditText = ansi_244 - -
|
|||||||
NeutralVote = - - bold
|
NeutralVote = - - bold
|
||||||
NSFW = ansi_197 - bold+reverse
|
NSFW = ansi_197 - bold+reverse
|
||||||
Saved = ansi_199 - -
|
Saved = ansi_199 - -
|
||||||
|
Hidden = ansi_208 - -
|
||||||
Score = - - bold
|
Score = - - bold
|
||||||
Separator = ansi_241 - bold
|
Separator = ansi_241 - bold
|
||||||
Stickied = ansi_208 - -
|
Stickied = ansi_208 - -
|
||||||
@@ -71,4 +72,4 @@ SubmissionTitleSeen = - - -
|
|||||||
Upvote = ansi_154 - bold
|
Upvote = ansi_154 - bold
|
||||||
Link = ansi_67 - underline
|
Link = ansi_67 - underline
|
||||||
LinkSeen = ansi_141 - underline
|
LinkSeen = ansi_141 - underline
|
||||||
UserFlair = ansi_222 - bold
|
UserFlair = ansi_222 - bold
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ MultiredditText = ansi_102 - -
|
|||||||
NeutralVote = - - bold
|
NeutralVote = - - bold
|
||||||
NSFW = ansi_160 - bold+reverse
|
NSFW = ansi_160 - bold+reverse
|
||||||
Saved = ansi_31 - bold
|
Saved = ansi_31 - bold
|
||||||
|
Hidden = ansi_166 - bold
|
||||||
Score = - - bold
|
Score = - - bold
|
||||||
Separator = - - bold
|
Separator = - - bold
|
||||||
Stickied = ansi_166 - bold
|
Stickied = ansi_166 - bold
|
||||||
@@ -69,4 +70,4 @@ SubmissionTitleSeen = - - -
|
|||||||
Upvote = ansi_28 - bold
|
Upvote = ansi_28 - bold
|
||||||
Link = ansi_24 - underline
|
Link = ansi_24 - underline
|
||||||
LinkSeen = ansi_91 - underline
|
LinkSeen = ansi_91 - underline
|
||||||
UserFlair = ansi_162 - bold
|
UserFlair = ansi_162 - bold
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ MultiredditText = ansi_240 - -
|
|||||||
NeutralVote = - - bold
|
NeutralVote = - - bold
|
||||||
NSFW = ansi_160 - bold+reverse
|
NSFW = ansi_160 - bold+reverse
|
||||||
Saved = ansi_125 - -
|
Saved = ansi_125 - -
|
||||||
|
Hidden = ansi_136 - -
|
||||||
Score = - - -
|
Score = - - -
|
||||||
Separator = - - bold
|
Separator = - - bold
|
||||||
Stickied = ansi_136 - -
|
Stickied = ansi_136 - -
|
||||||
@@ -67,4 +68,4 @@ SubmissionTitleSeen = - - -
|
|||||||
Upvote = ansi_64 - bold
|
Upvote = ansi_64 - bold
|
||||||
Link = ansi_33 - underline
|
Link = ansi_33 - underline
|
||||||
LinkSeen = ansi_61 - underline
|
LinkSeen = ansi_61 - underline
|
||||||
UserFlair = ansi_136 - bold
|
UserFlair = ansi_136 - bold
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ MultiredditText = ansi_245 - -
|
|||||||
NeutralVote = - - bold
|
NeutralVote = - - bold
|
||||||
NSFW = ansi_160 - bold+reverse
|
NSFW = ansi_160 - bold+reverse
|
||||||
Saved = ansi_125 - bold
|
Saved = ansi_125 - bold
|
||||||
|
Hidden = ansi_136 - bold
|
||||||
Score = - - -
|
Score = - - -
|
||||||
Separator = - - bold
|
Separator = - - bold
|
||||||
Stickied = ansi_136 - bold
|
Stickied = ansi_136 - bold
|
||||||
@@ -67,4 +68,4 @@ SubmissionTitleSeen = - - -
|
|||||||
Upvote = ansi_64 - bold
|
Upvote = ansi_64 - bold
|
||||||
Link = ansi_33 - underline
|
Link = ansi_33 - underline
|
||||||
LinkSeen = ansi_61 - underline
|
LinkSeen = ansi_61 - underline
|
||||||
UserFlair = ansi_136 - bold
|
UserFlair = ansi_136 - bold
|
||||||
|
|||||||
1710
tests/cassettes/test_subreddit_hide_submission.yaml
Normal file
1710
tests/cassettes/test_subreddit_hide_submission.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -487,3 +487,35 @@ def test_subreddit_frontpage_toggle(subreddit_page, terminal):
|
|||||||
assert subreddit_page.content.name == '/r/aww'
|
assert subreddit_page.content.name == '/r/aww'
|
||||||
subreddit_page.controller.trigger('p')
|
subreddit_page.controller.trigger('p')
|
||||||
assert subreddit_page.content.name == '/r/front'
|
assert subreddit_page.content.name == '/r/front'
|
||||||
|
|
||||||
|
|
||||||
|
def test_subreddit_hide_submission(subreddit_page, refresh_token):
|
||||||
|
|
||||||
|
# Log in
|
||||||
|
subreddit_page.config.refresh_token = refresh_token
|
||||||
|
subreddit_page.oauth.authorize()
|
||||||
|
|
||||||
|
# The api won't return hidden posts in the submission listing, so the
|
||||||
|
# first post should always have hidden set to false
|
||||||
|
data = subreddit_page.get_selected_item()
|
||||||
|
assert data['hidden'] is False
|
||||||
|
|
||||||
|
# Hide the first submission by pressing the space key
|
||||||
|
subreddit_page.controller.trigger(0x20)
|
||||||
|
assert subreddit_page.term.loader.exception is None
|
||||||
|
data = subreddit_page.get_selected_item()
|
||||||
|
assert data['hidden'] is True
|
||||||
|
|
||||||
|
# Make sure that the status was actually updated on the server side
|
||||||
|
data['object'].refresh()
|
||||||
|
assert data['object'].hidden is True
|
||||||
|
|
||||||
|
# Now undo the hide by pressing space again
|
||||||
|
subreddit_page.controller.trigger(0x20)
|
||||||
|
assert subreddit_page.term.loader.exception is None
|
||||||
|
data = subreddit_page.get_selected_item()
|
||||||
|
assert data['hidden'] is False
|
||||||
|
|
||||||
|
# Make sure that the status was actually updated on the server side
|
||||||
|
data['object'].refresh()
|
||||||
|
assert data['object'].hidden is False
|
||||||
Reference in New Issue
Block a user