def main(args=None): try: # if terminal if config.IS_IN_TERMINAL: sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() # if input stream else: COMMAND, ARGS = modifyArgsByStdinStream() # error or help if COMMAND is None or ARGS is False: return tools.exit() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == 'user': User().user(**ARGS) if COMMAND == 'login': User().login(**ARGS) if COMMAND == 'logout': User().logout(**ARGS) if COMMAND == 'settings': User().settings(**ARGS) # Notes if COMMAND == 'create': Notes().create(**ARGS) if COMMAND == 'edit': Notes().edit(**ARGS) if COMMAND == 'remove': Notes().remove(**ARGS) if COMMAND == 'show': Notes().show(**ARGS) if COMMAND == 'find': Notes().find(**ARGS) # Notebooks if COMMAND == 'notebook-list': Notebooks().list(**ARGS) if COMMAND == 'notebook-create': Notebooks().create(**ARGS) if COMMAND == 'notebook-edit': Notebooks().edit(**ARGS) if COMMAND == 'notebook-remove': Notebooks().remove(**ARGS) # Tags if COMMAND == 'tag-list': Tags().list(**ARGS) if COMMAND == 'tag-create': Tags().create(**ARGS) if COMMAND == 'tag-edit': Tags().edit(**ARGS) if COMMAND == 'tag-remove': Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException): pass except Exception, e: traceback.print_exc() logging.error("App error: %s", str(e))
def main(args=None): try: exit_status_code = 0 sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() # error or help if COMMAND is None or ARGS is False: return tools.exit() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == 'user': User().user(**ARGS) if COMMAND == 'login': User().login(**ARGS) if COMMAND == 'logout': User().logout(**ARGS) if COMMAND == 'settings': User().settings(**ARGS) # Notes if COMMAND == 'create': Notes().create(**ARGS) if COMMAND == 'edit': Notes().edit(**ARGS) if COMMAND == 'remove': Notes().remove(**ARGS) if COMMAND == 'show': Notes().show(**ARGS) if COMMAND == 'find': Notes().find(**ARGS) # Notebooks if COMMAND == 'notebook-list': Notebooks().list(**ARGS) if COMMAND == 'notebook-create': Notebooks().create(**ARGS) if COMMAND == 'notebook-edit': Notebooks().edit(**ARGS) if COMMAND == 'notebook-remove': Notebooks().remove(**ARGS) # Tags if COMMAND == 'tag-list': Tags().list(**ARGS) if COMMAND == 'tag-create': Tags().create(**ARGS) if COMMAND == 'tag-edit': Tags().edit(**ARGS) if COMMAND == 'tag-remove': Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException), e: if e.message: exit_status_code = e.message
def main(args=None): os.environ['TMP'] = '/tmp' os.environ['TEMP'] = '/tmp' try: exit_status_code = 0 sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() if isinstance(ARGS, dict) and ARGS.get('content') == '-': # content from stdin! content = sys.stdin.read() ARGS['content'] = content # error or help if COMMAND is None or ARGS is False: return tools.exitErr() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == 'user': User().user(**ARGS) if COMMAND == 'login': User().login(**ARGS) if COMMAND == 'logout': User().logout(**ARGS) if COMMAND == 'settings': User().settings(**ARGS) # Notes if COMMAND == 'create': Notes().create(**ARGS) if COMMAND == 'edit': Notes().edit(**ARGS) if COMMAND == 'remove': Notes().remove(**ARGS) if COMMAND == 'show': Notes().show(**ARGS) if COMMAND == 'find': Notes().find(**ARGS) if COMMAND == 'dedup': Notes().dedup(**ARGS) # Notebooks if COMMAND == 'notebook-list': Notebooks().list(**ARGS) if COMMAND == 'notebook-create': Notebooks().create(**ARGS) if COMMAND == 'notebook-edit': Notebooks().edit(**ARGS) if COMMAND == 'notebook-remove': Notebooks().remove(**ARGS) # Tags if COMMAND == 'tag-list': Tags().list(**ARGS) if COMMAND == 'tag-create': Tags().create(**ARGS) if COMMAND == 'tag-edit': Tags().edit(**ARGS) if COMMAND == 'tag-remove': Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException), e: if e.message: exit_status_code = e.message
def main(args=None): try: exit_status_code = 0 sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) notebook = sys_argv[0] if len(sys_argv) >= 1 else None if not notebook: return tools.exit() evernote = geeknote.GeekNoteConnector().getEvernote() store = None nb = None shareToken = evernote.authToken localNotebooks = evernote.findNotebooks() for key, item in enumerate(localNotebooks): if item.name == notebook: nb = item store = evernote.getNoteStore() if not store: linkedNotebooks = evernote.findLinkedNotebooks() for key, item in enumerate(linkedNotebooks): if item.shareName == notebook: nb = item store = evernote.getNoteStoreByUrl(item.noteStoreUrl) auth = store.authenticateToSharedNotebook(item.shareKey, evernote.authToken) shareToken = auth.authenticationToken nb = store.getSharedNotebookByAuth(shareToken) break tags = store.listTagsByNotebook(shareToken, nb.notebookGuid) tagsMap = {} for key, item in enumerate(tags): tagsMap[item.guid] = item.name updatedFilter = NoteTypes.NoteFilter() offset = 0 maxNotes = 40000 resultSpec = NoteTypes.NotesMetadataResultSpec(includeCreated=True, includeUpdated=True, includeTitle=True, includeAttributes=True, includeTagGuids=True) notesMetadata = store.findNotesMetadata(shareToken, updatedFilter, offset, maxNotes, resultSpec) for key, item in enumerate(notesMetadata.notes): note = store.getNote(shareToken, item.guid, withContent=True, withResourcesData=True, withResourcesRecognition=False, withResourcesAlternateData=False) slug = note.attributes.sourceURL if note.attributes.sourceURL else note.guid if note.resources: for key, res in enumerate(note.resources): if res.mime in config.DUMP_RESOURCE_MIME_PATH: if not res.attributes.fileName: res.attributes.fileName = "%s.%s" % (res.guid, re.sub(r'[^/]+/', '', res.mime)) resPath = "%s/%s" % (config.DUMP_RESOURCE_MIME_PATH[res.mime], res.attributes.fileName) with open(resPath, "wb") as resWriter: resWriter.write(res.data.body) with io.open("%s/%s.xml" % (config.DUMP_PATH, slug.replace("/", "-")), "w", encoding="utf-8") as noteWriter: noteWriter.write(u'<?xml version="1.0" ?>\n') noteWriter.write(u"<note>\n") noteWriter.write(u"\t<tags>\n") for key, tag in enumerate(note.tagGuids): noteWriter.write(u"\t\t<tag>%s</tag>\n" % tagsMap[tag].decode('utf-8')) noteWriter.write(u"\t</tags>\n") noteWriter.write(u"\t<author>%s</author>\n" % note.attributes.author.decode('utf-8')) noteWriter.write(u"\t<title>%s</title>\n" % note.title.decode('utf-8')) if note.attributes.lastEditedBy: noteWriter.write(u"\t<lastEditedBy>%s</lastEditedBy>\n" % note.attributes.lastEditedBy.decode('utf-8')) if note.resources: noteWriter.write(u"\t<resources>\n") for key, res in enumerate(note.resources): resHash = ''.join(x.encode('hex') for x in res.data.bodyHash) noteWriter.write(('\t\t<resource hash="%s" path="%s/%s"/>\n' % (resHash, config.DUMP_RESOURCE_MIME_PATH[res.mime], res.attributes.fileName)).decode('utf-8')) noteWriter.write(u"\t</resources>\n") noteWriter.write(u"\t<content>%s</content>\n" % re.sub(r'\<[?!][^>]+\>', "", note.content.decode('utf-8'))) noteWriter.write(u"</note>") out.successMessage("Done.") except (KeyboardInterrupt, SystemExit, tools.ExitException), e: if e.message: exit_status_code = e.message
def main(args=None): try: # if in terminal or if there are command line parameters if len(sys.argv) > 1 or config.IS_IN_TERMINAL: sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() if isinstance(ARGS, dict) and ARGS["content"] == "-": ## content comes from stdin! content = sys.stdin.read() ARGS["content"] = content # if input stream else: COMMAND, ARGS = modifyArgsByStdinStream() # error or help if COMMAND is None or ARGS is False: return tools.exit() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == "user": User().user(**ARGS) if COMMAND == "login": User().login(**ARGS) if COMMAND == "logout": User().logout(**ARGS) if COMMAND == "settings": User().settings(**ARGS) # Notes if COMMAND == "create": Notes().create(**ARGS) if COMMAND == "edit": Notes().edit(**ARGS) if COMMAND == "remove": Notes().remove(**ARGS) if COMMAND == "show": Notes().show(**ARGS) if COMMAND == "find": Notes().find(**ARGS) # Notebooks if COMMAND == "notebook-list": Notebooks().list(**ARGS) if COMMAND == "notebook-create": Notebooks().create(**ARGS) if COMMAND == "notebook-edit": Notebooks().edit(**ARGS) if COMMAND == "notebook-remove": Notebooks().remove(**ARGS) # Tags if COMMAND == "tag-list": Tags().list(**ARGS) if COMMAND == "tag-create": Tags().create(**ARGS) if COMMAND == "tag-edit": Tags().edit(**ARGS) if COMMAND == "tag-remove": Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException): pass except Exception, e: traceback.print_exc() logging.error("App error: %s", str(e))
def main(args=None): os.environ["TMP"] = "/tmp" os.environ["TEMP"] = "/tmp" try: exit_status_code = 0 sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() if isinstance(ARGS, dict) and ARGS.get("content") == "-": # content from stdin! content = sys.stdin.read() ARGS["content"] = content # error or help if COMMAND is None or ARGS is False: return tools.exitErr() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == "user": User().user(**ARGS) if COMMAND == "login": User().login(**ARGS) if COMMAND == "logout": User().logout(**ARGS) if COMMAND == "settings": User().settings(**ARGS) # Notes if COMMAND == "create": Notes().create(**ARGS) if COMMAND == "edit": Notes().edit(**ARGS) if COMMAND == "remove": Notes().remove(**ARGS) if COMMAND == "show": Notes().show(**ARGS) if COMMAND == "find": Notes().find(**ARGS) if COMMAND == "dedup": Notes().dedup(**ARGS) # Notebooks if COMMAND == "notebook-list": Notebooks().list(**ARGS) if COMMAND == "notebook-create": Notebooks().create(**ARGS) if COMMAND == "notebook-edit": Notebooks().edit(**ARGS) if COMMAND == "notebook-remove": Notebooks().remove(**ARGS) # Tags if COMMAND == "tag-list": Tags().list(**ARGS) if COMMAND == "tag-create": Tags().create(**ARGS) if COMMAND == "tag-edit": Tags().edit(**ARGS) if COMMAND == "tag-remove": Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException), e: if e.message: exit_status_code = e.message
def main(args=None): try: exit_status_code = 0 sys_argv = sys.argv[1:] if isinstance(args, list): sys_argv = args sys_argv = tools.decodeArgs(sys_argv) COMMAND = sys_argv[0] if len(sys_argv) >= 1 else None aparser = argparser(sys_argv) ARGS = aparser.parse() # Didn't read any command line arguments, and not attached # to an interactive tty? # If so, look for input on piped stream if COMMAND is None and not config.IS_IN_TERMINAL: COMMAND, ARGS = modifyArgsByStdinStream() if COMMAND is None: out.printAbout() # error or help if COMMAND is None or ARGS is False: return tools.exitErr() logging.debug("CLI options: %s", str(ARGS)) # Users if COMMAND == 'user': User().user(**ARGS) if COMMAND == 'login': User().login(**ARGS) if COMMAND == 'logout': User().logout(**ARGS) if COMMAND == 'settings': User().settings(**ARGS) # Notes if COMMAND == 'create': Notes().create(**ARGS) if COMMAND == 'edit': Notes().edit(**ARGS) if COMMAND == 'remove': Notes().remove(**ARGS) if COMMAND == 'show': Notes().show(**ARGS) if COMMAND == 'find': Notes().find(**ARGS) # Notebooks if COMMAND == 'notebook-list': Notebooks().list(**ARGS) if COMMAND == 'notebook-create': Notebooks().create(**ARGS) if COMMAND == 'notebook-edit': Notebooks().edit(**ARGS) if COMMAND == 'notebook-remove': Notebooks().remove(**ARGS) # Tags if COMMAND == 'tag-list': Tags().list(**ARGS) if COMMAND == 'tag-create': Tags().create(**ARGS) if COMMAND == 'tag-edit': Tags().edit(**ARGS) if COMMAND == 'tag-remove': Tags().remove(**ARGS) except (KeyboardInterrupt, SystemExit, tools.ExitException), e: if e.message: exit_status_code = e.message