Esempio n. 1
0
    def handle(self, *args, **options):
        VisnykDocument.init()

        for arg in args:
            for root, _, files in os.walk(arg, topdown=True):
                for fl in files:
                    fname, ext = os.path.splitext(fl)

                    if ext.lower() in [".xml", ""]:
                        continue

                    basename = os.path.join(root, fname)

                    if not os.path.exists(basename + ".xml"):
                        self.stderr.write(
                            'Cannot find "{0}.xml", skipping'.format(basename))
                        continue

                    try:
                        doc = None

                        if not os.path.exists(basename + ".json"):
                            # continue
                            doc = self.convert_to_json_doc(basename, ext)

                            if doc:
                                with open(basename + ".json", "w") as fp:
                                    json.dump(doc, fp)
                        else:
                            with open(basename + ".json", "r") as fp:
                                doc = json.load(fp)

                        if doc:
                            doc["_id"] = fname
                            doc["filename"] = basename.replace(
                                arg, "", 1).lstrip("/") + ext

                            el_doc = VisnykDocument(**doc)
                            el_doc.save()

                    except ConvertException:
                        self.stderr.write("Cannot convert {0}".format(fl))
Esempio n. 2
0
    def handle(self, *args, **options):
        VisnykDocument.init()

        for arg in args:
            for root, _, files in os.walk(arg, topdown=True):
                for fl in files:
                    fname, ext = os.path.splitext(fl)

                    if ext.lower() in [".xml", ""]:
                        continue

                    basename = os.path.join(root, fname)

                    if not os.path.exists(basename + ".xml"):
                        self.stderr.write(
                            'Cannot find "{0}.xml", skipping'.format(basename))
                        continue

                    try:
                        doc = None

                        if not os.path.exists(basename + ".json"):
                            # continue
                            doc = self.convert_to_json_doc(basename, ext)

                            if doc:
                                with open(basename + ".json", "w") as fp:
                                    json.dump(doc, fp)
                        else:
                            with open(basename + ".json", "r") as fp:
                                doc = json.load(fp)

                        if doc:
                            doc["_id"] = fname
                            doc["filename"] = basename.replace(
                                arg, "", 1).lstrip("/") + ext

                            el_doc = VisnykDocument(**doc)
                            el_doc.save()

                    except ConvertException:
                        self.stderr.write("Cannot convert {0}".format(fl))