Skip to content

Instantly share code, notes, and snippets.

@cdeutsch
Created February 9, 2015 13:20
Show Gist options
  • Select an option

  • Save cdeutsch/6e1ce81cd310a1f2aef8 to your computer and use it in GitHub Desktop.

Select an option

Save cdeutsch/6e1ce81cd310a1f2aef8 to your computer and use it in GitHub Desktop.
dayone-timehop.js - Find out what happened in Day One on this day each year like Timehop
#! /usr/local/bin/node
// BASED OFF THIS SCRIPT: https://gist.github.com/aliou/7310354
var _ = require('underscore');
var DayOne = require('dayone').DayOne;
var DayOneEntry = require('dayone').DayOneEntry;
var moment = require('moment');
var path = require('path-extra');
var notifier = require('node-notifier');
var dayoneDirectory = 'Dropbox/Apps/Day One/Journal.dayone/';
var journal = new DayOne({directory: path.join(path.homedir(), dayoneDirectory)});
journal.list({}, function(err, entries) {
var startYear = 2012;
var endYear = moment().year();
var data = [];
for(var year = startYear; year < endYear; year++) {
var start = moment().startOf('day').year(year);
var end = moment().endOf('day').year(year);
var filteredEntries = _.filter(entries, function(entry) {
return (moment(entry.creationDate) > start && moment(entry.creationDate) < end);
});
filteredEntries.sort(function(a, b) {
if (a.creationDate > b.creationDate)
return (1);
if (a.creationDate < b.creationDate)
return (-1);
return (0);
});
filteredEntries.forEach(function(entry) {
console.log(entry.creationDate + ' => dayone://edit?entryId=' + entry.UUID);
});
data.concat(
_.map(filteredEntries, function(entry) {
var link = 'dayone://edit?entryId=' + entry.UUID;
var date = (new Date(entry.creationDate)).toDateString();
var title = entry.text.split('\n')[0];
notifier.notify({
title: 'DayOne Timehop',
message: title + "\n" + date,
open: link,
contentImage: null,
icon: '/Applications/Day One.app/Contents/Resources/About-DayOne-Icon.tiff' // absolute path (not balloons)
})
return {
date: date,
title: title,
link: link
};
})
);
}
console.log('-----------------');
console.log(JSON.stringify(data));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment