Python: hacer un bot de Reddit con PRAW

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 enchantdel módulo para encontrar las palabras similares.suggest()

Algoritmo:

  1. Importa los módulos prag y enchant.
  2. Cree una instancia de Reddit autorizada con parámetros válidos.
  3. Elija el subreddit en el que se activará el bot.
  4. Elija una palabra que active el bot en ese subreddit.
  5. Inspeccione cada comentario en el subreddit en busca de la frase desenstringnte.
  6. Al encontrar la frase desenstringnte, extraiga la palabra del comentario y encuentre sus palabras similares usando el enchantmódulo.
  7. 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:

Publicación traducida automáticamente

Artículo escrito por Yash_R y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *