コード例 #1
0
ファイル: sync_waliki.py プロジェクト: cmacmackin/waliki
    def handle(self, *args, **options):
        extensions = [ext.strip() for ext in options['extensions'].split(',')]
        ignored_dirs = [d.strip() for d in options['ignored_dirs'].split(',')]
        for root, dirs, files in os.walk(WALIKI_DATA_DIR):
            [dirs.remove(d) for d in ignored_dirs if d in dirs]
            for filename in files:
                if os.path.splitext(filename)[1] not in extensions:
                    continue
                path = os.path.join(root.replace(WALIKI_DATA_DIR, ''),
                                    filename).strip('/')

                if not Page.objects.filter(path=path).exists():
                    page = Page.from_path(path)
                    self.stdout.write('Created page %s for %s' %
                                      (page.get_absolute_url(), path))

        # Deleted pages?
        for page in Page.objects.all():
            if not os.path.exists(page.abspath):
                self.stdout.write('Deleted page %s (missing %s)' %
                                  (page.get_absolute_url(), page.path))
                page.delete()

        if Attachment:

            class FakeAttachment(object):
                def __init__(self, page):
                    self.page = page

            for page in Page.objects.all():
                path = os.path.join(settings.MEDIA_ROOT,
                                    WALIKI_UPLOAD_TO(FakeAttachment(page), ''))
                if not os.path.exists(path):
                    continue
                for filename in os.listdir(path):
                    if not os.path.isfile(os.path.join(path, filename)):
                        continue
                    file = WALIKI_UPLOAD_TO(FakeAttachment(page), filename)
                    if page.attachments.filter(file=file):
                        continue
                    attachment = Attachment.objects.create(page=page,
                                                           file=file,
                                                           filename=filename)
                    self.stdout.write('Created attachment %s for %s' %
                                      (attachment, page.slug))

            for attachment in Attachment.objects.all():
                if not os.path.exists(
                        os.path.join(settings.MEDIA_ROOT,
                                     attachment.file.name)):
                    self.stdout.write(
                        'Missing %s from %s. Deleted attachment object' %
                        (attachment, attachment.page.slug))
                    attachment.delete()
コード例 #2
0
ファイル: sync_waliki.py プロジェクト: BrunoMoreno/waliki
    def handle(self, *args, **options):
        extensions = [ext.strip() for ext in options["extensions"].split(",")]
        ignored_dirs = [d.strip() for d in options["ignored_dirs"].split(",")]
        for root, dirs, files in os.walk(WALIKI_DATA_DIR):
            [dirs.remove(d) for d in ignored_dirs if d in dirs]
            for filename in files:
                if os.path.splitext(filename)[1] not in extensions:
                    continue
                path = os.path.join(root.replace(WALIKI_DATA_DIR, ""), filename).strip("/")

                if not Page.objects.filter(path=path).exists():
                    page = Page.from_path(path)
                    self.stdout.write("Created page %s for %s" % (page.get_absolute_url(), path))

        # Deleted pages?
        for page in Page.objects.all():
            if not os.path.exists(page.abspath):
                self.stdout.write("Deleted page %s (missing %s)" % (page.get_absolute_url(), page.path))
                page.delete()

        if Attachment:

            class FakeAttachment(object):
                def __init__(self, page):
                    self.page = page

            for page in Page.objects.all():
                path = os.path.join(settings.MEDIA_ROOT, WALIKI_UPLOAD_TO(FakeAttachment(page), ""))
                if not os.path.exists(path):
                    continue
                for filename in os.listdir(path):
                    if not os.path.isfile(os.path.join(path, filename)):
                        continue
                    file = WALIKI_UPLOAD_TO(FakeAttachment(page), filename)
                    if page.attachments.filter(file=file):
                        continue
                    attachment = Attachment.objects.create(page=page, file=file, filename=filename)
                    self.stdout.write("Created attachment %s for %s" % (attachment, page.slug))

            for attachment in Attachment.objects.all():
                if not os.path.exists(os.path.join(settings.MEDIA_ROOT, attachment.file.name)):
                    self.stdout.write(
                        "Missing %s from %s. Deleted attachment object" % (attachment, attachment.page.slug)
                    )
                    attachment.delete()
コード例 #3
0
ファイル: sync_waliki.py プロジェクト: JuloWaks/waliki
    def handle(self, *args, **options):
        extensions = [ext.strip() for ext in options['extensions'].split(',')]
        ignored_dirs = [d.strip() for d in options['ignored_dirs'].split(',')]
        for root, dirs, files in os.walk(WALIKI_DATA_DIR):
            [dirs.remove(d) for d in ignored_dirs if d in dirs]
            for filename in files:
                if os.path.splitext(filename)[1] not in extensions:
                    continue
                path = os.path.join(root.replace(WALIKI_DATA_DIR, ''), filename).strip('/')

                if not Page.objects.filter(path=path).exists():
                    page = Page.from_path(path)
                    self.stdout.write('Created page %s for %s' % (page.get_absolute_url(), path))

        for page in Page.objects.all():
            if not os.path.exists(page.abspath):
                self.stdout.write('Deleted page %s (missing %s)' % (page.get_absolute_url(), page.path))
                page.delete()