Exemple #1
0
 newPrefs.save(function(err, res) {
   if (err) {
     Logger.error('could not update preference set for user %s', this.userId, err);
   } else {
     Logger.debug('successfully updated preference set for user %s', this.userId, res);
   }
 }.bind(this));
Exemple #2
0
  _.each(events, function(event) {
    // If event doesn't have a start time, then give up :(
    if (!event.start_time)
      return [];

    // Only check for similar events close in time to the current event.
    let tolerableStartTime = new Date(event.start_time.getTime() - (60 * 60 * 24 * 7 * 1000));
    let tolerableEndTime = new Date(event.start_time.getTime() + (60 * 60 * 24 * 7 * 1000));

    // Get all the similar events to this event based on time and edit distance between title and description.
    let similarEvents = _.filter(events, function(possibleSimilarEvent) {
      if (possibleSimilarEvent.id == event.id)
        return false;

      // Make sure this event has a start time.
      if (!possibleSimilarEvent.start_time)
        return false;

      // Check if this event's start time is within the tolerance.
      if (possibleSimilarEvent.start_time.getTime() > tolerableEndTime.getTime() ||
        possibleSimilarEvent.start_time.getTime() < tolerableStartTime.getTime()) {
        return false;
      }

      let descriptionsMatch = possibleSimilarEvent.description && event.description &&
        stringSimilarity.compareTwoStrings(possibleSimilarEvent.description, event.description) > 0.5;


      return (
        stringSimilarity.compareTwoStrings(possibleSimilarEvent.title, event.title) > 0.5 &&
        descriptionsMatch
      );
    });


    similarEvents = _.map(similarEvents, function(event) {
      return event.id;
    });

    // If the similar events are different then the current similar events, update it.
    if (!_.isEqual(similarEvents, event.similar_events)) {
      if (similarEvents.length > 0) {
        Logger.debug('Found similar events for event %s', event.id, similarEvents);
      }
      event.similar_events = similarEvents;
      event.save(function(err, res) {
        if (err) {
          Logger.error('error occurred while saving similar events for event %s', event.id, err);
        }
      });
    }
  });
Exemple #3
0
Events.before.remove(function(userId, doc) {
  Logger.debug('Removing event %s', doc._id, {expires: doc.expires});

  if (Raccoon) {
    if (doc.likes && doc.likes.length > 0) {
      _.each(doc.likes, function(userId) {
        Raccoon.unliked(userId, doc._id);
      });
    }

    if (doc.dislikes && doc.dislikes.length > 0) {
      _.each(doc.dislikes, function(userId) {
        Raccoon.undisliked(userId, doc._id);
      });
    }
  }
});
Exemple #4
0
Events.before.update(function(userId, doc, fieldNames, modifier, options) {
  let now = new Date();
  modifier.$set = modifier.$set || {};
  modifier.$set.expires = new Date(now.getTime() + (3600000 * (Meteor.settings.hoursEventsExpiresIn || 24)));
  Logger.debug('Updating event %s', doc._id);
});
Exemple #5
0
Events.before.insert(function(userId, doc) {
  let now = new Date();
  doc.expires = new Date(now.getTime() + (3600000 * (Meteor.settings.hoursEventsExpiresIn || 24)));
  Logger.debug('Inserting event %s', doc._id);
});