Conflicts:
	rtv/content.py
This commit is contained in:
Michael Lazar
2015-08-10 00:04:23 -07:00
2 changed files with 21 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ import logging
import praw
import requests
import re
from .exceptions import SubmissionError, SubredditError, AccountError
from .helpers import humanize_timestamp, wrap_text, strip_subreddit_url
@@ -111,7 +112,7 @@ class BaseContent(object):
"selfpost" or "x-post" or a link.
"""
is_selfpost = lambda s: s.startswith('http://www.reddit.com/r/')
reddit_link = re.compile("https?://(www\.)?(np\.)?redd(it\.com|\.it)/r/.*")
author = getattr(sub, 'author', '[deleted]')
name = getattr(author, 'name', '[deleted]')
flair = getattr(sub, 'link_flair_text', '')
@@ -129,7 +130,19 @@ class BaseContent(object):
data['subreddit'] = strip_subreddit_url(sub.permalink)
data['flair'] = flair
data['url_full'] = sub.url
data['url'] = ('selfpost' if is_selfpost(sub.url) else sub.url)
if data['permalink'].split('/r/')[-1] == data['url_full'].split('/r/')[-1]:
data['url_type'] = 'selfpost'
data['url'] = 'selfpost'
elif reddit_link.match(data['url_full']):
data['url_type'] = 'x-post'
data['url'] = 'x-post via {}'.format(strip_subreddit_url(data['url_full']))
else:
data['url_type'] = 'external'
data['url'] = data['url_full']
data['likes'] = sub.likes
data['gold'] = sub.gilded > 0
data['nsfw'] = sub.over_18
@@ -164,6 +177,7 @@ class SubmissionContent(BaseContent):
try:
with loader():
url = url.replace('http:', 'https:')
submission = reddit.get_submission(url, comment_sort=order)
except (praw.errors.APIException, praw.errors.NotFound):
raise SubmissionError(url)

View File

@@ -9,7 +9,7 @@ from .exceptions import SubredditError, AccountError
from .page import BasePage, Navigator, BaseController
from .submission import SubmissionPage
from .content import SubredditContent
from .helpers import open_browser, open_editor
from .helpers import open_browser, open_editor, strip_subreddit_url
from .docs import SUBMISSION_FILE
from .history import load_history, save_history
from .curses_helpers import (Color, LoadScreen, add_line, get_arrow, get_gold,
@@ -115,10 +115,11 @@ class SubredditPage(BasePage):
"Open a link with the webbrowser"
data = self.content.get(self.nav.absolute_index)
if data['url'] == 'selfpost':
self.open_submission()
url = data['url_full']
if data['url_type'] in ['x-post', 'selfpost']:
page = SubmissionPage(self.stdscr, self.reddit, url=url)
page.loop()
else:
url = data['url_full']
open_browser(url)
global history
history.add(url)