API Python Reddit: эффективно анализировать все комментарии в subreddit
Я пытаюсь закодировать чат-бота, чтобы он сканировал все комментарии, добавленные к нему.
В настоящее время я делаю это, просматривая каждые 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 ответ
Решение
Я нашел решение с использованием 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
Это должно сохранить некоторую нагрузку на процессор и сеть.