Updated on September 6, 2012 This AppleScript requires the download and installation of the DayOne Command Line App: CLICK HERE TO DOWNLOAD Day One is a journal / diary / text logging application for the Mac which has attracted a lot of positive attention: It has tremendous visual polish and appeal, prompts you to write […]

(*
Veritrope.com
Export Evernote Items to DayOne
Version 0.98 (Beta 2)
September 5, 2012

// UPDATE NOTICES
     ** Follow @Veritrope on Twitter, Facebook, Google Plus, and ADN for Update Notices! **

// SUPPORT VERITROPE!
     If this AppleScript was useful to you, please take a second to show your love here:
     http://veritrope.com/support

// SCRIPT INFORMATION AND UPDATE PAGE
     http://veritrope.com/code/export-evernote-items-to-day-one

// REQUIREMENTS
    ** THIS SCRIPT REQUIRES YOU TO DOWNLOAD THE DAYONE COMMAND LINE APP:
    http://dayoneapp.com/downloads/dayone-cli.pkg
   
// CHANGELOG
Version     0.98            - UPDATED TO USE NEW CLI APP
        0.91        - Added Optional Header
            0.90 (Beta 1)   - Initial Release

// RECOMMENDED INSTALLATION INSTRUCTIONS:


// TERMS OF USE:
     This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

     To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.


*)


(*
======================================
// USER SWITCHES (YOU CAN CHANGE THESE!)
======================================
*)

-- IF YOU'D LIKE THE SCRIPT TO CREATE A
-- "HEADER LINE" FOR THE DAY ONE ENTRY USING
-- THE TITLE OF THE EVERNOTE ITEM, THEN
-- CHANGE THIS VALUE TO "ON"…
property dayHeader : "OFF"

(*
======================================
// OTHER PROPERTIES (USE CAUTION WHEN CHANGING)
======================================
*)


property noteName : ""
property noteCreated : ""
property noteHTML : ""
property noteLink : ""
property note_Date : ""

(*
======================================
// MAIN PROGRAM
======================================
*)


tell application "Evernote"
    set selected_Items to selection
    repeat with selected_Item in selected_Items
        --GET THE EVERNOTE DATA
        my getEvernote_Info(selected_Item)
       
        --CONVERT HTML TO PLAIN TEXT
        set note_Text to my convert_Plaintext(noteHTML)
       
        --CONVERT DATE TO PLAIN TEXT STRING
        set note_Date to my convert_Date(noteCreated)
       
        --MAKE THE NEW ITEM IN DAY ONE
        my make_DayOne(noteName, note_Date, note_Text, noteLink)
       
    end repeat
end tell

(*
======================================
// PREPARATORY SUBROUTINES
======================================
*)

--GET THE EVERNOTE DATA
on getEvernote_Info(theNotes)
    tell application "Evernote"
        try
            set noteID to (local id of item 1 of theNotes)
            set noteName to (title of item 1 of theNotes)
            set noteSource to (source URL of item 1 of theNotes)
            set noteCreated to (creation date of item 1 of theNotes)
            set noteModified to (modification date of item 1 of theNotes)
            set noteTags to (tags of item 1 of theNotes)
            set noteAttachments to {attachments of item 1 of theNotes}
            set noteAltitude to (altitude of item 1 of theNotes)
            set noteENML to (ENML content of item 1 of theNotes)
            set noteHTML to (HTML content of item 1 of theNotes)
            set noteLat to (latitude of item 1 of theNotes)
            set noteLong to (longitude of item 1 of theNotes)
            set noteNotebook to (name of notebook of item 1 of theNotes)
            set noteLink to (note link of item 1 of theNotes)
        end try
    end tell
end getEvernote_Info

(*
======================================
// UTILITY SUBROUTINES
======================================
*)


--CONVERT HTML TO PLAIN TEXT
on convert_Plaintext(noteHTML)
    set shell_Text to "echo " & (quoted form of noteHTML) & " | textutil -stdin -convert txt -stdout"
    set note_Text to do shell script shell_Text
    return note_Text
end convert_Plaintext

--CONVERT DATE TO PLAIN TEXT STRING
on convert_Date(noteCreated)
    set AppleScript's text item delimiters to ""
    set m to ((month of noteCreated) * 1)
    set d to (day of noteCreated)
    set y to (year of noteCreated)
    set t to (time string of noteCreated)
    set date_String to (m & "/" & d & "/" & y & " " & t) as string
    return date_String
end convert_Date

(*
======================================
// MAIN HANDLER SUBROUTINES
======================================
*)


--MAKE ITEM IN DAY ONE
on make_DayOne(noteName, note_Date, note_Text, noteLink)
    if dayHeader is "ON" then
        --ADD A "HEADER" AND MAKE THE ENTRY
        set note_Text to (noteName & return & return & note_Text)
        set new_DayOne to "echo " & (quoted form of note_Text) & " | '/usr/local/bin/dayone' -d=\"" & note_Date & "\" new"
        do shell script new_DayOne
    else
        --MAKE THE ENTRY WITH NO "HEADER"
        set new_DayOne to "echo " & (quoted form of note_Text) & " | /usr/local/bin/dayone -d=\"" & note_Date & "\" new"
        do shell script new_DayOne
    end if
end make_DayOne