Added reference to comment._fast_permalink to reduce api calls.

This commit is contained in:
Michael Lazar
2016-07-31 23:44:40 -07:00
parent 9cee493dff
commit 96b2db30f9

View File

@@ -87,15 +87,15 @@ class Content(object):
data = {}
data['object'] = comment
# Saved comments do not have a nested_level
data['level'] = getattr(comment, 'nested_level', None)
if isinstance(comment, praw.objects.MoreComments):
data['type'] = 'MoreComments'
data['level'] = comment.nested_level
data['count'] = comment.count
data['body'] = 'More comments'
data['hidden'] = True
else:
elif hasattr(comment, 'nested_level'):
author = getattr(comment, 'author', '[deleted]')
name = getattr(author, 'name', '[deleted]')
sub = getattr(comment, 'submission', '[deleted]')
@@ -106,6 +106,7 @@ class Content(object):
stickied = getattr(comment, 'stickied', False)
data['type'] = 'Comment'
data['level'] = comment.nested_level
data['body'] = comment.body
data['created'] = cls.humanize_timestamp(comment.created_utc)
data['score'] = '{0} pts'.format(
@@ -119,23 +120,33 @@ class Content(object):
data['stickied'] = stickied
data['hidden'] = False
data['saved'] = comment.saved
else:
# Saved comments don't have a nested level and are missing a couple
# of fields like ``submission``. As a result, we can only load a
# subset of fields to avoid triggering a seperate api call to load
# the full comment.
author = getattr(comment, 'author', '[deleted]')
stickied = getattr(comment, 'stickied', False)
flair = getattr(comment, 'author_flair_text', '')
return data
@classmethod
def coerce_saved_comment(cls, comment, data):
"""
Saved comments need to be coerced so that they can be displayed in the
subreddit window.
"""
data['title'] = data['body']
data['comments'] = ''
data['url_full'] = data['permalink']
data['url'] = data['permalink']
data['nsfw'] = comment.over_18
data['subreddit'] = six.text_type(comment.subreddit)
data['url_type'] = 'selfpost'
data['type'] = 'SavedComment'
data['level'] = None
data['title'] = comment.body
data['comments'] = ''
data['url_full'] = comment._fast_permalink
data['url'] = comment._fast_permalink
data['nsfw'] = comment.over_18
data['subreddit'] = six.text_type(comment.subreddit)
data['url_type'] = 'selfpost'
data['score'] = '{0} pts'.format(
'-' if comment.score_hidden else comment.score)
data['likes'] = comment.likes
data['created'] = cls.humanize_timestamp(comment.created_utc)
data['saved'] = comment.saved
data['stickied'] = stickied
data['gold'] = comment.gilded > 0
data['author'] = author
data['flair'] = flair
return data
@@ -571,7 +582,6 @@ class SubredditContent(Content):
else:
# when submission is a saved commment
data = self.strip_praw_comment(submission)
data = self.coerce_saved_comment(submission, data)
data['index'] = len(self._submission_data) + 1
# Add the post number to the beginning of the title