36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const config = require('config');
|
|
const dissectLink = require('../dissectLink.js');
|
|
|
|
function curateSubmissions(submissions) {
|
|
const processed = new Set();
|
|
|
|
return submissions.reduce((acc, submission, index) => {
|
|
if(config.fetch.ignoreDuplicates && processed.has(submission.url)) {
|
|
console.log('\x1b[33m%s\x1b[0m', `Ignoring cross-post or repost '${submission.title}' - ${submission.url}`);
|
|
|
|
return acc;
|
|
}
|
|
|
|
const curatedSubmission = {
|
|
id: submission.id,
|
|
index: index,
|
|
title: submission.title,
|
|
text: submission.selftext,
|
|
user: submission.author.name,
|
|
permalink: submission.permalink,
|
|
url: submission.url,
|
|
datetime: new Date(submission.created_utc * 1000),
|
|
subreddit: submission.subreddit.display_name,
|
|
host: dissectLink(submission.url)
|
|
};
|
|
|
|
processed.add(submission.url);
|
|
|
|
return acc.concat(curatedSubmission);
|
|
}, []);
|
|
};
|
|
|
|
module.exports = curateSubmissions;
|