#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.5.0-en-262021)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py:new_style
#

import sys
import pprint
from urlparse import urlparse
from thrift.transport import TTransport
from thrift.transport import TSocket
from thrift.transport import THttpClient
from thrift.protocol import TBinaryProtocol

import NoteStore
from ttypes import *

if len(sys.argv) <= 1 or sys.argv[1] == '--help':
  print ''
  print 'Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] function [arg1 [arg2...]]'
  print ''
  print 'Functions:'
  print '  SyncState getSyncState(string authenticationToken)'
  print '  SyncState getSyncStateWithMetrics(string authenticationToken, ClientUsageMetrics clientMetrics)'
  print '  SyncChunk getSyncChunk(string authenticationToken, i32 afterUSN, i32 maxEntries, bool fullSyncOnly)'
  print '  SyncChunk getFilteredSyncChunk(string authenticationToken, i32 afterUSN, i32 maxEntries, SyncChunkFilter filter)'
  print '  SyncState getLinkedNotebookSyncState(string authenticationToken, LinkedNotebook linkedNotebook)'
  print '  SyncChunk getLinkedNotebookSyncChunk(string authenticationToken, LinkedNotebook linkedNotebook, i32 afterUSN, i32 maxEntries, bool fullSyncOnly)'
  print '   listNotebooks(string authenticationToken)'
  print '  Notebook getNotebook(string authenticationToken, Guid guid)'
  print '  Notebook getDefaultNotebook(string authenticationToken)'
  print '  Notebook createNotebook(string authenticationToken, Notebook notebook)'
  print '  i32 updateNotebook(string authenticationToken, Notebook notebook)'
  print '  i32 expungeNotebook(string authenticationToken, Guid guid)'
  print '   listTags(string authenticationToken)'
  print '   listTagsByNotebook(string authenticationToken, Guid notebookGuid)'
  print '  Tag getTag(string authenticationToken, Guid guid)'
  print '  Tag createTag(string authenticationToken, Tag tag)'
  print '  i32 updateTag(string authenticationToken, Tag tag)'
  print '  void untagAll(string authenticationToken, Guid guid)'
  print '  i32 expungeTag(string authenticationToken, Guid guid)'
  print '   listSearches(string authenticationToken)'
  print '  SavedSearch getSearch(string authenticationToken, Guid guid)'
  print '  SavedSearch createSearch(string authenticationToken, SavedSearch search)'
  print '  i32 updateSearch(string authenticationToken, SavedSearch search)'
  print '  i32 expungeSearch(string authenticationToken, Guid guid)'
  print '  NoteList findNotes(string authenticationToken, NoteFilter filter, i32 offset, i32 maxNotes)'
  print '  i32 findNoteOffset(string authenticationToken, NoteFilter filter, Guid guid)'
  print '  NotesMetadataList findNotesMetadata(string authenticationToken, NoteFilter filter, i32 offset, i32 maxNotes, NotesMetadataResultSpec resultSpec)'
  print '  NoteCollectionCounts findNoteCounts(string authenticationToken, NoteFilter filter, bool withTrash)'
  print '  Note getNote(string authenticationToken, Guid guid, bool withContent, bool withResourcesData, bool withResourcesRecognition, bool withResourcesAlternateData)'
  print '  LazyMap getNoteApplicationData(string authenticationToken, Guid guid)'
  print '  string getNoteApplicationDataEntry(string authenticationToken, Guid guid, string key)'
  print '  i32 setNoteApplicationDataEntry(string authenticationToken, Guid guid, string key, string value)'
  print '  i32 unsetNoteApplicationDataEntry(string authenticationToken, Guid guid, string key)'
  print '  string getNoteContent(string authenticationToken, Guid guid)'
  print '  string getNoteSearchText(string authenticationToken, Guid guid, bool noteOnly, bool tokenizeForIndexing)'
  print '  string getResourceSearchText(string authenticationToken, Guid guid)'
  print '   getNoteTagNames(string authenticationToken, Guid guid)'
  print '  Note createNote(string authenticationToken, Note note)'
  print '  Note updateNote(string authenticationToken, Note note)'
  print '  i32 deleteNote(string authenticationToken, Guid guid)'
  print '  i32 expungeNote(string authenticationToken, Guid guid)'
  print '  i32 expungeNotes(string authenticationToken,  noteGuids)'
  print '  i32 expungeInactiveNotes(string authenticationToken)'
  print '  Note copyNote(string authenticationToken, Guid noteGuid, Guid toNotebookGuid)'
  print '   listNoteVersions(string authenticationToken, Guid noteGuid)'
  print '  Note getNoteVersion(string authenticationToken, Guid noteGuid, i32 updateSequenceNum, bool withResourcesData, bool withResourcesRecognition, bool withResourcesAlternateData)'
  print '  Resource getResource(string authenticationToken, Guid guid, bool withData, bool withRecognition, bool withAttributes, bool withAlternateData)'
  print '  LazyMap getResourceApplicationData(string authenticationToken, Guid guid)'
  print '  string getResourceApplicationDataEntry(string authenticationToken, Guid guid, string key)'
  print '  i32 setResourceApplicationDataEntry(string authenticationToken, Guid guid, string key, string value)'
  print '  i32 unsetResourceApplicationDataEntry(string authenticationToken, Guid guid, string key)'
  print '  i32 updateResource(string authenticationToken, Resource resource)'
  print '  string getResourceData(string authenticationToken, Guid guid)'
  print '  Resource getResourceByHash(string authenticationToken, Guid noteGuid, string contentHash, bool withData, bool withRecognition, bool withAlternateData)'
  print '  string getResourceRecognition(string authenticationToken, Guid guid)'
  print '  string getResourceAlternateData(string authenticationToken, Guid guid)'
  print '  ResourceAttributes getResourceAttributes(string authenticationToken, Guid guid)'
  print '  i64 getAccountSize(string authenticationToken)'
  print '   getAds(string authenticationToken, AdParameters adParameters)'
  print '  Ad getRandomAd(string authenticationToken, AdParameters adParameters)'
  print '  Notebook getPublicNotebook(UserID userId, string publicUri)'
  print '  SharedNotebook createSharedNotebook(string authenticationToken, SharedNotebook sharedNotebook)'
  print '  i32 sendMessageToSharedNotebookMembers(string authenticationToken, Guid notebookGuid, string messageText,  recipients)'
  print '   listSharedNotebooks(string authenticationToken)'
  print '  i32 expungeSharedNotebooks(string authenticationToken,  sharedNotebookIds)'
  print '  LinkedNotebook createLinkedNotebook(string authenticationToken, LinkedNotebook linkedNotebook)'
  print '  i32 updateLinkedNotebook(string authenticationToken, LinkedNotebook linkedNotebook)'
  print '   listLinkedNotebooks(string authenticationToken)'
  print '  i32 expungeLinkedNotebook(string authenticationToken, Guid guid)'
  print '  AuthenticationResult authenticateToSharedNotebook(string shareKey, string authenticationToken)'
  print '  SharedNotebook getSharedNotebookByAuth(string authenticationToken)'
  print '  void emailNote(string authenticationToken, NoteEmailParameters parameters)'
  print '  string shareNote(string authenticationToken, Guid guid)'
  print '  void stopSharingNote(string authenticationToken, Guid guid)'
  print '  AuthenticationResult authenticateToSharedNote(string guid, string noteKey)'
  print '  RelatedResult findRelated(string authenticationToken, RelatedQuery query, RelatedResultSpec resultSpec)'
  print ''
  sys.exit(0)

pp = pprint.PrettyPrinter(indent = 2)
host = 'localhost'
port = 9090
uri = ''
framed = False
http = False
argi = 1

if sys.argv[argi] == '-h':
  parts = sys.argv[argi+1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  argi += 2

if sys.argv[argi] == '-u':
  url = urlparse(sys.argv[argi+1])
  parts = url[1].split(':')
  host = parts[0]
  if len(parts) > 1:
    port = int(parts[1])
  else:
    port = 80
  uri = url[2]
  if url[4]:
    uri += '?%s' % url[4]
  http = True
  argi += 2

if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
  framed = True
  argi += 1

cmd = sys.argv[argi]
args = sys.argv[argi+1:]

if http:
  transport = THttpClient.THttpClient(host, port, uri)
else:
  socket = TSocket.TSocket(host, port)
  if framed:
    transport = TTransport.TFramedTransport(socket)
  else:
    transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = NoteStore.Client(protocol)
transport.open()

if cmd == 'getSyncState':
  if len(args) != 1:
    print 'getSyncState requires 1 args'
    sys.exit(1)
  pp.pprint(client.getSyncState(args[0],))

elif cmd == 'getSyncStateWithMetrics':
  if len(args) != 2:
    print 'getSyncStateWithMetrics requires 2 args'
    sys.exit(1)
  pp.pprint(client.getSyncStateWithMetrics(args[0],eval(args[1]),))

elif cmd == 'getSyncChunk':
  if len(args) != 4:
    print 'getSyncChunk requires 4 args'
    sys.exit(1)
  pp.pprint(client.getSyncChunk(args[0],eval(args[1]),eval(args[2]),eval(args[3]),))

elif cmd == 'getFilteredSyncChunk':
  if len(args) != 4:
    print 'getFilteredSyncChunk requires 4 args'
    sys.exit(1)
  pp.pprint(client.getFilteredSyncChunk(args[0],eval(args[1]),eval(args[2]),eval(args[3]),))

elif cmd == 'getLinkedNotebookSyncState':
  if len(args) != 2:
    print 'getLinkedNotebookSyncState requires 2 args'
    sys.exit(1)
  pp.pprint(client.getLinkedNotebookSyncState(args[0],eval(args[1]),))

elif cmd == 'getLinkedNotebookSyncChunk':
  if len(args) != 5:
    print 'getLinkedNotebookSyncChunk requires 5 args'
    sys.exit(1)
  pp.pprint(client.getLinkedNotebookSyncChunk(args[0],eval(args[1]),eval(args[2]),eval(args[3]),eval(args[4]),))

elif cmd == 'listNotebooks':
  if len(args) != 1:
    print 'listNotebooks requires 1 args'
    sys.exit(1)
  pp.pprint(client.listNotebooks(args[0],))

elif cmd == 'getNotebook':
  if len(args) != 2:
    print 'getNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.getNotebook(args[0],eval(args[1]),))

elif cmd == 'getDefaultNotebook':
  if len(args) != 1:
    print 'getDefaultNotebook requires 1 args'
    sys.exit(1)
  pp.pprint(client.getDefaultNotebook(args[0],))

elif cmd == 'createNotebook':
  if len(args) != 2:
    print 'createNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.createNotebook(args[0],eval(args[1]),))

elif cmd == 'updateNotebook':
  if len(args) != 2:
    print 'updateNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateNotebook(args[0],eval(args[1]),))

elif cmd == 'expungeNotebook':
  if len(args) != 2:
    print 'expungeNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeNotebook(args[0],eval(args[1]),))

elif cmd == 'listTags':
  if len(args) != 1:
    print 'listTags requires 1 args'
    sys.exit(1)
  pp.pprint(client.listTags(args[0],))

elif cmd == 'listTagsByNotebook':
  if len(args) != 2:
    print 'listTagsByNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.listTagsByNotebook(args[0],eval(args[1]),))

elif cmd == 'getTag':
  if len(args) != 2:
    print 'getTag requires 2 args'
    sys.exit(1)
  pp.pprint(client.getTag(args[0],eval(args[1]),))

elif cmd == 'createTag':
  if len(args) != 2:
    print 'createTag requires 2 args'
    sys.exit(1)
  pp.pprint(client.createTag(args[0],eval(args[1]),))

elif cmd == 'updateTag':
  if len(args) != 2:
    print 'updateTag requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateTag(args[0],eval(args[1]),))

elif cmd == 'untagAll':
  if len(args) != 2:
    print 'untagAll requires 2 args'
    sys.exit(1)
  pp.pprint(client.untagAll(args[0],eval(args[1]),))

elif cmd == 'expungeTag':
  if len(args) != 2:
    print 'expungeTag requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeTag(args[0],eval(args[1]),))

elif cmd == 'listSearches':
  if len(args) != 1:
    print 'listSearches requires 1 args'
    sys.exit(1)
  pp.pprint(client.listSearches(args[0],))

elif cmd == 'getSearch':
  if len(args) != 2:
    print 'getSearch requires 2 args'
    sys.exit(1)
  pp.pprint(client.getSearch(args[0],eval(args[1]),))

elif cmd == 'createSearch':
  if len(args) != 2:
    print 'createSearch requires 2 args'
    sys.exit(1)
  pp.pprint(client.createSearch(args[0],eval(args[1]),))

elif cmd == 'updateSearch':
  if len(args) != 2:
    print 'updateSearch requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateSearch(args[0],eval(args[1]),))

elif cmd == 'expungeSearch':
  if len(args) != 2:
    print 'expungeSearch requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeSearch(args[0],eval(args[1]),))

elif cmd == 'findNotes':
  if len(args) != 4:
    print 'findNotes requires 4 args'
    sys.exit(1)
  pp.pprint(client.findNotes(args[0],eval(args[1]),eval(args[2]),eval(args[3]),))

elif cmd == 'findNoteOffset':
  if len(args) != 3:
    print 'findNoteOffset requires 3 args'
    sys.exit(1)
  pp.pprint(client.findNoteOffset(args[0],eval(args[1]),eval(args[2]),))

elif cmd == 'findNotesMetadata':
  if len(args) != 5:
    print 'findNotesMetadata requires 5 args'
    sys.exit(1)
  pp.pprint(client.findNotesMetadata(args[0],eval(args[1]),eval(args[2]),eval(args[3]),eval(args[4]),))

elif cmd == 'findNoteCounts':
  if len(args) != 3:
    print 'findNoteCounts requires 3 args'
    sys.exit(1)
  pp.pprint(client.findNoteCounts(args[0],eval(args[1]),eval(args[2]),))

elif cmd == 'getNote':
  if len(args) != 6:
    print 'getNote requires 6 args'
    sys.exit(1)
  pp.pprint(client.getNote(args[0],eval(args[1]),eval(args[2]),eval(args[3]),eval(args[4]),eval(args[5]),))

elif cmd == 'getNoteApplicationData':
  if len(args) != 2:
    print 'getNoteApplicationData requires 2 args'
    sys.exit(1)
  pp.pprint(client.getNoteApplicationData(args[0],eval(args[1]),))

elif cmd == 'getNoteApplicationDataEntry':
  if len(args) != 3:
    print 'getNoteApplicationDataEntry requires 3 args'
    sys.exit(1)
  pp.pprint(client.getNoteApplicationDataEntry(args[0],eval(args[1]),args[2],))

elif cmd == 'setNoteApplicationDataEntry':
  if len(args) != 4:
    print 'setNoteApplicationDataEntry requires 4 args'
    sys.exit(1)
  pp.pprint(client.setNoteApplicationDataEntry(args[0],eval(args[1]),args[2],args[3],))

elif cmd == 'unsetNoteApplicationDataEntry':
  if len(args) != 3:
    print 'unsetNoteApplicationDataEntry requires 3 args'
    sys.exit(1)
  pp.pprint(client.unsetNoteApplicationDataEntry(args[0],eval(args[1]),args[2],))

elif cmd == 'getNoteContent':
  if len(args) != 2:
    print 'getNoteContent requires 2 args'
    sys.exit(1)
  pp.pprint(client.getNoteContent(args[0],eval(args[1]),))

elif cmd == 'getNoteSearchText':
  if len(args) != 4:
    print 'getNoteSearchText requires 4 args'
    sys.exit(1)
  pp.pprint(client.getNoteSearchText(args[0],eval(args[1]),eval(args[2]),eval(args[3]),))

elif cmd == 'getResourceSearchText':
  if len(args) != 2:
    print 'getResourceSearchText requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceSearchText(args[0],eval(args[1]),))

elif cmd == 'getNoteTagNames':
  if len(args) != 2:
    print 'getNoteTagNames requires 2 args'
    sys.exit(1)
  pp.pprint(client.getNoteTagNames(args[0],eval(args[1]),))

elif cmd == 'createNote':
  if len(args) != 2:
    print 'createNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.createNote(args[0],eval(args[1]),))

elif cmd == 'updateNote':
  if len(args) != 2:
    print 'updateNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateNote(args[0],eval(args[1]),))

elif cmd == 'deleteNote':
  if len(args) != 2:
    print 'deleteNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.deleteNote(args[0],eval(args[1]),))

elif cmd == 'expungeNote':
  if len(args) != 2:
    print 'expungeNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeNote(args[0],eval(args[1]),))

elif cmd == 'expungeNotes':
  if len(args) != 2:
    print 'expungeNotes requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeNotes(args[0],eval(args[1]),))

elif cmd == 'expungeInactiveNotes':
  if len(args) != 1:
    print 'expungeInactiveNotes requires 1 args'
    sys.exit(1)
  pp.pprint(client.expungeInactiveNotes(args[0],))

elif cmd == 'copyNote':
  if len(args) != 3:
    print 'copyNote requires 3 args'
    sys.exit(1)
  pp.pprint(client.copyNote(args[0],eval(args[1]),eval(args[2]),))

elif cmd == 'listNoteVersions':
  if len(args) != 2:
    print 'listNoteVersions requires 2 args'
    sys.exit(1)
  pp.pprint(client.listNoteVersions(args[0],eval(args[1]),))

elif cmd == 'getNoteVersion':
  if len(args) != 6:
    print 'getNoteVersion requires 6 args'
    sys.exit(1)
  pp.pprint(client.getNoteVersion(args[0],eval(args[1]),eval(args[2]),eval(args[3]),eval(args[4]),eval(args[5]),))

elif cmd == 'getResource':
  if len(args) != 6:
    print 'getResource requires 6 args'
    sys.exit(1)
  pp.pprint(client.getResource(args[0],eval(args[1]),eval(args[2]),eval(args[3]),eval(args[4]),eval(args[5]),))

elif cmd == 'getResourceApplicationData':
  if len(args) != 2:
    print 'getResourceApplicationData requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceApplicationData(args[0],eval(args[1]),))

elif cmd == 'getResourceApplicationDataEntry':
  if len(args) != 3:
    print 'getResourceApplicationDataEntry requires 3 args'
    sys.exit(1)
  pp.pprint(client.getResourceApplicationDataEntry(args[0],eval(args[1]),args[2],))

elif cmd == 'setResourceApplicationDataEntry':
  if len(args) != 4:
    print 'setResourceApplicationDataEntry requires 4 args'
    sys.exit(1)
  pp.pprint(client.setResourceApplicationDataEntry(args[0],eval(args[1]),args[2],args[3],))

elif cmd == 'unsetResourceApplicationDataEntry':
  if len(args) != 3:
    print 'unsetResourceApplicationDataEntry requires 3 args'
    sys.exit(1)
  pp.pprint(client.unsetResourceApplicationDataEntry(args[0],eval(args[1]),args[2],))

elif cmd == 'updateResource':
  if len(args) != 2:
    print 'updateResource requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateResource(args[0],eval(args[1]),))

elif cmd == 'getResourceData':
  if len(args) != 2:
    print 'getResourceData requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceData(args[0],eval(args[1]),))

elif cmd == 'getResourceByHash':
  if len(args) != 6:
    print 'getResourceByHash requires 6 args'
    sys.exit(1)
  pp.pprint(client.getResourceByHash(args[0],eval(args[1]),args[2],eval(args[3]),eval(args[4]),eval(args[5]),))

elif cmd == 'getResourceRecognition':
  if len(args) != 2:
    print 'getResourceRecognition requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceRecognition(args[0],eval(args[1]),))

elif cmd == 'getResourceAlternateData':
  if len(args) != 2:
    print 'getResourceAlternateData requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceAlternateData(args[0],eval(args[1]),))

elif cmd == 'getResourceAttributes':
  if len(args) != 2:
    print 'getResourceAttributes requires 2 args'
    sys.exit(1)
  pp.pprint(client.getResourceAttributes(args[0],eval(args[1]),))

elif cmd == 'getAccountSize':
  if len(args) != 1:
    print 'getAccountSize requires 1 args'
    sys.exit(1)
  pp.pprint(client.getAccountSize(args[0],))

elif cmd == 'getAds':
  if len(args) != 2:
    print 'getAds requires 2 args'
    sys.exit(1)
  pp.pprint(client.getAds(args[0],eval(args[1]),))

elif cmd == 'getRandomAd':
  if len(args) != 2:
    print 'getRandomAd requires 2 args'
    sys.exit(1)
  pp.pprint(client.getRandomAd(args[0],eval(args[1]),))

elif cmd == 'getPublicNotebook':
  if len(args) != 2:
    print 'getPublicNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.getPublicNotebook(eval(args[0]),args[1],))

elif cmd == 'createSharedNotebook':
  if len(args) != 2:
    print 'createSharedNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.createSharedNotebook(args[0],eval(args[1]),))

elif cmd == 'sendMessageToSharedNotebookMembers':
  if len(args) != 4:
    print 'sendMessageToSharedNotebookMembers requires 4 args'
    sys.exit(1)
  pp.pprint(client.sendMessageToSharedNotebookMembers(args[0],eval(args[1]),args[2],eval(args[3]),))

elif cmd == 'listSharedNotebooks':
  if len(args) != 1:
    print 'listSharedNotebooks requires 1 args'
    sys.exit(1)
  pp.pprint(client.listSharedNotebooks(args[0],))

elif cmd == 'expungeSharedNotebooks':
  if len(args) != 2:
    print 'expungeSharedNotebooks requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeSharedNotebooks(args[0],eval(args[1]),))

elif cmd == 'createLinkedNotebook':
  if len(args) != 2:
    print 'createLinkedNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.createLinkedNotebook(args[0],eval(args[1]),))

elif cmd == 'updateLinkedNotebook':
  if len(args) != 2:
    print 'updateLinkedNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.updateLinkedNotebook(args[0],eval(args[1]),))

elif cmd == 'listLinkedNotebooks':
  if len(args) != 1:
    print 'listLinkedNotebooks requires 1 args'
    sys.exit(1)
  pp.pprint(client.listLinkedNotebooks(args[0],))

elif cmd == 'expungeLinkedNotebook':
  if len(args) != 2:
    print 'expungeLinkedNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.expungeLinkedNotebook(args[0],eval(args[1]),))

elif cmd == 'authenticateToSharedNotebook':
  if len(args) != 2:
    print 'authenticateToSharedNotebook requires 2 args'
    sys.exit(1)
  pp.pprint(client.authenticateToSharedNotebook(args[0],args[1],))

elif cmd == 'getSharedNotebookByAuth':
  if len(args) != 1:
    print 'getSharedNotebookByAuth requires 1 args'
    sys.exit(1)
  pp.pprint(client.getSharedNotebookByAuth(args[0],))

elif cmd == 'emailNote':
  if len(args) != 2:
    print 'emailNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.emailNote(args[0],eval(args[1]),))

elif cmd == 'shareNote':
  if len(args) != 2:
    print 'shareNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.shareNote(args[0],eval(args[1]),))

elif cmd == 'stopSharingNote':
  if len(args) != 2:
    print 'stopSharingNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.stopSharingNote(args[0],eval(args[1]),))

elif cmd == 'authenticateToSharedNote':
  if len(args) != 2:
    print 'authenticateToSharedNote requires 2 args'
    sys.exit(1)
  pp.pprint(client.authenticateToSharedNote(args[0],args[1],))

elif cmd == 'findRelated':
  if len(args) != 3:
    print 'findRelated requires 3 args'
    sys.exit(1)
  pp.pprint(client.findRelated(args[0],eval(args[1]),eval(args[2]),))

else:
  print 'Unrecognized method %s' % cmd
  sys.exit(1)

transport.close()
