API Python Reddit: эффективно анализировать все комментарии в subreddit - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь закодировать чат-бота, чтобы он сканировал все комментарии, добавленные к нему.

В настоящее время я делаю это, просматривая каждые X секунд до последних комментариев Y:

handle = praw.Reddit(username=config.username,
                    password=config.password,
                    client_id=config.client_id,
                    client_secret=config.client_secret,
                    user_agent="cristiano corrector v0.1a")
while True:
    last_comments = handle.subreddit(subreddit).comments(limit=Y)
    for comment in last_comments:
        #process comments
    time.sleep(X)

Я совершенно не удовлетворен, так как может быть много совпадений (которые могут быть решены путем отслеживания идентификатора комментариев), и некоторые комментарии сканируются дважды, в то время как другие игнорируются. Есть ли лучший способ сделать это с этим API?

1 Ответ

0 голосов
/ 24 июня 2018

Я нашел решение, использующее stream внутри PRAW API.Подробности в https://praw.readthedocs.io/en/latest/tutorials/reply_bot.html

И в моем коде:

handle = praw.Reddit(username=config.username,
                    password=config.password,
                    client_id=config.client_id,
                    client_secret=config.client_secret,
                    user_agent="cristiano corrector v0.1a")

for comment in handle.subreddit(subreddit).stream.comments():
    #process comments

Это должно сэкономить некоторую нагрузку на процессор и сеть.

...