def create_note(title, content, tagNames=None, notebookGuid=None): # put the note into the :INBOX notebook by default inbox_nb_guid = notebook(name=':INBOX').guid note_template = u"""<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"> {0} </en-note>""" note = Note() note.title = title.encode('utf-8') note.content = note_template.format(content).encode('utf-8') if tagNames is None: note.tagNames = [] else: note.tagNames = tagNames if notebookGuid is None: note.notebookGuid = inbox_nb_guid else: note.notebookGuid = notebookGuid note = noteStore.createNote(note) return note
def create_note(auth_token, note_store, note_title, note_body, note_tags, parentNotebook=None): body = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" body += "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" body += "<en-note>%s</en-note>" % note_body # strip spaces, see http://dev.evernote.com/doc/reference/Types.html#Struct_Note note_title = note_title.strip() # https://dev.evernote.com/doc/reference/javadoc/constant-values.html#com.evernote.edam.limits.Constants.EDAM_APPLICATIONDATA_VALUE_LEN_MIN if len(note_title) > 255: note_title = note_title[:255] elif not note_title: note_title = "无标题文档" logger.info(f"title: {note_title}") logger.info(f"body: {body}") # Create note object note = Note() note.title = note_title note.content = body note.tagNames = note_tags # parentNotebook is optional; if omitted, default notebook is used if parentNotebook and hasattr(parentNotebook, 'guid'): note.notebookGuid = parentNotebook.guid # Attempt to create note in Evernote account note = note_store.createNote(auth_token, note) return note
def send(self): note = self.note xhtml = XHTML() n = EvernoteTypeNote() n.title = note['title'] n.content = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">' n.content += '<en-note><pre>%s</pre></en-note>' % xhtml.p(note['content'].encode('utf-8')) n.tagNames = [x.strip() for x in note['tags'].split(',') if x.strip()] try: n = self.noteStore.createNote(n) except Exception, e: sublime.error_message('Sublime2Note: Failed to create note. Error detail: %s' % e)
def create_note(accessToken,title,content,notebookGuid,files,tags,password): # Generating note body content = safeglobals.ENCRYPTED_PREFIX+stringMD5(content)+"__"+encryptNote(content,password)+safeglobals.ENCRYPTED_SUFFIX nBody = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" nBody += "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" nBody += "<en-note>%s</en-note>" % content tagNames = [] # Creating note object note = Note() note.title = title.strip() note.content = nBody note.notebookGuid = notebookGuid for tag in tags: tagNames.append(str(tag).strip()) note.tagNames = tagNames # Processing resources resources = [] for file in files: if (file.get('name') and file.get('mime')): with open("static/tmp/"+file.get('name'),"rb") as f: # Calculating hash binaryData = encryptData(f.read(),password) md5 = hashlib.md5() md5.update(binaryData) hash = md5.digest() # Creating Evernote data object data = Data() data.size = len(binaryData) data.bodyHash = hash data.body = binaryData # Creating resource resource = Resource() resource.mime = file.get('mime') resource.data = data # Creating attributes attributes = ResourceAttributes() attributes.fileName = file.get('name') # Adding the resource to resource collection resource.attributes = attributes resources.append(resource) note.resources = resources return note
def createNote(self, title, resource=None): user_store = self.client.get_user_store() note_store = self.client.get_note_store() try: note = Note() note.tagNames = self.tag note.notebookGuid = self.bookguid if resource is not None: note.resources = [resource] self.content += "<span><en-media type=\"%s\" hash=\"%s\"/></span>" % ( resource.mime, resource.data.bodyHash) note.title = title note.content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" note.content += "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" note.content += "<en-note>%s</en-note>" % self.content created_note = note_store.createNote(note) except: return False note_share_url = None note_share_resource_url = None if self.share: note_share_url = ToEver.getNoteShareUrl( sys_config.evernote_url, user_store.getUser().shardId, created_note.guid, note_store.shareNote(self.token, created_note.guid)) if resource is not None: for x in created_note.resources: note_share_resource_url = note_share_url + "/res/%s/%s" % ( x.guid, x.attributes.fileName) message = None if not self.hide: message = "Created note title is '" + title + "'" message += " [" + ToEver.getUserUploadState( note_store.getSyncState().uploaded, user_store.getUser().accounting.uploadLimitNextMonth) + "]" if note_share_url is not None: message += "\n" + "share link --> " + note_share_url if note_share_resource_url is not None: message += "\n" + "share attachment link --> " + note_share_resource_url elif note_share_url is not None: message = note_share_url if note_share_resource_url is not None: message += "\n" + note_share_resource_url if message is not None: print(textui.colored.blue(message)) return True
def add_note(self, text, tag_list): """ :param text: The note text is stored in title field :param tag_list: A list of tag strings to attach to note """ note = EdamNote() if len(text) < EDAM_NOTE_TITLE_LEN_MIN or text.isspace(): note.title = "untitled" elif len(text) > EDAM_NOTE_TITLE_LEN_MAX: note.title = text[0:EDAM_NOTE_TITLE_LEN_MAX] logger.warning("The text is too long, cutting off...") else: note.title = text note.content = encode_note("") note.tagNames = tag_list self.note_store.createNote(note)
def add_note(self, text, tag_list): """ :param text: The note text is stored in title field :param tag_list: A list of tag strings to attach to note """ note = EdamNote() if len(text) < EDAM_NOTE_TITLE_LEN_MIN or text.isspace(): note.title = "untitled" elif len(text) > EDAM_NOTE_TITLE_LEN_MAX: note.title = text[0:EDAM_NOTE_TITLE_LEN_MAX] logger.warning("The text is too long, cutting off...") else: note.title = text note.content = encode_note("") note.tagNames = tag_list self.note_store.createNote(note)
def createNote(self, title, resource=None): user_store = self.client.get_user_store() note_store = self.client.get_note_store() try: note = Note() note.tagNames = self.tag note.notebookGuid = self.bookguid if resource is not None: note.resources = [resource] self.content += "<span><en-media type=\"%s\" hash=\"%s\"/></span>" % (resource.mime, resource.data.bodyHash) note.title = title note.content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" note.content += "<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">" note.content += "<en-note>%s</en-note>" % self.content created_note = note_store.createNote(note) except: return False note_share_url = None note_share_resource_url = None if self.share: note_share_url = ToEver.getNoteShareUrl( sys_config.evernote_url, user_store.getUser().shardId, created_note.guid, note_store.shareNote(self.token, created_note.guid) ) if resource is not None: for x in created_note.resources: note_share_resource_url = note_share_url + "/res/%s/%s" % (x.guid, x.attributes.fileName) message = None if not self.hide: message = "Created note title is '" + title + "'" message += " [" + ToEver.getUserUploadState(note_store.getSyncState().uploaded, user_store.getUser().accounting.uploadLimitNextMonth) + "]" if note_share_url is not None: message += "\n" + "share link --> " + note_share_url if note_share_resource_url is not None: message += "\n" + "share attachment link --> " + note_share_resource_url elif note_share_url is not None: message = note_share_url if note_share_resource_url is not None: message += "\n" + note_share_resource_url if message is not None: print(textui.colored.blue(message)) return True
self.note["content"] = self.view.substr(region) def do_update(**kwargs): for key, value in kwargs.items(): self.note[key] = value self.send() def update_title(title): def update_tags(tags): do_update(title=title, tags=tags) self.window.show_input_panel("tags:","",update_tags,None,None) self.window.show_input_panel("title:","",update_title,None,None) def send(self): note = self.note dev_token = "S=s1:U=3a529:E=146e0f0c800:C=13f893f9c03:P=1cd:A=en-devtoken:V=2:H=987718ca0ff7773fee5fe6d1e73fe99f" client = EvernoteClient(token=dev_token) try: noteStore = client.get_note_store() except EDAMUserException, e: print "Authentication Failed. Error: %s" % e else: xhtml = XHTML() n = EvernoteTypeNote() n.title = note["title"] n.content = '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">' n.content += '<en-note><pre>%s</pre></en-note>' % xhtml.p(note["content"].encode('utf-8')) n.tagNames = [x.strip() for x in note["tags"].split(',') if x.strip()] try: n = noteStore.createNote(n) except Exception, e: print "Note Creation Failed. Error: %s" % e def run(self, edit): self.process_note()