Первоначально это было просто твит, но потом я понял, что хочу немного больше места, чтобы поговорить об этом, и подумал, что напишу его как пост. А так как это мой блог, и я могу сделать то, что хочу, вы наслаждаетесь этим маленьким самородком информации.
Вернувшись почти ровно месяц назад, я Блог об использовании 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”