#python #reddit #praw
#python #Reddit #praw
Вопрос:
Я работаю над ботом reddit, целью которого является поиск репостов при обнаружении комментария, содержащего «!repostfinder». Бот способен определить строку, но я не знаю, как получить изображение, которое было прокомментировано.
Вот код, который у меня есть на данный момент:
#subreddit to use
subreddit = reddit.subreddit('test')
#summoning the bot
keyphrase = '!repostfinder'
#find comments with keyphrase
for comment in subreddit.stream.comments():
if keyphrase in comment.body:
print('Found keyphrase')
comment.reply('Keyphrase detected')
print('Replied to comment')
Ответ №1:
Вам следует прочитать соответствующие документы praw
библиотеки, которую вы используете.
Вот документы praw.models.reddit.comment.Comment
: https://praw.readthedocs.io/en/latest/code_overview/models/comment.html ?выделить =прокомментировать
Вы можете получить отправку комментария с помощью comment.submission
. Тогда вам решать, что делать с данными. Вот документы praw.models.reddit.submission.Submission
: https://praw.readthedocs.io/en/latest/code_overview/models/submission.html ?выделить = отправить
Пример:
# Fetch some comments
comments = []
for comment in subreddit.stream.comments():
# Stop after fetching some comments
if (len(comments) < 10):
comments.append(comment)
else:
break
# Select specific comment
comment = comments[0]
# Get the comment's submission
submission = comment.submission
Ответ №2:
Для каждого комментария есть parent_id
значение. В случае, если это верхний комментарий, идентификатор parrent будет начинаться с t3_
(это сообщение, вы должны это проверить), в то время как если родительский идентификатор является другим комментарием, он будет начинаться с t1_
, что означает, что это был ответ на другой комментарий, который в вашем случае был бы бесполезной информацией.
Итак, теперь вы делаете:
postData = reddit(id=subbmission.parrent_id[3:]) # This is how u get the post object
print(postData.url) # The URL of the image