Example #1
0
def search_deltas_thread(submission_url, awardee_username):
    parsed_deltas = []
    
    submission = Submission.from_url(r, submission_url, comment_limit=None)
    submission.replace_more_comments(limit=16, threshold=1)
    
    keyphrase = 'delta awarded to /u/{}'.format(awardee_username).lower()
    
    def search_comment(comment, parent):
        if (getattr(comment.author, 'name', None) == 'DeltaBot' and
                keyphrase in comment.body.lower()):
            awarded_at = datetime.fromtimestamp(parent.created_utc)
            awarded_by = getattr(parent.author, 'name', '[deleted]')
            parsed_deltas.append(ParsedDelta(
                awarded_at=awarded_at,
                awarded_by=awarded_by,
                awarder_comment_id=parent.id,
                awarder_comment_url=submission.url + parent.id,
                submission_id=submission.id,
                submission_title=submission.title,
                submission_url=submission.url))
        for reply in comment.replies:
            search_comment(reply, comment)
    
    for comment in submission.comments:
        for reply in comment.replies:
            search_comment(reply, comment)
    
    return parsed_deltas
Example #2
0
 def test_get_submissions_with_params(self, mocked):
     sub = Submission(self.r, {'foo': 'meh', 'permalink': ''})
     mocked.return_value = ({'data': {'children': [sub]}},
                            {'data': {'children': []}})
     url = 'http://www.reddit.com/comments/1/_/2?context=3&foo=bar'
     self.assertEqual('meh', self.r.get_submission(url).foo)
     mocked.assert_called_with('http://www.reddit.com/comments/1/_/2',
                               params={'context': '3', 'foo': 'bar'})
 def test_scope_edit(self):
     self.r.refresh_access_information(self.refresh_token['edit'])
     submission = Submission.from_id(self.r, self.submission_edit_id)
     self.assertEqual(submission, submission.edit('Edited text'))
 def test_scope_vote(self):
     self.r.refresh_access_information(self.refresh_token['vote'])
     submission = Submission.from_id(self.r, self.submission_edit_id)
     submission.clear_vote()
 def test_scope_read_priv_sub_comments(self):
     self.r.refresh_access_information(self.refresh_token['read'])
     submission = Submission.from_id(self.r, self.priv_submission_id)
     self.assertTrue(submission.comments)
 def test_scope_read_get_submission_by_url(self):
     url = ("https://www.reddit.com/r/reddit_api_test_priv/comments/16kbb7/"
            "google/")
     self.r.refresh_access_information(self.refresh_token['read'])
     submission = Submission.from_url(self.r, url)
     self.assertTrue(submission.num_comments != 0)
 def test_scope_modposts(self):
     self.r.refresh_access_information(self.refresh_token['modposts'])
     Submission.from_id(self.r, self.submission_edit_id).remove()
Example #8
0
 def test_vote_oauth(self):
     self.r.refresh_access_information(self.refresh_token['vote'])
     submission = Submission.from_id(self.r, self.submission_edit_id)
     submission.clear_vote()
Example #9
0
 def test_remove_oauth(self):
     self.r.refresh_access_information(self.refresh_token['modposts'])
     Submission.from_id(self.r, self.submission_edit_id).remove()
Example #10
0
 def test_get_submission_by_url_oauth(self):
     url = ("https://www.reddit.com/r/reddit_api_test_priv/comments/16kbb7/"
            "google/")
     self.r.refresh_access_information(self.refresh_token['read'])
     submission = Submission.from_url(self.r, url)
     self.assertTrue(submission.num_comments != 0)
Example #11
0
 def test_get_priv_submission_comments_oauth(self):
     self.r.refresh_access_information(self.refresh_token['read'])
     submission = Submission.from_id(self.r, self.priv_submission_id)
     self.assertTrue(submission.comments)
Example #12
0
 def test_edit_oauth(self):
     self.r.refresh_access_information(self.refresh_token['edit'])
     submission = Submission.from_id(self.r, self.submission_edit_id)
     self.assertEqual(submission, submission.edit('Edited text'))