view piecrust/sources/interfaces.py @ 964:d65838abbd90

admin: Better micropub request handling. - Use YAML to write the new post's configuration header. - Add support for automatic microblogging post configs.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 07 Oct 2017 12:31:48 -0700
parents 86b684cc0551
children 8adc27285d93
line wrap: on
line source


class IPreparingSource(object):
    """ Defines the interface for a source whose pages can be created by the
        `chef prepare` command.
    """
    def setupPrepareParser(self, parser, app):
        raise NotImplementedError()

    def createContent(self, args):
        raise NotImplementedError()


class InteractiveField(object):
    """ A field to display in the administration web UI.
    """
    TYPE_STRING = 0
    TYPE_INT = 1

    def __init__(self, name, field_type, default_value):
        self.name = name
        self.field_type = field_type
        self.default_value = default_value


class IInteractiveSource(object):
    """ A content source that a user can interact with in the administration
        web UI.
    """
    def getInteractiveFields(self):
        raise NotImplementedError()

    def findContentFromPath(self, path):
        raise NotImplementedError()