Added an extra sort option for 'gilded'

Implemented 'gilded' sort both in the banner bar (by pushing the '6' key), and in the prompt (by entering '/subreddit/gilded')
This commit is contained in:
Edridge D'Souza
2018-07-16 16:22:19 -04:00
parent 71b86505fb
commit b2d3439faa
10 changed files with 41 additions and 5 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
!.gitignore
!.gitattributes
!.coveragerc
!CONTROLS.rst
*~
*.pyc
*.log

View File

@@ -9,7 +9,7 @@ Basic Commands
:``j``/``k`` or ``▲``/``▼``: Move the cursor up/down
:``m``/``n`` or ``PgUp``/``PgDn``: Jump to the previous/next page
:``gg``/``G``: Jump to the top/bottom of the page
:``1-5``: Toggle post order (*hot*, *top*, *rising*, *new*, *controversial*)
:``1-6``: Toggle post order (*hot*, *top*, *rising*, *new*, *controversial*, *gilded*)
:``r`` or ``F5``: Refresh page content
:``u``: Log in or switch accounts
:``/``: Open a prompt to switch subreddits

0
rtv/__main__.py Normal file → Executable file
View File

View File

@@ -543,7 +543,7 @@ class SubredditContent(Content):
orders = ['relevance', 'top', 'comments', 'new', None]
period_allowed = ['top', 'comments']
else:
orders = ['hot', 'top', 'rising', 'new', 'controversial', None]
orders = ['hot', 'top', 'rising', 'new', 'controversial', 'gilded', None]
period_allowed = ['top', 'controversial']
if order not in orders:

View File

@@ -43,6 +43,7 @@ https://github.com/michael-lazar/rtv
3 : Sort by rising
4 : Sort by new
5 : Sort by controversial
6 : Sort by gilded
p : Return to the front page
r : Refresh page
u : Login or logout
@@ -77,6 +78,7 @@ https://github.com/michael-lazar/rtv
- /r/python
- /r/python/new (sort)
- /r/python/controversial-year (sort and order)
- /r/python/gilded (gilded within subreddit)
- /r/python+linux (multireddit)
- /r/python/comments/30rwj2 (submission comments)
- /comments/30rwj2 (submission comments shorthand)
@@ -89,7 +91,7 @@ https://github.com/michael-lazar/rtv
"""
BANNER = """
[1]hot [2]top [3]rising [4]new [5]controversial
[1]hot [2]top [3]rising [4]new [5]controversial [6]gilded
"""
BANNER_SEARCH = """

View File

@@ -96,6 +96,7 @@ class Config(object): # pylint: disable=R0903
'friends': 'prefs/friends/',
'gild_thing': 'api/v1/gold/gild/{fullname}/',
'gild_user': 'api/v1/gold/give/{username}/',
'gilded': 'gilded/',
'help': 'help/',
'hide': 'api/hide/',
'ignore_reports': 'api/ignore_reports/',
@@ -841,7 +842,7 @@ class UnauthenticatedReddit(BaseReddit):
:param domain: The domain to generate a submission listing for.
:param sort: When provided must be one of 'hot', 'new', 'rising',
'controversial, or 'top'. Defaults to 'hot'.
'controversial', 'gilded', or 'top'. Defaults to 'hot'.
:param period: When sort is either 'controversial', or 'top' the period
can be either None (for account default), 'all', 'year', 'month',
'week', 'day', or 'hour'.
@@ -851,7 +852,7 @@ class UnauthenticatedReddit(BaseReddit):
"""
# Verify arguments
if sort not in ('controversial', 'hot', 'new', 'rising', 'top'):
if sort not in ('controversial', 'hot', 'new', 'rising', 'top', 'gilded'):
raise TypeError('Invalid sort parameter.')
if period not in (None, 'all', 'day', 'hour', 'month', 'week', 'year'):
raise TypeError('Invalid period parameter.')
@@ -1172,6 +1173,20 @@ class UnauthenticatedReddit(BaseReddit):
"""
return self.get_content(self.config['top'], *args, **kwargs)
@decorators.restrict_access(scope='read')
def get_gilded(self, *args, **kwargs):
"""Return a get_content generator for gilded submissions.
Corresponds to the submissions provided by
``https://www.reddit.com/gilded/`` for the session.
The additional parameters are passed directly into
:meth:`.get_content`. Note: the `url` parameter cannot be altered.
"""
return self.get_content(self.config['gilded'], *args, **kwargs)
# There exists a `modtraffic` scope, but it is unused.
@decorators.restrict_access(scope='modconfig')
def get_traffic(self, subreddit):

View File

@@ -1579,6 +1579,7 @@ class Subreddit(Messageable, Refreshable):
get_hot = _get_sorter('')
get_new = _get_sorter('new')
get_top = _get_sorter('top')
get_gilded = _get_sorter('gilded')
# Explicit listing selectors
get_controversial_from_all = _get_sorter('controversial', t='all')

View File

@@ -48,6 +48,10 @@ class SubmissionPage(Page):
def sort_content_rising(self):
self.refresh_content(order='rising')
@SubmissionController.register(Command('SORT_GILDED'))
def sort_content_rising(self):
self.refresh_content(order='gilded')
@SubmissionController.register(Command('SORT_NEW'))
def sort_content_new(self):
self.refresh_content(order='new')

View File

@@ -66,6 +66,7 @@ class SubredditPage(Page):
else:
self.refresh_content(order='hot')
@SubredditController.register(Command('SORT_TOP'))
def sort_content_top(self):
order = self._prompt_period('top')
@@ -85,6 +86,17 @@ class SubredditPage(Page):
else:
self.refresh_content(order='rising')
@SubredditController.register(Command('SORT_GILDED'))
def sort_content_gilded(self):
if self.content.query:
order = self._prompt_period('comments')
if order is None:
self.term.show_notification('Invalid option')
else:
self.refresh_content(order=order)
else:
self.refresh_content(order='gilded')
@SubredditController.register(Command('SORT_NEW'))
def sort_content_new(self):
self.refresh_content(order='new')

View File

@@ -116,6 +116,7 @@ SORT_TOP = 2
SORT_RISING = 3
SORT_NEW = 4
SORT_CONTROVERSIAL = 5
SORT_GILDED = 6
MOVE_UP = k, <KEY_UP>
MOVE_DOWN = j, <KEY_DOWN>
PREVIOUS_THEME = <KEY_F2>