Рубрики
Без рубрики

Обновление моего рабочего процесса Reddit с помощью PipedReam

Первоначально это был твит, но потом я понял, что хочу немного больше места, чтобы поговорить … Tagged с помощью сервера, JavaScript.

Первоначально это было просто твит, но потом я понял, что хочу немного больше места, чтобы поговорить об этом, и подумал, что напишу его как пост. А так как это мой блог, и я могу сделать то, что хочу, вы наслаждаетесь этим маленьким самородком информации.

Вернувшись почти ровно месяц назад, я Блог об использовании PipedReam для создания отчета по электронной почте Reddit. Идея заключалась в том, что я хотел ежедневное электронное письмо о постах от моих подписанных подредедитов в течение последних 24 часов контента. Реализация была немного сложной. Я использовал один рабочий процесс для обработки «Получить контент на дни от subreddit» как общий «API» и другой рабочий процесс, связанный с моей аутентификацией. Он обрабатывает получение моих подписок, нажатие на API, а затем генерируя электронное письмо. Вот пример того, как это выглядело:

Это сработало хорошо, но через некоторое время Получение Электронное письмо, я заметил некоторые проблемы. Электронное письмо берет все сообщения со всех моих подписок и сортирует их вместе. Я подумал, что это имело смысл для меня, но я заметил, что это затрудняло прочитать контент. Иногда меня не волнует субреддит, и мысленно это было странно, переходя от фильмов, подредедите в Acadiana One. Кроме того, некоторые субреддиты получают Огромный количество трафика за день. Электронное письмо было трудно читать и слишком долго.

Поэтому я решил это исправить. Я не хотел редактировать свой оригинальный рабочий процесс, потому что я хотел, чтобы он все еще был ссылкой для более старого поста. К счастью, Pipedream делает это простым. Я выключил расписание Cron в рабочем процессе и просто использовал команду копирования.

Затем я отредактировал шаг кода Node.js, который объединяет и сортирует мои данные. Этот:

for(let i=0;i {
    if(a.created_utc < b.created_utc) return 1;
    if(a.created_utc >b.created_utc) return -1;
    return 0;
});

Стало этим:

for(let i=0;i

Больше нет сортировки вместе И я получаю только первые десять записей от каждого субреддита. (Эти сообщения уже должны отсортировать дату. Должно быть.)

Затем я изменил шаг, который форматирует электронное письмо. Я добавил в код, чтобы заметить, когда начинается новый SubredDit и добавил HTML, чтобы сделать его более заметно отделенным.

let dotLeft = function(s, len) {
  if(s.length < len) return s;
  return s.substring(0, len)+'...';
};

let lastSub = '';

this.subject = `Daily Reddit Report`;
this.body = `

Daily New Posts for Your Reddit Subscriptions

`; steps.get_and_sort.posts.forEach(p => { // only show thumbnails when they aren't "self","default","nswf" - or more broadly, not a url if(p.thumbnail.indexOf('http') === -1) delete p.thumbnail; let text = ''; if(p.is_self) text = dotLeft(p.selftext,200); if(p.subreddit !== lastSub) { this.body += `

${p.subreddit}

`; lastSub = p.subreddit; } this.body += `

${ p.thumbnail ? '':''} Title: ${p.title}
URL: ${p.url}
Reddit URL: https://www.reddit.com${p.permalink}
Author: ${p.author}

${text}

` });

В основном – обратите внимание, когда изменяется субреддит, и добавьте горизонтальное правило и заголовок. Также обратите внимание, что я изменил свой код на том, когда показывать изображения. Кажется, это работает намного лучше.

И это все. Мой новый рабочий процесс можно найти здесь: https://pipedream.com/@raymondcamden/daily-redit-posts-3-p_pac9dv/edit?e=1c8nznetufxtoncya2evcafjvau Я стараюсь изо всех сил использовать Readme функция, чтобы документировать то, что я сделал.

Оригинал: “https://dev.to/raymondcamden/updating-my-reddit-workflow-with-pipedream-13a”