More of a user's pages are visible

This commit is contained in:
woorst
2018-09-10 13:07:41 -04:00
parent ae9f407dfd
commit dae2d0a27d
2 changed files with 27 additions and 13 deletions

View File

@@ -512,9 +512,18 @@ class SubredditContent(Content):
elif resource_root.startswith('user/'): elif resource_root.startswith('user/'):
resource_root = 'u' + resource_root[4:] resource_root = 'u' + resource_root[4:]
# There should at most two parts left, the resource and the order # The parts left should be in one of the following two forms:
# [resource, order]
# [resource, user_room, order]
user_rooms = ['overview', 'submitted', 'comments']
private_user_rooms = ['upvoted', 'downvoted', 'hidden', 'saved']
user_room = None
if len(parts) == 1: if len(parts) == 1:
resource, resource_order = parts[0], None resource, resource_order = parts[0], None
elif resource_root == 'u' and len(parts) in [2, 3] \
and parts[1] in user_rooms + private_user_rooms:
resource, user_room = parts[:2]
resource_order = parts[2] if len(parts) == 3 else None
elif len(parts) == 2: elif len(parts) == 2:
resource, resource_order = parts resource, resource_order = parts
else: else:
@@ -531,6 +540,8 @@ class SubredditContent(Content):
display_order = order display_order = order
display_name = '/'.join(['', resource_root, resource]) display_name = '/'.join(['', resource_root, resource])
if user_room and resource_root == 'u':
display_name += '/' + user_room
# Split the order from the period E.g. controversial-all, top-hour # Split the order from the period E.g. controversial-all, top-hour
if order and '-' in order: if order and '-' in order:
@@ -603,22 +614,21 @@ class SubredditContent(Content):
if not reddit.is_oauth_session(): if not reddit.is_oauth_session():
raise exceptions.AccountError('Not logged in') raise exceptions.AccountError('Not logged in')
else: else:
user_room = user_room or 'overview'
order = order or 'new' order = order or 'new'
submissions = reddit.user.get_overview(sort=order, limit=None) period = period or 'all'
submissions = getattr(reddit.user, 'get_%s' % user_room
elif resource_root == 'u' and resource == 'saved': )(sort=order, time=period, limit=None)
if not reddit.is_oauth_session():
raise exceptions.AccountError('Not logged in')
else:
order = order or 'new'
submissions = reddit.user.get_saved(sort=order, limit=None)
elif resource_root == 'u': elif resource_root == 'u':
user_room = user_room or 'overview'
if not user_room in user_rooms:
raise InvalidSubreddit('Unavailable Resourse')
order = order or 'new' order = order or 'new'
period = period or 'all' period = period or 'all'
redditor = reddit.get_redditor(resource) redditor = reddit.get_redditor(resource)
submissions = redditor.get_overview( submissions = getattr(redditor, 'get_%s' % user_room
sort=order, time=period, limit=None) )(sort=order, time=period, limit=None)
elif resource == 'front': elif resource == 'front':
if order in (None, 'hot'): if order in (None, 'hot'):

View File

@@ -389,8 +389,12 @@ class Page(object):
sub_name = self.content.name sub_name = self.content.name
sub_name = sub_name.replace('/r/front', 'Front Page') sub_name = sub_name.replace('/r/front', 'Front Page')
sub_name = sub_name.replace('/u/me', 'My Submissions')
sub_name = sub_name.replace('/u/saved', 'My Saved Submissions') parts = sub_name.split('/')
if parts[1] == 'u':
noun = 'My' if parts[2] == 'me' else parts[2] + "'s"
user_room = {3: 'overview', 4: parts[-1]}[len(parts)].capitalize()
sub_name = "{} {}".format(noun, user_room)
query = self.content.query query = self.content.query
if query: if query: