Example #1
0
def getToDos(day):
    dev_token = getToken(False)
    client = EvernoteClient(token=dev_token, sandbox=False)
    notestore = client.get_note_store()
    ToDoTags = getToDoTags(dev_token, notestore)
    dayGuid = getDayTag(day, notestore)
    myfilter = NoteFilter()
    spec = NotesMetadataResultSpec()
    spec.includeTitle = True
    mylist = []
    noteguids = {}
    TODOLIST = dict()

    notebody = ""

    for tag, guid in ToDoTags.iteritems():
        mylist = []
        mylist.append(guid)
        mylist.append(dayGuid)
        myfilter.tagGuids = mylist
        notes = notestore.findNotesMetadata(dev_token, myfilter, 0, 100, spec)
        TODOLIST[tag] = []
        for note in notes.notes:
            TODOLIST[tag].append(note.title)

    return TODOLIST
Example #2
0
 def search(self, fp):
     fl = NoteFilter(order=NoteSortOrder.UPDATED)
     fl.words = 'intitle:"%s"' % fp
     sp = NotesMetadataResultSpec(includeTitle=True)
     result = self.ns.findNotesMetadata(self.tk, fl, 0, 1, sp).notes
     if result:
         return result[0].guid
     return False
Example #3
0
 def get_notes(self, *tag_names):
     """Return a list of notes matching the tag_names"""
     note_filter = NoteFilter()
     note_filter.tagGuids = [self.tags[tn].guid for tn in tag_names if tn]
     result_spec = NotesMetadataResultSpec()
     result_spec.includeTitle = True
     result_spec.includeTagGuids = True
     notes = self.note_store.findNotesMetadata(note_filter, 0, 100, result_spec)
     for note in notes.notes:
         yield note
Example #4
0
 def getNotesInNotebook(self, wanted_notebook):
     filter = NoteFilter()
     updated_filter = NoteFilter(words='evernote')
     filter.notebookGuid = wanted_notebook.guid;
     offset = 0
     max_notes = 10
     result_spec = NotesMetadataResultSpec(includeTitle=True)
     #notes = note_store.findNotes(auth_token, filter, offset, max_notes);
     notes_data = self.note_store.findNotesMetadata(auth_token, filter, offset, max_notes, result_spec);
     notes = notes_data.notes
     return notes
Example #5
0
 def find_notes_filter_by_tag_guids(self, guids_list):
     evernote_filter = NoteFilter()
     evernote_filter.ascending = False
     evernote_filter.tagGuids = guids_list
     spec = NotesMetadataResultSpec()
     spec.includeTitle = True
     note_list = self.noteStore.findNotesMetadata(self.token, evernote_filter, 0, 10000, spec)
     guids = []
     for note in note_list.notes:
         guids.append(note.guid)
     return guids
Example #6
0
 def listar_notes(self):
     note_store = self.client.get_note_store()
     filter = NoteFilter()
     filter.word = "notebook:Faculdade"
     spec = NotesMetadataResultSpec()
     spec.includeTitle = True
     all_notes = note_store.findNotesMetadata(self.dev_token, filter, 0, 10, spec)
     for note in all_notes.notes:
         print(note.title)
         conteudo = note_store.getNoteContent(note.guid)
         print(conteudo)
    def process_goal_updates(self, stored_goal_states):
        note_filter = NoteFilter()

        # Get all the goals
        for notebook in self.get_note_store().listNotebooks():

            if notebook.name not in ["Backlog","Current","Complete","Dropped"]:
                continue

            note_filter.notebookGuid = notebook.guid

            note_metadata_list = self.get_all_notes_metadata(self.auth_token,note_filter,NoteStore.NotesMetadataResultSpec())

            # For each goal
            for note_metadata in note_metadata_list:

                # Check if the goal is new or has changed state (moved from another notebook)
                if note_metadata.guid in stored_goal_states[notebook.name]:
                    # the goal is in the same state as it was the last time we checked
                    continue
                else:
                    # the goal is new, or it has changed state
                    # search to see if it was previously in a different notebook
                    other_notebooks = ["Backlog","Current","Complete","Dropped"]
                    other_notebooks.remove(notebook.name)

                    goal_has_moved = None

                    for previous_notebook in other_notebooks:
                        if note_metadata.guid in stored_goal_states[previous_notebook]:
                            # We know the note used to be in this notebook, so annotate the note and update what we know

                            annotation = (datetime.now()-timedelta(days=1)).strftime("%Y-%m-%d") \
                                                        + " Moved from " + previous_notebook \
                                                        + " to " + notebook.name
                            self.annotate_note(note_metadata.guid,annotation,False)

                            stored_goal_states[previous_notebook].remove(note_metadata.guid)
                            stored_goal_states[notebook.name].append(note_metadata.guid)

                            goal_has_moved = True
                            break

                    if goal_has_moved is None:
                        # The note has been newly added
                        # So annotate the note and save the state of the note locally

                        annotation = (datetime.now()-timedelta(days=1)).strftime("%Y-%m-%d") \
                                                        + " Added to " + notebook.name
                        self.annotate_note(note_metadata.guid,annotation,True)

                        stored_goal_states[notebook.name].append(note_metadata.guid)

        return stored_goal_states
Example #8
0
 def getnotes(self,auth_token, nb_guid, fun):
     spec = NotesMetadataResultSpec()
     spec.includeTitle=True
     filter=NoteFilter()
     filter.notebookGuid=nb_guid
     note_store = self.client.get_note_store()
     notelist = []
     for i in range(0,500,250):
         notes = note_store.findNotesMetadata(auth_token, filter, i, i+250, spec)
         notelist.extend([fun(n) for n in notes.notes])
     return notelist
Example #9
0
 def getnotes(self, auth_token, nb_guid, fun):
     spec = NotesMetadataResultSpec()
     spec.includeTitle = True
     filter = NoteFilter()
     filter.notebookGuid = nb_guid
     note_store = self.client.get_note_store()
     notelist = []
     for i in range(0, 500, 250):
         notes = note_store.findNotesMetadata(auth_token, filter, i,
                                              i + 250, spec)
         notelist.extend([fun(n) for n in notes.notes])
     return notelist
Example #10
0
 def find_notes_filter_by_tag_guids(self, guids_list):
     evernote_filter = NoteFilter()
     evernote_filter.ascending = False
     evernote_filter.tagGuids = guids_list
     spec = NotesMetadataResultSpec()
     spec.includeTitle = True
     note_list = self.noteStore.findNotesMetadata(self.token,
                                                  evernote_filter, 0, 10000,
                                                  spec)
     guids = []
     for note in note_list.notes:
         guids.append(note.guid)
     return guids
Example #11
0
def get_tip_notes(start_date, end_date):
	tip_notes = []

	noteFilter = NoteFilter()
	noteFilter.words = "tag:tip created:%s -created:%s" % (start_date, end_date) # notes with tag #tip created between 2012-01-01 and 2014-09-08 (flight dates)
	note_list = note_store.findNotes(auth_token, noteFilter, 0, 10)

	for note in note_list.notes:
		guid = note.guid
		title = note.title
		url = "evernote:///view/8f65c/s1/%s/%s/" % (guid, guid)
		tip_notes.append( '<div><en-todo/> %s (<a href="%s">view full note</a>)</div>' % (title, url) )
	return tip_notes
Example #12
0
    def list_notes(self, notebook):
        # ノート検索条件を指定。ノートブックのIDを指定。更新日でソート
        note_filter = NoteFilter()
        note_filter.notebookGuid = notebook.guid
        note_filter.order = NoteSortOrder.UPDATED

        # ノート検索結果のフォーマットを指定。タイトルを含む
        result_format = NotesMetadataResultSpec()
        result_format.includeTitle = True

        # ノートのメタデータリストを取得
        note_meta_list = self.note_store.findNotesMetadata(note_filter, 0, 10, result_format)
        return [Note(self, note_meta) for note_meta in note_meta_list.notes]
Example #13
0
def load_notes(note_store,accessToken,type,guid,display):

	# Connecting to Evernote
    notes = []
    offset = 0
    maxNotes = 100
    # Creating NoteFilter
    if (type == "search"):
    	noteFilter = NoteFilter(order=NoteSortOrder.UPDATED,words=guid)
    elif (type == "tag"):
    	noteFilter = NoteFilter(order=NoteSortOrder.UPDATED,tagGuids=[guid])
    else:
    	noteFilter = NoteFilter(order=NoteSortOrder.UPDATED,notebookGuid=guid)

        if int(display) == safeglobals.NOTES_ENCRYPTED_ONLY:
            noteFilter.words = safeglobals.ENCRYPTED_PREFIX[:-2]
        elif int(display) == safeglobals.NOTES_UNENCRYPTED_ONLY:
            noteFilter.words = "-%s" % safeglobals.ENCRYPTED_PREFIX[:-2]

    # Creating ResultSpec
    result_spec = NotesMetadataResultSpec(includeTitle=True,includeCreated=True,includeUpdated=True,includeNotebookGuid=True)
    
    # Getting the result
    response = note_store.findNotesMetadata(accessToken, noteFilter, offset, maxNotes, result_spec)

    # Parsing the list of NotesMetadata
    for metadata in response.notes:
        notes.append({"guid":metadata.guid,"updated":millisToDate(metadata.updated),"created":millisToDate(metadata.created),"title":metadata.title})

    # Caching notes
    cache_notes(notes,type,guid)
    return notes
Example #14
0
    def sync_notebook_notes(self, notebook):
        if not self.should_sync_notebook_notes(notebook):
            return

        logging.info('sync notebook: ' + notebook.name)
        note_filter = NoteFilter()
        note_filter.notebookGuid = notebook.guid

        note_list = []
        current_offset = 0
        while True:
            logging.info('sync notebook: ' + notebook.name + ' - ' +
                         str(current_offset))
            note_batch = self.note_store.findNotes(note_filter, current_offset,
                                                   NOTES_LOAD_BATCH_SIZE + 1)
            if len(note_batch.notes) < NOTES_LOAD_BATCH_SIZE + 1:
                note_list += note_batch.notes
                break
            else:
                note_list += note_batch.notes[:-1]
                current_offset += NOTES_LOAD_BATCH_SIZE

        if notebook.guid in self.notebook_notes:
            prev_notes = self.notebook_notes[notebook.guid].copy()
        else:
            prev_notes = {}
        new_notes = {}

        for note in note_list:
            new_notes[note.guid] = note
            if note.guid not in prev_notes:
                logging.info('sync new note: ' + note.title)
                self.add_notebook_note_to_fuse(note)
            elif note.title != prev_notes[note.guid].title:
                logging.info('sync note renamed: ' +
                             prev_notes[note.guid].title + '->' + note.title)
                self.rename_notebook_note_in_fuse(note.notebookGuid,
                                                  prev_notes[note.guid].title,
                                                  note.title)

        for prev_note_guid, prev_note in prev_notes.items():
            if prev_note_guid not in new_notes:
                logging.info('sync: note deleted: ' + prev_note.name)
                self.remove_notebook_note_from_fuse(prev_note.notebookGuid,
                                                    prev_note_guid)

        self.notebook_notes[notebook.guid] = new_notes
        logging.info('sync notebook - done: ' + notebook.name)
        self.notebooks_notes_sync_time[notebook.guid] = time()
Example #15
0
def get_notes(userStore, noteStore):
    guid = get_site_notebook().guid
    published_guid = get_published_tag(guid)

    note_filter = NoteFilter()
    note_filter.notebookGuid = guid
    note_filter.order = NoteSortOrder.CREATED
    note_filter.tagGuids = [published_guid]
    spec = NotesMetadataResultSpec(includeTitle=True,
                                   includeCreated=True,
                                   includeUpdated=True,
                                   includeNotebookGuid=True,
                                   includeTagGuids=True)
    notes = noteStore.findNotesMetadata(note_filter, 0, 100, spec).notes
    return notes
Example #16
0
def searchNote(client, note_store, notebooks, notebookname, notename):

    # 対象のノートブックを検索
    copied_notebook_guid = None
    for notebook in notebooks:
        if notebook.name == notebookname:
            copied_notebook_guid = notebook.guid
            break
    # 該当するノートブックが存在しない場合にはエラー
    if copied_notebook_guid == None:
        return "", ""

    # 対象のノートを検索
    offset = 0
    max_notes = 400
    filter = NoteFilter(notebookGuid=copied_notebook_guid)
    result_spec = NotesMetadataResultSpec(includeTitle=True)
    result_list = note_store.findNotesMetadata(EVERNOTE_DEV_TOKEN, filter,
                                               offset, max_notes, result_spec)
    copied_note_guid = None
    for note in result_list.notes:
        if note.title == notename:
            copied_note_guid = note.guid
            break
    # 該当するノートが存在しない場合にはエラー
    if copied_note_guid == None:
        return "", ""

    return copied_notebook_guid, copied_note_guid
Example #17
0
def get_notes():
    auth_token = request.args.get('auth_token')
    if not auth_token:
        return

    notebook = request.args.get('notebook')
    if not notebook:
        return

    client = EvernoteClient(token=auth_token)
    note_store = client.get_note_store()

    offset = 0
    max_notes = 1000
    filter = NoteFilter(order=Types.NoteSortOrder.UPDATED,
                        notebookGuid=notebook)
    result_spec = NotesMetadataResultSpec(includeTitle=True)
    metadata = note_store.findNotesMetadata(auth_token, filter, offset,
                                            max_notes, result_spec)

    notes = []
    for n in metadata.notes:
        content = note_store.getNoteContent(auth_token, n.guid)
        notes.append({
            'guid': n.guid,
            'content': unicode(ENMLToHTML(content)),
            'title': n.title
        })

    return jsonify(notes=notes)
Example #18
0
def view_notebook_detail(request):
    if request.method == "POST":
        notes_values = ""
        try:
            user_obj = User.objects.get(username=request.user.get_username())
            evernote_token = user_obj.evernotecredential.evernote_token
            client = get_evernote_client(evernote_token)
            note_store = client.get_note_store()
            userStore = client.get_user_store()
            updated_filter = NoteFilter(
                notebookGuid=request.POST.get("guid_", ""))
            offset = 0
            max_notes = 10
            result_spec = NotesMetadataResultSpec(includeTitle=True)
            notes = note_store.findNotesMetadata(updated_filter, offset,
                                                 max_notes, result_spec)
            notes_values = notes.notes
        except Exception as e:
            print "{}:{}".format(e.args, e.message)
            raise

        return render(
            request, 'notes.html', {
                'notes': notes_values,
                'notebook_id': request.POST.get("guid_", ""),
                'username': request.user.get_username()
            })
Example #19
0
def get_todo_note_guids(session):
    # Evernote's Note Store object is the access point to all note-related
    # information
    auth_token = session['en_identifier']

    note_store = enauth.get_notestore(session)

    all_tags = note_store.listTags(auth_token) # get the todo tag guid
    todo_guid = [tag for tag in all_tags if tag.name == "todo"][0].guid

    note_filter = NoteFilter() # the notefilter object allows us to define filters for our eventual findNotesMetadata call
    note_filter.tagGuids = [todo_guid] # find note with todo guid (ie, the todo note)
    offset, max_notes = 0, 10
    result_spec = NotesMetadataResultSpec(includeTitle=True) # allows us to request specific info be returned about the note
    result_list = note_store.findNotesMetadata(auth_token, note_filter, offset, max_notes, result_spec)
    return note_store, [note.guid for note in result_list.notes]
Example #20
0
 def search_notes(self, words):
     filter = NoteFilter(words=words)
     spec = NotesMetadataResultSpec()
     spec.includeTitle = True
     note_list = self.note_store.findNotesMetadata(self.token, filter, 0,
                                                   100, spec)
     return note_list
Example #21
0
def list_notes(note_store, notebook):

    filter = NoteFilter(notebookGuid=notebook.guid)
    spec = NotesMetadataResultSpec(includeTitle=True,
                                   includeContentLength=True,
                                   includeCreated=True,
                                   includeUpdated=True)

    notes = []
    offset = 0
    remain = EDAM_USER_NOTES_MAX

    while remain > 0:
        notes_list = note_store.findNotesMetadata(filter, offset, remain, spec)

        # See http://dev.evernote.com/doc/reference/NoteStore.html#Struct_NotesMetadataList
        remain = notes_list.totalNotes - (notes_list.startIndex +
                                          len(notes_list.notes))
        offset += len(notes_list.notes)

        notes.extend(notes_list.notes)

    for note in notes:
        created_time = datetime.datetime.fromtimestamp(note.created *
                                                       TIMESTAMP_RESOLUTION)
        updated_time = datetime.datetime.fromtimestamp(note.updated *
                                                       TIMESTAMP_RESOLUTION)
        title = note.title.decode('utf-8')
        print(u'  {} ({}) ctime={} mtime={}'.format(title, note.guid,
                                                    created_time,
                                                    updated_time))
Example #22
0
 def defaultSearchFilter(self, notebook):
     # `order = 1' -> order by created
     # `order = 2' -> order by updated
     # @see NoteStoreOrder at https://dev.evernote.com/doc/reference/Types.html
     searchFilter = NoteFilter(order=2,
                               ascending=False,
                               notebookGuid=notebook.guid)
     return searchFilter
Example #23
0
def iterate_through_evernote(evernote_lists,noteStore,google_lists,google_auth):
	evernote_dev_token = 'S=s317:U=2a12764:E=14524e2f945:C=13dcd31cd47:P=1cd:A=en-devtoken:V=2:H=4ae170cd15a53f88d0b2150c23fcae0b'
	notebooks = noteStore.listNotebooks()
	for i in notebooks:
		filter = NoteFilter()
		filter.notebookGuid = i.guid
		notes = noteStore.findNotes(evernote_dev_token,filter,0,100)
		notebook_name = ''
		if i.name == "gophersbball17's notebook":
			notebook_name = "testing55318's list"
		else:
			notebook_name = i.name
		google_guid = google_lists[1][google_lists[0].index(notebook_name)]
		gList = get_google_list_items(google_guid)
		for n in notes.notes:
			if n.title not in gList:
				create_google_list_item(google_guid,n.title,google_auth)
def process_notebook(notebook, note_store, user):

    print_info("Processing notebook:" + notebook.name)

    note_filter = NoteFilter(order=NoteSortOrder.TITLE)
    note_filter.notebookGuid = notebook.guid
    result_spec = NotesMetadataResultSpec(includeTitle=True)
    result_list = note_store.findNotesMetadata(note_filter, 0, MAX_NOTES, result_spec)

    notes = []
    for note in result_list.notes:
        notes.append({
            'title': note.title,
            'link':  generate_note_link(user, note)
        })

    return notes
Example #25
0
    def runBackup(self):
        self.initClient()

        notebooks = self.noteStore.listNotebooks(self.token)

        notebookIndex = 0
        for notebook in notebooks:
            self.progressHandler.startTask('Backing up notebook ' +
                                           notebook.name)

            filt = NoteFilter()
            filt.notebookGuid = notebook.guid
            notelist = self.noteStore.findNotes(self.token, filt, 0, 100)

            if not len(notelist.notes): continue

            notes = []

            self.progressHandler.startTask('Notebook: ' + notebook.name)

            i = 0
            for note in notelist.notes:
                i += 1
                notes.append(self.getNote(notebook.name, note.guid))

                notesProgress = float(i) / len(notelist.notes) / len(notebooks)
                notebookProgress = float(notebookIndex) / len(notebooks)
                self.progressHandler.setProgress(notesProgress +
                                                 notebookProgress)

            if self.add_note_files:
                for note in notes:
                    filename = note['title'] + '.xml'
                    self.output.set(filename,
                                    note['content_raw'],
                                    bucket=notebook.name + '/notes')

            if self.create_json:
                jsonData = json.dumps(notes)
                self.output.set('data.json', jsonData, bucket=notebook.name)

            if self.create_csv:
                self.writeCsvData(notebook.name, 'data.csv', notes)

            notebookIndex += 1
 def get_notes_with_tag(self, tag):
     """ Gets all the notes with the tag "tag"
     """
     notestore = self._get_note_store()
     allTags = notestore.listTags(self.oauth_token)
     tag = [x for x in allTags if x.name == tag][0]
     nFilter = NoteFilter(tagGuids=[tag.guid])
     notes = notestore.findNotes(self.oauth_token, nFilter, 0, 10)
     return notes.notes
Example #27
0
def find_note(keywords):
    """
    Find note content by keyword.
    :param keywords: (str) keyword for search.
    :return: (str) first result content.
    """
    from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec
    dev_token, note_store = connect_note()
    search = NoteFilter()
    search.words = keywords
    search.ascending = False

    spec = NotesMetadataResultSpec()
    spec.includeTitle = True

    our_note_list = note_store.findNotesMetadata(dev_token, search, 0, 100, spec)
    note_content = note_store.getNoteContent(dev_token, our_note_list.notes[0].guid)
    return note_content
Example #28
0
def get_evernote_list_items(noteStore):
	evernote_dev_token = 'S=s317:U=2a12764:E=14524e2f945:C=13dcd31cd47:P=1cd:A=en-devtoken:V=2:H=4ae170cd15a53f88d0b2150c23fcae0b'
	dict = {}
	notebooks = noteStore.listNotebooks()
	for i in notebooks:
		filter = NoteFilter()
		filter.notebookGuid = i.guid
		notes = noteStore.findNotes(evernote_dev_token,filter,0,100)
		notebook_name = ''
		if i.name == "gophersbball17's notebook":
			notebook_name = "testing55318's list"
		else:
			notebook_name = i.name
		note_names = [i.guid]
		for n in notes.notes:
			note_names.append(n.title)
		dict[notebook_name] = note_names
	return dict
Example #29
0
def getFirstNoteBook():

    userStore = client.get_user_store()
    noteStore = client.get_note_store()
    note = noteStore.listNotebooks()
    user = userStore.getUser()

    firstNotebook = note[0]
    global firstID
    firstID = firstNotebook.guid

    print (" ")
    print ("First notebook in the stack")
    print firstNotebook.name
    print firstID

    print (" ")

    print " Notes in " + firstNotebook.name

    # filter = NoteFilter()
    # filter.notebookGuid = firstID
    # filter.order = Types.NoteSortOrder.UPDATED
    # filter.ascending = False

    updated_filter = NoteFilter(order=NoteSortOrder.UPDATED)
    updated_filter.notebookGuid = firstID
    offset = 0
    max_notes = 10
    result_spec = NotesMetadataResultSpec(includeTitle=True)
    result_list = noteStore.findNotesMetadata(dev_token, updated_filter, offset, max_notes, result_spec)

    # note is an instance of NoteMetadata
    # result_list is an instance of NotesMetadataList

    for note in result_list.notes:
        print note.title
        notesContents[note.title] = noteStore.getNoteContent(note.guid)

    allNotes.append(note)

    print (" ")
    print ("Username")
    print user.username
Example #30
0
def get_ev_notes():
    dev_token = app.config['EN_DEV_TOKEN']
    notestore_url = app.config['EN_NOTESTORE_URL']
    nb_guid = app.config['EN_NB_GUID']

    client = EvernoteClient(token=dev_token)
    note_store = client.get_note_store()

    filt = NoteFilter()
    filt.notebookGuid = nb_guid

    spec = NotesMetadataResultSpec()
    spec.includeTitle = True

    notemetalist = note_store.findNotesMetadata(dev_token, filt, 0, 100, spec)
    notes = []
    for note_data in notemetalist.notes:
        note = note_store.getNote(dev_token, note_data.guid, True, True, True,
                                  True)

        title = note.title
        author = note.attributes.author
        date = note.updated
        url = note.attributes.sourceURL
        cont = note.content
        note_tags = []

        tag_guids = note.tagGuids
        if tag_guids is not None:
            for tag_guid in tag_guids:
                tag = note_store.getTag(dev_token, tag_guid)
                note_tags.append({'guid': tag_guid, 'name': tag.name})

        notes.append({
            'guid': note_data.guid,
            'title': title,
            'date_modified': date,
            'author': author,
            'content': cont,
            'tags': note_tags
        })

    #print notes
    return dumps(notes)
Example #31
0
    def __get_all_notes_metadata_from_notebook(self, notebook_guid, note_store,
                                               token):
        notes_filter = NoteFilter(notebookGuid=notebook_guid)

        spec = NotesMetadataResultSpec()
        spec.includeTitle = True

        allNotesFromNotebook = note_store.findNotesMetadata(
            token, notes_filter, 0, 250, spec)
        return allNotesFromNotebook.notes
 def retrieve_note_content(self):
     note_filter = NoteFilter(order=2,
                              notebookGuid=self.get_notebook_guid())
     result_spec = NotesMetadataResultSpec(includeTitle=True)
     notesMetadata = self._note_store.findNotesMetadata(
         note_filter, 0, 1, result_spec)
     if notesMetadata.notes:
         note_guid = notesMetadata.notes[0].guid
         return self._note_store.getNoteContent(note_guid)
     return 'ERROR: There are no notes in the notebook.'
Example #33
0
  def runBackup(self):
    self.initClient()

    notebooks = self.noteStore.listNotebooks(self.token)
    
    notebookIndex = 0
    for notebook in notebooks:
      self.progressHandler.startTask('Backing up notebook ' + notebook.name)

      filt = NoteFilter()
      filt.notebookGuid = notebook.guid
      notelist = self.noteStore.findNotes(self.token, filt, 0, 100)

      if not len(notelist.notes): continue

      notes = []

      self.progressHandler.startTask('Notebook: ' + notebook.name)

      i = 0
      for note in notelist.notes:
        i += 1
        notes.append(self.getNote(notebook.name, note.guid))
        
        notesProgress = float(i) / len(notelist.notes) / len(notebooks)
        notebookProgress = float(notebookIndex) / len(notebooks)
        self.progressHandler.setProgress(notesProgress + notebookProgress)

      if self.add_note_files:
        for note in notes:
          filename = note['title'] + '.xml'
          self.output.set(filename, note['content_raw'],
            bucket=notebook.name + '/notes')

      if self.create_json:
        jsonData = json.dumps(notes)
        self.output.set('data.json', jsonData, bucket=notebook.name)

      if self.create_csv:
        self.writeCsvData(notebook.name, 'data.csv', notes)
      
      notebookIndex += 1
Example #34
0
 def _process_notes(self, notebook_guid):
     """process notes in given notebook checking if any need to be synced to backup location"""
     note_filter = NoteFilter()
     note_filter.notebookGuid = notebook_guid
     result_spec = NotesMetadataResultSpec()
     # evernote api will return None for almost all fields unless set them on in metadata
     result_spec.includeTitle = True
     result_spec.includeUpdated = True
     offset = 0
     notes = self.note_store.findNotesMetadata(self.token, note_filter, offset, 250, result_spec)
     while offset < notes.totalNotes:
         for en in notes.notes:
             # only fetch actual note if has been updated since last time
             if en.guid not in self.tracking or en.updated != self.tracking[en.guid]:
                 note = self._create_note(en.guid)
                 self._save(note)
         offset += 250
         notes = self.note_store.findNotesMetadata(self.token, note_filter, offset, 250, result_spec)
     print 'synced %i notes to %s' % (self.cnt, self.local_dir)
     self.logger.info('synced %i notes to %s' % (self.cnt, self.local_dir))
Example #35
0
File: client.py Project: semtle/not
    def search(self, title=None, max_results=1):
        """ bumble through evernote's weird api to find a note. """
        if title:
            title = "intitle:'{title}'".format(title=title)

        notefilter = NoteFilter(order=NoteSortOrder.UPDATED, words=title)
        finder = self.store.findNotesMetadata(notefilter, 0, max_results,
                                              NotesMetadataResultSpec())
        notes = finder.notes
        if notes:
            return [note.guid for note in finder.notes]
Example #36
0
def find_note(keywords):
    """
    Find note content by keyword.
    :param keywords: (str) keyword for search.
    :return: (str) first result content.
    """
    from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec
    dev_token, note_store = connect_note()
    search = NoteFilter()
    search.words = keywords
    search.ascending = False

    spec = NotesMetadataResultSpec()
    spec.includeTitle = True

    our_note_list = note_store.findNotesMetadata(dev_token, search, 0, 100,
                                                 spec)
    note_content = note_store.getNoteContent(dev_token,
                                             our_note_list.notes[0].guid)
    return note_content
Example #37
0
    def get_note_dict_in_tag(self, tagname):
        tags = self.note_store.listTags(self.auth_token)
        tag_guid = None
        for t in tags:
            if t.name == tagname:
                tag_guid = t.guid

        if not tag_guid:
            raise NameError("tag not found " + tagname)

        return self.get_note_dict_in_filterlist(
            [NoteFilter(tagGuids=[tag_guid])])
 def retrieve_note(self):
     note_filter = NoteFilter(order=2,
                              notebookGuid=self.get_notebook_guid())
     result_spec = NotesMetadataResultSpec(includeTitle=True)
     notesMetadata = self._note_store.findNotesMetadata(
         note_filter, 0, 1, result_spec)
     if notesMetadata.notes:
         note_guid = notesMetadata.notes[0].guid
         retrieved_note = self._note_store.getNote(note_guid, False, False,
                                                   True, False)
         for resource in retrieved_note.resources:
             print resource
def default_notbook():
    authToken = session['identifier']
    noteStore = get_notestore()
    notebooks = noteStore.listNotebooks(authToken)

    for notebook in notebooks:
        defaultNotebook = notebook
        break

    nfilter = NoteFilter()
    nfilter.notebookGuid = defaultNotebook.guid
    result_spec = NotesMetadataResultSpec(includeTitle=True)
    notes = noteStore.findNotesMetadata(authToken, nfilter, 0, 100, result_spec)
    print notes
    for note in notes.notes:
     	if note.guid == "e00c1b8b-cc4f-48b5-bdbb-5f6069dbbc4a":
      		fullnote = noteStore.getNote(authToken,note.guid,True,True,True,True)
      		resources = fullnote.resources

    syncState = noteStore.getSyncState(authToken)
    mergeByTimeStamp()
    return resources[0].guid
Example #40
0
    def getsContent(self, limit):
        self.getsNoteBooks()
        # 取最近4条笔记
        article_list = {}
        for guid, _ in self.notebook_guids.items():
            searchfilter = NoteFilter(notebookGuid=guid)
            offset = 0
            article_list[guid] = self.note_store.findNotes(
                searchfilter, offset, limit)

        if not bool(article_list):
            #print(notebookname+"的笔记本中没有数据")
            return False

        return_data = []
        for notebook_guid, notebook_article in article_list.items():
            for row in notebook_article.notes:
                data = {}
                if True != row.active: continue
                data["deleted"] = row.deleted  # None or True
                data["guid"] = row.guid
                data["title"] = row.title
                data["content"] = row.content
                data["created"] = formatDate(row.created)
                data["updated"] = formatDate(row.updated)
                content = self.note_store.getNoteContent(row.guid)
                content = xml2Html(content)
                data["notebook_guid"] = notebook_guid
                data["notebook_name"] = self.notebook_guids[notebook_guid]
                data["content"] = content
                return_data.append(data)

                if None != row.resources:
                    for image in row.resources:
                        suffix = image.mime[image.mime.find("/") + 1:]
                        '''
						print(image.width)
						print(image.height)
						'''
                        #生成图片
                        binary_data = self.note_store.getResourceData(
                            image.guid)
                        file_name = hashlib.md5(binary_data).hexdigest()
                        file_path = "./html/upload/" + file_name + "." + suffix
                        image = open(file_path, 'wb')
                        image.write(bytes(binary_data))
                        image.close()
        return_data = sorted(return_data,
                             key=lambda keys: keys['created'],
                             reverse=True)
        return return_data
Example #41
0
def main(argv):
  print 'starting the python process'
  # the list of already entered images
  guidList = []
  # Evernote login credentials
  dev_token = "S=s1:U=8fb0e:E=150ba27eb99:C=1496276bc48:P=1cd:A=en-devtoken:V=2:H=cb6610893ef12aa4b914d15d19befa09"
  client = EvernoteClient(token=dev_token, sandbox=True)
  NoteStore = client.get_note_store()
  filterNote = NoteFilter(order=NoteSortOrder.UPDATED)
  filterNote.notebookGuid = 'cdbc8617-c551-4148-b659-7ccb5d47859e'
  searchResults = NoteStore.findNotes(filterNote, 0, 20)
  
  for note in searchResults.notes:
    if note.resources != None:
      for r in note.resources:
        # save each livescribe file and add the guid to the list
        try:
          guidList.append(save_files(NoteStore, r.guid))
        except:
          print 'Unexpected error when saving original files:', sys.exc_info()[0]
          raise
  # now you start the evernote listening thread
  while(True):
    newNote = NoteStore.findNotes(filterNote, 0, 1)
    for note in newNote.notes:
      if note.resources != None:
        try:
          for r in note.resources:
            if not (r.guid in guidList):
              guidList.append(save_files(NoteStore, r.guid))
              print 'found new image:', r.guid, 'going to sleep for 10 seconds'
              time.sleep(10)
            else:
              print 'no new images - going to sleep for 20 seconds'
              time.sleep(20)
        except:
          print 'Unexpected error when looping:', sys.exc_info()[0]
          raise
Example #42
0
def get_all_notes_in_notebook(notebook):
    guid = notebook.guid
    filter = NoteFilter(notebookGuid=guid)

    #def __init__(self, includeTitle=None, includeContentLength=None, includeCreated=None, includeUpdated=None, includeDeleted=None, includeUpdateSequenceNum=None, includeNotebookGuid=None, includeTagGuids=None, includeAttributes=None, includeLargestResourceMime=None, includeLargestResourceSize=None,):
    resultsSpec = NotesMetadataResultSpec(includeTitle=True)
    fetch_results = _get_note_store().findNotesMetadata(
        filter, 0, 10, resultsSpec)
    real_notes = []
    for n in fetch_results.notes:
        #note = _get_note_store().getNote(n.guid, withContent=True, withResourcesData=False, withResourcesRecognition=False, withResourcesAlternateData=False)
        note = _get_note_store().getNote(n.guid, True, False, False, False)
        real_notes.append(note)
    return real_notes
Example #43
0
    def get_note_dict_in_notebook(self, notebook_name="", stack_name=""):
        notebooks = self.note_store.listNotebooks()
        print "Found ", len(notebooks), " notebooks:"

        notebook_guids = []
        for notebook in notebooks:
            if (notebook.stack and stack_name and notebook.stack.endswith(stack_name)) or \
                (notebook.name and notebook_name and notebook.name.endswith(notebook_name)):
                print notebook.name
                # notebook = self.note_store.getNotebook(notebook.guid)
                notebook_guids.append(notebook.guid)

        return self.get_note_dict_in_filterlist(
            [NoteFilter(notebookGuid=guid) for guid in notebook_guids])
Example #44
0
def find_recent_notes(recent_days=1):
    logger.info("function starting - find_recent_notes: %d", recent_days)
    filter = NoteFilter()
    filter.ascending = True
    filter.order = NoteSortOrder.UPDATED
    filter.words = "updated:day-" + str(recent_days)
    spec = NotesMetadataResultSpec()
    spec.includeTitle = True
    spec.includeUpdated = True

    offset = 0
    pagesize = 50
    while True:
        logger.info("fetching, offset: %d", offset)
        result = get_store().findNotesMetadata(token, filter, offset, pagesize, spec)
        logger.info("fetched %d out of %d notes", len(result.notes), result.totalNotes)
        for metadata in result.notes:
            yield note_by_guid(metadata.guid)

        offset += pagesize

        if result.totalNotes <= offset:
            break
Example #45
0
 def find_notes(self,
                count=1,
                keywords=None,
                notebook_guid=None,
                tag_guids=None,
                order=ttypes.NoteSortOrder.CREATED):
     spec = NotesMetadataResultSpec(includeTitle=True,
                                    includeUpdated=True,
                                    includeTagGuids=True)
     note_filter = NoteFilter(words=keywords,
                              order=order,
                              notebookGuid=notebook_guid,
                              tagGuids=tag_guids)
     return self.noteStore.findNotesMetadata(self.client.token, note_filter,
                                             0, count, spec)
Example #46
0
def et_list_notes(**kwa):
    """
    Can we get a list of notes?
    """
    if kwa['d']:
        pdb.set_trace()
    client = get_authorized_client('full')
    note_store = client.get_note_store()
    flt = NoteFilter(words="")
    spec = NotesMetadataResultSpec(includeTitle=True)
    md_list = note_store.findNotesMetadata(flt, 0, 250, spec)

    for note in md_list.notes:
        print(note.title)
        print("   {}".format(note.guid))
Example #47
0
 def _iter_all_notes(self):
     """Iterate all notes"""
     offset = 0
     while True:
         note_list = self.note_store.findNotes(
             self.auth_token,
             NoteFilter(
                 order=NoteSortOrder.UPDATED,
                 ascending=False,
             ), offset, EDAM_USER_NOTES_MAX)
         for note in note_list.notes:
             yield note
         offset = note_list.startIndex + len(note_list.notes)
         if note_list.totalNotes - offset <= 0:
             break
def main():
    """Generates tag cloud using the Evernote API and word_cloud library"""
    setup_logging()
    print_version()
    args = command_line_args()
    verbose, sandbox, image_file, image_width, image_height, mask_file, font_file, max_tags, horizontal_tags, tag_scaling, tag_color_scheme, evernote_auth_token = parse_args(
        args)
    tags, note_collection_counts = retrieve_tags_and_note_collection_counts(
        evernote_auth_token, sandbox, NoteFilter())
    tag_counts = determine_tag_counts(tags, note_collection_counts)
    tag_cloud = generate_tag_cloud(image_width, image_height, max_tags,
                                   horizontal_tags, tag_scaling,
                                   tag_color_scheme, mask_file, font_file,
                                   tag_counts, verbose)
    save_tag_cloud(tag_cloud, image_file)
Example #49
0
def get_ev_notes():
  dev_token = app.config['EN_DEV_TOKEN']
  notestore_url = app.config['EN_NOTESTORE_URL']
  nb_guid = app.config['EN_NB_GUID']
 
  client = EvernoteClient(token=dev_token)
  note_store = client.get_note_store()

  filt = NoteFilter()
  filt.notebookGuid = nb_guid

  spec = NotesMetadataResultSpec()
  spec.includeTitle = True

  notemetalist = note_store.findNotesMetadata(dev_token, filt, 0, 100, spec)
  notes = []
  for note_data in notemetalist.notes:
    note = note_store.getNote(dev_token, note_data.guid, True, True, True, True)

    title = note.title
    author = note.attributes.author
    date = note.updated
    url = note.attributes.sourceURL    
    cont = note.content
    note_tags = []

    tag_guids = note.tagGuids
    if tag_guids is not None:
      for tag_guid in tag_guids:
        tag = note_store.getTag(dev_token, tag_guid)
        note_tags.append({'guid': tag_guid, 'name': tag.name})

    notes.append({'guid': note_data.guid, 'title': title, 'date_modified': date, 'author': author, 'content': cont, 'tags': note_tags})
  
  #print notes
  return dumps(notes)
Example #50
0
def _get_evernote_data():
    """Helper method that gets data.

    Update to give more control to which notes you get.
    """
    # Set up the NoteStore client
    client = EvernoteClient(token=DEV_TOKEN)
    note_store = client.get_note_store()

    note_filter = NoteFilter(order=NoteSortOrder.UPDATED)
    result_spec = NotesMetadataResultSpec(includeTitle=True,
                                          includeCreated=True)

    # Make API call.
    return note_store.findNotesMetadata(DEV_TOKEN, note_filter, 0, 100,
                                        result_spec)
Example #51
0
def getEvernoteResources(config, notebook_guid):
    resources = []
    client = EvernoteClient(token=config["en_devtoken"],
                            sandbox=config["en_sandbox"] == "True")
    noteStore = client.get_note_store()
    # get notes from a specific notebook
    noteFilter = NoteFilter(notebookGuid=notebook_guid)
    result_spec = NotesMetadataResultSpec(includeTitle=True)

    filteredNotes = noteStore.findNotesMetadata(noteFilter, 0, 10, result_spec)
    notebooks = noteStore.listNotebooks()

    for n in filteredNotes.notes:
        print n.title, n.guid
        fullnote = noteStore.getNote(n.guid, True, True, False, True)
        for r in fullnote.resources:
            print r.guid
            resources += [(r.guid, r.data.body)]

    return resources
    def get_note_filter(self,start_time,notebook_name,end_time=None):

        for notebook in self.get_note_store().listNotebooks():
            if notebook.name == notebook_name:
                event_notebook_guid = notebook.guid
                break

        if event_notebook_guid is None:
            raise EvernoteConnectorException("Unable to find a notebook with the name '" + notebook_name + "'")

        note_filter = NoteFilter()
        note_filter.order = NoteSortOrder.CREATED
        note_filter.ascending = True
        note_filter.notebookGuid = event_notebook_guid
        if end_time is None:
            note_filter.words = "created:" + start_time + "Z"
        else:
            note_filter.words = "created:" + start_time + "Z -" + end_time

        return note_filter
from evernote.api.client import EvernoteClient
from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec

devToken = "S=s1:U=8fc8e:E=150baa2e888:C=14962f1b8a8:P=1cd:A=en-devtoken:V=2:H=00145dc7735d3b5e6f2a70b504aba079"

client = EvernoteClient(token = devToken)
noteStore = client.get_note_store()

filter = NoteFilter()
filter.ascending = False

spec = NotesMetadataResultSpec()
spec.includeTitle = True
spec.includeCreated = True
spec.includeUpdated = True
spec.includeTagGuids = True
spec.includeAttributes = True



noteList = noteStore.findNotesMetadata(devToken, filter, 0, 100, spec)

for n in noteList.notes:
	print(n.guid)
	print(n.title)
	print(n.tagGuids)
Example #54
0
def hello():
    global latestNote
    global updated
    global created

    auth_token = "S=s1:U=6eb51:E=146ce55b0ee:C=13f76a484f1:P=1cd:A=en-devtoken:V=2:H=5d05df82a62652c0ed8f2e544df37758"

    if auth_token == "":
        print "Please fill in your developer token"
        print "To get a developer token, visit " \
                "https://sandbox.evernote.com/api/DeveloperToken.action"
        exit(1)

    client = EvernoteClient(token=auth_token, sandbox=True)
    user_store = client.get_user_store()

    version_ok = user_store.checkVersion(
            "Evernote EDAMTest (Python)",
            UserStoreConstants.EDAM_VERSION_MAJOR,
            UserStoreConstants.EDAM_VERSION_MINOR
            )
    #print "Is my Evernote API version up to date? ", str(version_ok)
    #print ""
    if not version_ok:
        exit(1)

    note_store = client.get_note_store()

    # List all of the notebooks in the user's account
    notebooks = note_store.listNotebooks()
    nb = None
    #print "Found ", len(notebooks), " notebooks:"
    for notebook in notebooks:
        #print "  * ", notebook.name
        if notebook.name == "Note":
            nb = notebook;
            break

    if not nb:
        print "Note book is not found in your account"
        exit(1)

    filter = NoteFilter()
    filter.notebookGuid = nb.guid
    filter.order = Types.NoteSortOrder.UPDATED

    spec = NotesMetadataResultSpec()
    spec.includeTitle = True

    noteML = note_store.findNotesMetadata(auth_token, filter, 0, 1, spec)
    content = ""
    content_org = ""
    content_new = ""

    for note in noteML.notes:
        noteID = note.guid

        if note.created == created and note.updated == updated:
            content = latestNote
        else:
            content = note_store.getNoteContent(auth_token, noteID);
            latestNote = content
            created = note.created
            updated = note.updated

        m = re.search(r'<en-note><div>(?P<content>.+)</div></en-note>', content)
        if m:
            content_org = "%s\n" % m.group('content')
            content = re.sub('<[^>]*>', '', content_org)
            line = '''<tspan x="%d" y="%d">%s</tspan>'''

            n = 57
            m = 0
            index = n
            y_aix = 450
            length = len(content)

            while index <= length:
                while ord(content[index-1]) < 128 and content[index-1] != ' ' and index != length:
                    index = index - 1
                index = ( m+n if index == m else index)
                content_new += line%(300, y_aix, content[m:index])

                if index == length:
                    break
                y_aix = y_aix + 30
                m = index
                index = index + n
                if index > length:
                    index = length

        content_new = content_new.decode('utf-8')
        content_org = content_org.decode('utf-8')

    #output = weather.getAndDraw()
    output = getWeather.w2svg("forecast")

    #output = codecs.open('weather-script-output.svg', 'r', encoding='utf-8').read()
    output = output.replace('NOTE_TEXT', content_new)
    output = output.replace('NOTE_ORG', content_org)

    ## Write output
    #codecs.open('weather.svg', 'w', encoding='utf-8').write(output)

    return output
 def getNotes(self):
     noteFilter = NoteFilter()
     noteFilter.notebookGuid = self.__dict__["notebook"].guid
     noteList = self.noteStore.findNotes(self.__dict__["authToken"], noteFilter, 0, int(MAX_NOTES))
     return [Note(note, self.__dict__["noteStore"], self.__dict__["authToken"]) for note in noteList.notes]
Example #56
0
from evernote.api.client import EvernoteClient
from evernote.edam.notestore.ttypes import NoteFilter, NotesMetadataResultSpec
from evernote.edam.type.ttypes import NoteSortOrder

dev_token = "S=s1:U=8fb0e:E=150ba27eb99:C=1496276bc48:P=1cd:A=en-devtoken:V=2:H=cb6610893ef12aa4b914d15d19befa09"
client = EvernoteClient(token=dev_token, sandbox=True)

NoteStore = client.get_note_store()


filterNote = NoteFilter(order=NoteSortOrder.UPDATED)
filterNote.notebookGuid = 'cdbc8617-c551-4148-b659-7ccb5d47859e'

searchResults = NoteStore.findNotes(filterNote, 0, 10)

def getImage(count, rerun):
  for note in searchResults.notes:
    if note.resources != None:
      for r in note.resources:
        guid = r.guid
        print guid
        try:
          resource = NoteStore.getResource(guid, True, False, True, False)
          # get the file content so you can save it
          file_content = resource.data.body
          #print file_content
          file_name = resource.attributes.fileName

          # save the file into the output folder
          file_save = open('../Calvin/output/' + file_name, "wb")
          file_save.write(file_content)
Example #57
0
import evernote.edam.userstore.constants as UserStoreConstants
from evernote.edam.notestore.ttypes import NoteFilter
import evernote.edam.type.ttypes as Types

from evernote.api.client import EvernoteClient

# Sandbox: https://sandbox.evernote.com/api/DeveloperToken.action
# Production: https://www.evernote.com/api/DeveloperToken.action
auth_token = "S=s1:U=8f65c:E=14fa7113473:C=1484f600570:P=1cd:A=en-devtoken:V=2:H=484744fd0ffa906797416ae02ce5cd9c"

client = EvernoteClient(token=auth_token, sandbox=True)

note_store = client.get_note_store()

# GET CONTENT
noteFilter = NoteFilter()
noteFilter.order = 1 #http://dev.evernote.com/documentation/reference/Types.html#Enum_NoteSortOrder
noteFilter.ascending = False
noteList = note_store.findNotes(auth_token, noteFilter, 0, 50 )

guid = "3d958539-6cb7-4bd3-94a7-0240069ad9fb"

content = note_store.getNoteContent( auth_token, guid )

print content


sys.exit()


# Listar todos notebooks: