Reddit es una red de comunidades basadas en los intereses de las personas. Cada una de estas comunidades se denomina subreddit. Los usuarios pueden suscribirse a múltiples subreddits para publicar, comentar e interactuar con ellos.
Un bot de Reddit es algo que responde automáticamente a la publicación de un usuario o publica cosas automáticamente en ciertos intervalos. Esto podría depender del contenido que publiquen los usuarios. Puede ser activado por ciertas frases clave y también depende de varios subreddits con respecto a su contenido.
Para implementar un bot de Reddit, usaremos Python Reddit API Wrapper (PRAW). Nos permite iniciar sesión en la API de Reddit para interactuar directamente con el backend del sitio web. Puede encontrar más información sobre esta biblioteca aquí – PRAW – Python Reddit API Wrapper .
Nuestro bot dirá las palabras similares para una palabra dada. Usaremos el método enchant
del módulo para encontrar las palabras similares.suggest()
Algoritmo:
- Importa los módulos prag y enchant.
- Cree una instancia de Reddit autorizada con parámetros válidos.
- Elija el subreddit en el que se activará el bot.
- Elija una palabra que active el bot en ese subreddit.
- Inspeccione cada comentario en el subreddit en busca de la frase desenstringnte.
- Al encontrar la frase desenstringnte, extraiga la palabra del comentario y encuentre sus palabras similares usando el
enchant
módulo. - Responde al comentario con palabras similares.
# import the modules import praw import enchant # initialize with appropriate values client_id = "" client_secret = "" username = "" password = "" user_agent = "" # creating an authorized reddit instance reddit = praw.Reddit(client_id = client_id, client_secret = client_secret, username = username, password = password, user_agent = user_agent) # the subreddit where the bot is to be live on target_sub = "GRE" subreddit = reddit.subreddit(target_sub) # phrase to trigger the bot trigger_phrase = "! GfGBot" # enchant dictionary d = enchant.Dict("en_US") # check every comment in the subreddit for comment in subreddit.stream.comments(): # check the trigger_phrase in each comment if trigger_phrase in comment.body: # extract the word from the comment word = comment.body.replace(trigger_phrase, "") # initialize the reply text reply_text = "" # find the similar words similar_words = d.suggest(word) for similar in similar_words: reply_text += similar + " " # comment the similar words comment.reply(reply_text)
Activando el bot:
El bot responde con palabras similares: