API

This chapter covers all API interfaces of the simplenote module.

Historical Simplenote API - Note Object

Prior to the Simperium API a complete note dict object contained the following fields:

{
  key       : (string, note identifier, created by server),
  deleted   : (bool, whether or not note is in trash),
  modifydate: (last modified date, in seconds since epoch),
  createdate: (note created date, in seconds since epoch),
  syncnum   : (integer, number set by server, track note changes),
  version   : (integer, number set by server, track note content changes),
  minversion: (integer, number set by server, minimum version available for note),
  sharekey  : (string, shared note identifier),
  publishkey: (string, published note identifier),
  systemtags: [(Array of strings, some set by server)],
  tags      : [(Array of strings)],
  content   : (string, data content)
}

Simperium API - Note Object

Under Simperium some of the fields were renamed and some were removed. String data also seems to be UTF-8 by default. A Simperium note object looks like this:

{
  deleted         : (bool, whether or not note is in trash),
  modificationDate: (last modified date, in seconds since epoch),
  creationDate    : (note created date, in seconds since epoch),
  version         : (integer, number set by server, track note content changes),
  shareURL        : (string, shared url),
  publishURL      : (string, published note url),
  systemTags      : [(Array of strings, some set by server)],
  tags            : [(Array of strings)],
  content         : (string, data content)
}

It no longer includes the “key” (actually now an “id”, but still not included in the note object).

Howver, Simplenote.py tries to work as a drop in replacement for code that expects the older fields and therefore you can still use the following:

{
  key       : (string, note identifier, created by server),
  deleted   : (bool, whether or not note is in trash),
  modifydate: (last modified date, in seconds since epoch),
  createdate: (note created date, in seconds since epoch),
  version   : (integer, number set by server, track note content changes),
  systemtags: [(Array of strings, some set by server)],
  tags      : [(Array of strings)],
  content   : (string, data content)
}

And simplenote.py will handle conversion to/from the Simperium fields.

Simplenote main class

class simplenote.Simplenote(username, password)

Class for interacting with the simplenote web service

add_note(note)

Wrapper method to add a note

The method can be passed the note as a dict with the content property set, which is then directly send to the web service for creation. Alternatively, only the body as string can also be passed. In this case the parameter is used as content for the new note.

Arguments:
  • note (dict or string): the note to add
Returns:

A tuple (note, status)

  • note (dict): the newly created note
  • status (int): 0 on success and -1 otherwise
authenticate(user, password)

Method to get simplenote auth token

Arguments:
  • user (string): simplenote email address
  • password (string): simplenote password
Returns:
Simplenote API token as string
delete_note(note_id)

Method to permanently delete a note

Arguments:
  • note_id (string): key of the note to trash
Returns:

A tuple (note, status)

  • note (dict): an empty dict or an error message
  • status (int): 0 on success and -1 otherwise
get_note(noteid, version=None)

Method to get a specific note

Arguments:
  • noteid (string): ID of the note to get
  • version (int): optional version of the note to get
Returns:

A tuple (note, status)

  • note (dict): note object
  • status (int): 0 on success and -1 otherwise
get_note_list(data=True, since=None, tags=[])

Method to get the note list

The method can be passed optional arguments to limit the list to notes containing a certain tag, or only updated since a certain Simperium cursor. If omitted a list of all notes is returned.

By default data objects are returned. If data is set to false only keys/ids and versions are returned. An empty data object is inserted for compatibility.

Arguments:
  • tags=[] list of tags as string: return notes that have at least one of these tags
  • since=cursor Simperium cursor as string: return only changes since this cursor
  • data=True If false only return keys/ids and versions
Returns:

A tuple (notes, status)

  • notes (list): A list of note objects with all properties set except

content. - status (int): 0 on success and -1 otherwise

get_token()

Method to retrieve an auth token.

The cached global token is looked up and returned if it exists. If it is None a new one is requested and returned.

Returns:
Simplenote API token as string
trash_note(note_id)

Method to move a note to the trash

Arguments:
  • note_id (string): key of the note to trash
Returns:

A tuple (note, status)

  • note (dict): the newly created note or an error message
  • status (int): 0 on success and -1 otherwise
update_note(note)

Method to update a specific note object, if the note object does not have a “key” field, a new note is created

Arguments
  • note (dict): note object to update
Returns:
A tuple (note, status) - note (dict): note object - status (int): 0 on success and -1 otherwise