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 praw
import requests import requests
import re
from .exceptions import SubmissionError, SubredditError, AccountError from .exceptions import SubmissionError, SubredditError, AccountError
from .helpers import humanize_timestamp, wrap_text, strip_subreddit_url from .helpers import humanize_timestamp, wrap_text, strip_subreddit_url
@@ -111,7 +112,7 @@ class BaseContent(object):
"selfpost" or "x-post" or a link. "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]') author = getattr(sub, 'author', '[deleted]')
name = getattr(author, 'name', '[deleted]') name = getattr(author, 'name', '[deleted]')
flair = getattr(sub, 'link_flair_text', '') flair = getattr(sub, 'link_flair_text', '')
@@ -129,7 +130,19 @@ class BaseContent(object):
data['subreddit'] = strip_subreddit_url(sub.permalink) data['subreddit'] = strip_subreddit_url(sub.permalink)
data['flair'] = flair data['flair'] = flair
data['url_full'] = sub.url 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['likes'] = sub.likes
data['gold'] = sub.gilded > 0 data['gold'] = sub.gilded > 0
data['nsfw'] = sub.over_18 data['nsfw'] = sub.over_18
@@ -164,6 +177,7 @@ class SubmissionContent(BaseContent):
try: try:
with loader(): with loader():
url = url.replace('http:', 'https:')
submission = reddit.get_submission(url, comment_sort=order) submission = reddit.get_submission(url, comment_sort=order)
except (praw.errors.APIException, praw.errors.NotFound): except (praw.errors.APIException, praw.errors.NotFound):
raise SubmissionError(url) raise SubmissionError(url)

View File

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