Создание бота с PRAW.Кажется, игнорировать некоторых людей? - PullRequest
0 голосов
/ 09 сентября 2018

мой первый пост здесь. Если вы посмотрите / r / EDH прямо сейчас, вы увидите моего бота на первой странице. Идея заключается в том, что когда вы набираете? Edhbot [название карты]? он дает вам ссылки на соответствующие страницы на edhrec.com.

По некоторым причинам, похоже, некоторые люди игнорируют его, и мой бот не сообщает о проблемах с ограничением скорости. Они не понимают, что такое неправильно, поэтому я действительно не могу понять, что они делают неправильно? Вот мой код для справки:

  #imported modules
  import praw
  import string

  #functions
  def main():
        #API login
        #I have no idea what I can't show so I redacted most lol
        reddit = praw.Reddit(client_id="REDACTED",
                             client_secret = "REDACTED",
                             user_agent = "a bot for my epq, by aggressivechairs",
                             username = "EPQ_MTG_BOT",
                             password = "REDACTED")
        subreddit = reddit.subreddit("all")
        wakeword = "?edhbot "

        for comment in subreddit.stream.comments():
              if wakewordCheck(comment, wakeword): reply = generateComment(comment)

  #Checks comment to see if it contains the wake word for the bot
  def wakewordCheck(comment, wakeword):
        if wakeword in comment.body: return(True)
        else: return(False)

  #Generates the link extension
  def linkGenerator(inString):
        startPoint = inString.index("?edhbot ")
        inString = inString.lower()
        outString = ""
        for i in range(startPoint+8, len(inString)):
              if inString[i] == "?":
                    break
              elif inString[i] in string.punctuation:
                    continue
              elif inString[i] in string.whitespace:
                    outString += "-"
                    continue
              outString += inString[i]
        return(outString)



  #Generates the text that will be used in the bot's reply
  def generateComment(comment):
        try:
              normalisedLink = linkGenerator(comment.body)
              commentReply = "[EDHRec page for the commander](https://edhrec.com/commanders/"+normalisedLink+") \n\n [EDHREC page for that as a card](https://edhrec.com/cards/"+normalisedLink+")"
              comment.reply(commentReply)
              print("I did it with " + comment.body)
        except Exception as e: print(e)            

  if __name__ == "__main__":
        main()

Так что да, когда вы используете тип? Edhbot, он либо читает до конца комментария, либо до тех пор, пока не встретит новый вопросительный знак. Если вы посмотрите эту ветку, вы увидите, что она просто игнорирует некоторых людей. https://www.reddit.com/r/EDH/comments/9ec677/im_a_new_bot_made_just_for_this_sub/?sort=new

Что вы предлагаете? Я не могу понять, что происходит не так: / О, и если вы заметите какую-то плохую практику кодирования, не стесняйтесь сказать мне! Я хочу улучшить хаха

...