Merge pull request #243 from michael-lazar/handle_xpost_better

Handle xpost better
This commit is contained in:
Michael Lazar
2016-07-08 00:37:55 -07:00
committed by GitHub
5 changed files with 809 additions and 10 deletions

View File

@@ -127,10 +127,11 @@ class Content(object):
displayed through the terminal.
Definitions:
permalink - Full URL to the submission comments.
url_full - Link that the submission points to.
url - URL that is displayed on the subreddit page, may be
"selfpost" or "x-post" or a link.
permalink - URL to the reddit page with submission comments.
url_full - URL that the submission points to.
url - URL that will be displayed on the subreddit page, may be
"selfpost", "x-post submission", "x-post subreddit", or an
external link.
"""
reddit_link = re.compile(
@@ -146,8 +147,7 @@ class Content(object):
data['text'] = sub.selftext
data['created'] = cls.humanize_timestamp(sub.created_utc)
data['comments'] = '{0} comments'.format(sub.num_comments)
data['score'] = '{0} pts'.format(
'-' if sub.hide_score else sub.score)
data['score'] = '{0} pts'.format('-' if sub.hide_score else sub.score)
data['author'] = name
data['permalink'] = sub.permalink
data['subreddit'] = six.text_type(sub.subreddit)
@@ -158,6 +158,7 @@ class Content(object):
data['nsfw'] = sub.over_18
data['stickied'] = sub.stickied
data['hidden'] = False
data['xpost_subreddit'] = None
data['index'] = None # This is filled in later by the method caller
if sub.url.split('/r/')[-1] == sub.permalink.split('/r/')[-1]:
@@ -166,8 +167,13 @@ class Content(object):
elif reddit_link.match(sub.url):
# Strip the subreddit name from the permalink to avoid having
# submission.subreddit.url make a separate API call
data['url'] = 'self.{0}'.format(sub.url.split('/')[4])
data['url_type'] = 'x-post'
url_parts = sub.url.split('/')
data['xpost_subreddit'] = url_parts[4]
data['url'] = 'self.{0}'.format(url_parts[4])
if 'comments' in url_parts:
data['url_type'] = 'x-post submission'
else:
data['url_type'] = 'x-post subreddit'
else:
data['url'] = sub.url
data['url_type'] = 'external'

View File

@@ -291,7 +291,7 @@ class Page(object):
else:
title = sub_name
title = title + ' - rtv {0}'.format(__version__)
title += ' - rtv {0}'.format(__version__)
sys.stdout.write('\x1b]2;{0}\x07'.format(title))
sys.stdout.flush()

View File

@@ -100,7 +100,9 @@ class SubredditPage(Page):
data = self.content.get(self.nav.absolute_index)
if data['url_type'] == 'selfpost':
self.open_submission()
elif data['url_type'] == 'x-post':
elif data['url_type'] == 'x-post subreddit':
self.refresh_content(order='ignore', name=data['xpost_subreddit'])
elif data['url_type'] == 'x-post submission':
self.open_submission(url=data['url_full'])
self.config.history.add(data['url_full'])
else: