-
-
Save jplattel/1071682 to your computer and use it in GitHub Desktop.
import os | |
import time | |
document = open("My Clippings.txt","r") | |
data = "".join(document.readlines()) | |
notes = [] | |
try: | |
clippings = data.split('==========') | |
for clip in clippings: | |
clipping = clip.split('Added on ') | |
title = clipping[0].split('\r\n- ')[0].replace('\r\n','') | |
date = clipping[1].split('\r\n')[0] | |
location = clipping[0].split('\r\n- ')[1].replace('\r\n','') | |
text = clipping[1].split('\r\n\r\n')[1] | |
note = {'title': title, 'date': date, 'location': location, 'text': text} | |
notes.append(note) | |
#print note | |
except: | |
print 'Unable parse clipping' | |
def MakeEvernoteNote(note): | |
cmd = ''' | |
osascript<<END | |
tell application "Evernote" | |
set clip to create note title " | |
'''+ unicode(note['title'], errors="ignore") + ''' | |
" with text " | |
'''+ unicode(note['text'], errors="ignore") + "\n" + unicode(note['location'], errors="ignore") + unicode(note['date'], errors="ignore") + ''' | |
" | |
if (not (tag named "Kindle" exists)) then | |
make tag with properties {name:"Kindle"} | |
end if | |
assign tag "Kindle" to clip | |
end tell | |
END''' | |
os.system(cmd) | |
for note in notes: | |
time.sleep(1) | |
MakeEvernoteNote(note) |
OS X only as it uses Applescript for the interaction with Evernote.
I tried running it on OS X 10.7, but I got the following errors until I killed it:
Unable parse clipping
612:615: execution error: Can’t get end. (-1728)
835:838: execution error: Can’t get end. (-1728)
1283:1286: execution error: Can’t get end. (-1728)
1590:1593: execution error: Can’t get end. (-1728)
796:799: execution error: Can’t get end. (-1728)
^CTraceback (most recent call last):
File "KindleEvernoteSync.py", line 43, in
time.sleep(1)
KeyboardInterrupt
Thoughts?
Amendment: It looks like the notes in Evernote were being created up until the point that I killed the process, even though I was getting errors returned in the command line. Looks like it's mostly functional (and awesome. Thanks for writing/sharing this.)
Should this work in Windows, or do I need to use this on a *nix environment?