Reddit API (Node Js): Как получить родительский комментарий в reddit, используя snoowrap и snoostorm? - PullRequest
0 голосов
/ 13 октября 2019

Итак, я создаю reddit бота. Сценарий таков, что А публикует комментарий. B отвечает на этот комментарий, вызывая бота. Обычно snoostorm предоставляет объект комментария для B, содержащий информацию о B и исходном сообщении. Как получить объект комментария для A?

const Snoowrap = require('snoowrap');
const { CommentStream } = require('snoostorm');

const client = new Snoowrap({
  userAgent: 'rpffdgfh',
  clientId: 'Ddhjhfjsh',
  clientSecret: 'kRHXydsgjgkjkjsjkgl',
  username: 'botname',
  password: 'botpass'
});

const canSummon = (msg) => {
  return msg && msg.toLowerCase().includes('u/botname');
};

const comments = new CommentStream(client, {
  subreddit: 'testingground4bots',
  limit: 10,
  pollTime: 10000
});

//info about original comment (in this case B)
comments.on('item', (item) => {
  if (!canSummon(item.body)) return;
  console.log(item);
}); 

Я уже прочитал документы по snoowrap. Я не могу найти один для сна. Короче говоря, не хватает документации или руководств по созданию сложных ботов для reddit с использованием javascript / node.js, в то время как есть много доступных для python.

1 Ответ

0 голосов
/ 15 октября 2019

Объект Comment имеет свойство parent_id. Вы должны получить родительский комментарий, чтобы получить объект.

comments.on('item', (item) => {
    if (!canSummon(item.body)) return;
    console.log(item);
    client.getComment(item.parent_id).fetch().then(parentComment => {
        console.log(parentComment.body);
    });
});

Snoostorm - это просто оболочка для Snoowrap.

...