mirror of
https://github.com/vale981/Vulcan
synced 2025-03-10 12:36:39 -04:00

* [eslint] update eslint rules & add .eslintignore to ignore non-ready nova packages * [clean-up] nova-voting * [clean-up] [bug] nova-users: missing user parameter * [clean-up] nova-users * [clean-up] nova-subscribe * [clean-up] nova-settings * [clean-up] nova-rss * [clean-up] [bug] nova-posts: correct UsersRemoveDeletePosts * [clean-up] nova-posts * [clean-up] nova-notifications * [clean-up] [bug] nova-newsletter: no error.message on throw error * [clean-up] nova-newsletter * [clean-up] nova-lib * [clean-up] nova-kadira * [clean-up] nova-inject-data * [clean-up] nova-getting-started * [clean-up] nova-forms * [clean-up] nova-events * [clean-up] [bug] nova-embedly: no FlowRouter * [clean-up] nova-embedly * [clean-up] nova-email-templates * [clean-up] nova-email * [clean-up] nova-debug * [clean-up] nova-core * [clean-up] [bug] nova-comments: correct UsersRemoveDeleteComments * [clean-up] nova-comments * [clean-up] [bug] nova-cloudinary: use Telescope.settings.collection instand * [clean-up] nova-cloudinary * [clean-up] nova-categories * [clean-up] nova-base-components * [clean-up] nova-api * [eslint] extends react recommended * [clean-up] for jsx files * [eslint] extends meteor recommended * i forgot this one little change
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
import { SyncedCron } from 'meteor/percolatestudio:synced-cron';
|
|
// import moment from 'moment';
|
|
import Posts from '../collection.js';
|
|
|
|
SyncedCron.options = {
|
|
log: true,
|
|
collectionName: 'cronHistory',
|
|
utc: false,
|
|
collectionTTL: 172800
|
|
};
|
|
|
|
|
|
const addJob = function () {
|
|
SyncedCron.add({
|
|
name: 'checkScheduledPosts',
|
|
schedule(parser) {
|
|
return parser.text('every 10 minutes');
|
|
},
|
|
job() {
|
|
// fetch all posts tagged as future
|
|
const scheduledPosts = Posts.find({isFuture: true}, {fields: {_id: 1, status: 1, postedAt: 1, userId: 1, title: 1}}).fetch();
|
|
|
|
// filter the scheduled posts to retrieve only the one that should update, considering their schedule
|
|
const postsToUpdate = scheduledPosts.filter(post => post.postedAt <= new Date());
|
|
|
|
// update posts found
|
|
if (!_.isEmpty(postsToUpdate)) {
|
|
const postsIds = _.pluck(postsToUpdate, '_id');
|
|
Posts.update({_id: {$in: postsIds}}, {$set: {isFuture: false}}, {multi: true});
|
|
|
|
// log the action
|
|
console.log('// Scheduled posts approved:', postsIds); // eslint-disable-line
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
Meteor.startup(function () {
|
|
addJob();
|
|
});
|
|
|