Написание кода автоматического бота Reddit, не комментируя все части списка

Итак, я пишу бота для сабреддита, который модерирую на Python. Бот может выполнить и правильно ответить на комментарий, за исключением того, что он отвечает только последней частью списка (комментарии предназначены для других людей, которые используют подписку). Код не закончен, я пока сделал это только для одного региона, но вроде все работает, кроме одной части. Не могли бы вы посоветовать мне, что мне делать.

Пример:

комментарий: u / crazy_angel1: automaester raven north answer: 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)

person crazy_angel    schedule 12.03.2018    source источник
comment
Трудно понять, чего ты хочешь достичь. Я предполагаю, что вы хотите, чтобы полный список NorthMembers ответил на комментарий, когда в комментарии был найден один из WordCalls. У меня нет опыта работы с praw, но я вижу одну вещь: вы пытаетесь ответить всем объектом списка, что может вызвать проблемы, учитывая, что reddit использует [] для форматирования ссылок. Вы пробовали comment.reply(' '.join(NorthMembers))?   -  person Xay    schedule 13.03.2018
comment
Да, это то, чего я пытаюсь достичь, и нет, я не пробовал, что я собираюсь попробовать, спасибо за ответ!   -  person crazy_angel    schedule 13.03.2018
comment
хм, когда я это делаю, кажется, что бот вообще не отвечает. Любые другие идеи?   -  person crazy_angel    schedule 13.03.2018
comment
Добро пожаловать, я идиот ... когда я вставил это в свой код, я удалил комментарий. ответ, я просто оставил его как присоединиться к NorthMembers. Это исправило это, большое спасибо за вашу помощь @xay   -  person crazy_angel    schedule 13.03.2018
comment
Рад, что это сработало, удачи в дальнейшем кодировании :)   -  person Xay    schedule 13.03.2018


Ответы (1)


Очевидно, что Reddit не любит списки, поэтому он не будет работать должным образом, если вы попытаетесь ответить списком в обычном режиме. Так что вместо строки

Комментарий.ответ (NorthMembers)

Вы захотите использовать строку:

Комментарий.ответ (‘‘ .join (NorthMembers))

Спасибо @xay за помощь

person crazy_angel    schedule 13.03.2018