Написание кода Reddit Automatic Bot, а не комментирование всех частей списка
Поэтому я пишу бота для subreddit, который я модерирую в python. Бот может выполнить и правильно ответить на комментарий, за исключением того, что он отвечает только с последней частью списка (комментарии предназначены для других людей, которые используют подпрограмму). Код еще не закончен, я сделал это только для одного региона, но, кажется, все работает, кроме этой одной части. Пожалуйста, не могли бы вы посоветовать мне, что мне делать.
Пример:
комментарий: u / crazy_angel1: автоматический ворон северныйответ: u / AutoMaesterGOT: u / CptAwsome12345
Код:
import time
#importing time module
import praw
#importing the thing that allows you to run all the code, if you want to run this on your own computer, you will need to install it, look for a tutorial on how to install PRAW online
reddit = praw.Reddit(client_id='redacted',
username='AutoMaesterGOT',
client_secret='redacted',
password='redacted',
user_agent='It is a script that messages people every time a certain phrase is passed in my subreddit. Created by /u/crazy_angel1')
print("logging in...")
print(reddit.user.me())
#singing on to the bot with OAuth, again look up online if you want to use it
WordCalls=['AUTOMAESTER RAVEN NORTH', 'AUTOMAESTER RAVEN CROWNLANDS', 'AUTOMAESTER RAVEN CROWNLANDS','AUTOMAESTER RAVEN WESTERLANDS', 'AUTOMAESTER RAVEN DORNE','AUTOMAESTER RAVEN VALE','AUTOMAESTER REACH', 'AUTOMAESTER RAVEN IRON ISLANDS']
#the terms that will call the bot
CommentCache=[]
#storing comments already sorted through
NorthMembers=['u/crazy_angel1','u/StraightOuttaNYC','u/jgames2000','u/CptAwsome12345']
def BOTRUN(): #the bots main code for North
subreddit = reddit.subreddit('StormOfSwordsRP')#connecting to the subreddit
comments = subreddit.stream.comments()#sorting through comments
for comment in comments:
comment_body = comment.body#storing each individual comment
comment_body = comment_body.upper()#making every comment uppercase
isMatch = any(string in comment_body for string in WordCalls)#setting conditions for calling bot
if isMatch and comment.id not in CommentCache:#checking if anybody has called bot and it hasnt already been replied to yet
print("match found, comment id" +comment.id)
comment.reply(NorthMembers)#calling North members
CommentCache.append(comment.id)#adding the comment id to the cache
print("reply succesful")
while True: #infinite loop
BOTRUN()# executing bot
time.sleep(10)
1 ответ
Очевидно, что Reddit не любит списки, поэтому он не будет работать должным образом, если вы попытаетесь ответить списком в обычном режиме. Так что вместо линии
Comment.reply(NorthMembers)
Вы хотите использовать строку:
Comment.reply (''.join (NorthMembers))
Спасибо @xay за помощь