Skip to content

Instantly share code, notes, and snippets.

@bloom
Created May 18, 2011 00:27
Show Gist options
  • Save bloom/977766 to your computer and use it in GitHub Desktop.
Save bloom/977766 to your computer and use it in GitHub Desktop.
Import to Day One Journal app from MacJournal Export
require "open3"
def readfile(file)
f = File.open(file)
lines = f.readlines("\n\n\n\n")
lines.each do |line|
fields = line.scan(/\s+Date:\s([^\n]+)$\s+Topic:\s([^\n]+)\n(.*)/m)
date = fields[0][0].strip
topic = fields[0][1].strip
text = topic + "\n" + fields[0][2].strip
puts date
puts text
puts "-------------------------------------------------------------"
Open3.popen3("/Applications/Day One.app/Contents/MacOS/dayone", "-d=\"#{date}\"", "new") do |stdin, stdout, stderr|
stdin.write(text)
stdin.close_write
puts stdout.read
end
puts "-------------------------------------------------------------"
end
end
readfile(ARGV[0])
@gennaios
Copy link

cool. I was able to do it with Excel and Applescript. worked great.

@bloom
Copy link
Author

bloom commented Jan 20, 2012

@Tam-Lin
Copy link

Tam-Lin commented Feb 8, 2012

I had some serious issues getting this to work, so I wrote my own in python. See https://github.com/Tam-Lin/MacJournaltoDayOne---Python.

@bloom
Copy link
Author

bloom commented Feb 8, 2012 via email

@AsafKeller
Copy link

The built in importer does not work. It returns: The operation could not be completed. No other information is available about the problem. Can anyone help?

@PolishedStaple
Copy link

What is the latest on the MacJournal importer? Will it import the tags and photos used in MacJournal entries?

Thanks!

@kmlawson
Copy link

Thanks for putting this up. The built-in import of MacJournal files dates the entries by creation date, rather than the MacJournal internal date. This gist addresses this, which is nice. However, with the newest version of Day One (1.10.2) the executable you refer to in line 18 does not work. I changed this line to:

Open3.popen3("/usr/local/bin/dayone", "-d=\"#{date}\"", "new") do |stdin, stdout, stderr|

And this appears to solve it.

@adib
Copy link

adib commented Aug 21, 2019

I've updated @Tam-Lin's script for Day One 2.x. Instructions here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment