Пример #1
0
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))
Пример #2
0
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
Пример #3
0
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))
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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))
Пример #8
0
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
Пример #9
0
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